Mit dem Plugin „B2B Market“ kannst Du Deinen WooCommerce Online Shop um eine B2B (Business to Business) Funktion ergänzen.
Sprich:
Du kannst in Deinem Shop für verschiedene Kundengruppen verschiedene Preise festlegen.
Der Standard Fall ist, dass Du Geschäftskunden oder Wiederverkäufern in Deinem Online Shop einen Rabatt gibst.
Grundsätzlich funktioniert das Plugin B2B Market dafür einwandfrei und kann ich entsprechend uneingeschränkt empfehlen.
Man kann es so einstellen, dass der Kunde bei der Kontoerstellung selber die gewünschte Kundengruppe wählen kann. Also ob er Endkunde oder Wiederverkäufer / Geschäftskunde ist.
In diesem Fall möchte man aber wahrscheinlich manuell prüfen, ob es tatsächlich ein Geschäftskunde / Wiederverkäufer ist.
Ansonsten könnte jeder Privatkunde mit einem Klick unkontrolliert mit dem Geschäftskunden-Rabatt einkaufen.
Das ist alles von Haus aus mit dem Plugin möglich.
Nur was jetzt nicht möglich ist:
Dass man eine Benachrichtigung per E-Mail erhält, sobald jemand ein Konto als „Geschäftskunde“ erstellt hat.
Das heisst: Man müsste regelmässig im WooCommerce Admin-Bereich prüfen, ob neue Geschäftskunden-Konten erstellt wurden.
Hier jetzt meine Lösung:
Wenn in WooCommerce ein neues Kundenkonto angelegt wird, erhält der Benutzer eine E-Mail. Und diese E-Mail sende ich jetzt einfach gleichzeitig auch an den Shop Admin.
Aber:
Was ist, wenn 90% der neuen Kunden normale Kunden sind, und keine Geschäftskunden? Diese müssen ja nicht manuell geprüft und freigeschalten werden. In diesem Fall soll also auch keine E-Mail gesendet werden.
Die „Neues Konto“ E-Mail wird mit diesem Code nur dann ebenfalls an den Shop Admin versendet, sofern es nicht ein Standard WooCommerce „Customer“ ist, sondern irgendeine andere in „B2B Market“ definierte Kundengruppe ausgewählt wurde:
add_filter( 'woocommerce_email_headers', 'mb8020_new_customer_with_role_admin_notification', 20, 3 ); function mb8020_new_customer_with_role_admin_notification( $header, $email_id, $user ) { $user_id = $user->id; $user_meta = get_userdata( $user_id ); $user_roles = $user_meta->roles; // Wir prüfen ob es das "Neues Kundenkonto" Mail ist und ob das Konto nicht einfach ein Standard "Customer" bzw. "Kunde" ist if( 'customer_new_account' == $email_id && !in_array('customer', $user_roles) && !in_array('kunde', $user_roles) ) { $header .= 'Bcc: deine@emailadresse.ch\r\n'; } return $header; }
Wenn Du nun so ein Mail erhältst, kannst Du entscheiden, ob Du das Konto tatsächlich als Geschäftskunde/Wiederverkäufer freischalten willst, damit der Kunde mit dem Rabatt im Online Shop bestellen.
Eine relativ simple, aber elegante Lösung 🙂
Hallo 🙂
Habe Ihren Code 1:1 in die functions.php meines Child-Themes kopiert. Nur leider erhalte ich keine E-Mail, wenn sich ein Geschäftskunde angemeldet hat. Die Benennung der Kundengruppen entsprechen denen, die im Code verwendet werden. Auch meine E-Mail-Adresse habe ich richtig geschrieben.
Verstehe ich das richtig: Sie haben im Code die Kundengruppen „customer“ und „kunde“ angepasst? Das müssten Sie wieder rückgängig machen: Der Code prüft, ob eben NICHT ein „customer“ bzw. „kunde“ erstellt wurde (also z.B. ein „fachverkaeufer“ oder „b2b-kunde“ oder wie auch immer die individuellen Kundengruppen heissen). Sprich, im Code muss eigentlich nur die E-Mail-Adresse des Empfängers angepasst werden. Und die Kundengruppen sollten wohl nicht genau „Kunde“ bzw. „Customer“ heissen.
Übrigens: Warum sowohl „customer“ als auch „kunde“: Da hatte ich das Problem, dass das „B2B Market“ Plugin scheinbar plötzlich die Standard WooCommerce Rolle „customer“ zu „kunde“ umbenannt hatte. Darum prüft der Code auf beide Rollennamen.