Dieser Entwurf muss in den Originalartikel integriert werden, nicht als neuer Artikel veröffentlicht werden. Die direkte Veröffentlichung erstellt einen doppelten Artikel unter der falschen URL.
➡️ Überprüfen Sie den Entwurf und führen Sie dann
/kb-publish 86cxuy4ru aus — dies erkennt die Rydm-Verknüpfung und leitet automatisch über den Merge-Endpunkt.Originalartikel: So legen Sie einen anderen Betreff für neue Bestell-E-Mails für Großhandelsbestellungen fest · ClickUp-Aufgabe: So legen Sie einen anderen Betreff für neue Bestell-E-Mails für Großhandelsbestellungen fest
Wenn Sie einen Großhandelsladen betreiben, möchten Sie möglicherweise, dass Ihre E-Mails zur Benachrichtigung über neue Bestellungen Großhandelsbestellungen klar identifizieren und sogar anzeigen, welche Großhandelsrolle die Bestellung aufgegeben hat. WooCommerce Wholesale Prices Premium enthält noch keine integrierte Möglichkeit, den E-Mail-Betreff zu überschreiben, aber Sie können ihn mit einem Code-Snippet anpassen. Dieser Artikel zeigt Ihnen, wie.
Voraussetzungen
- WooCommerce Wholesale Prices Premium installiert und aktiviert
- Zugriff auf die Datei
functions.phpIhres Themes oder ein Code-Snippet-Plugin (wie z. B. WPCode)
So passen Sie den Betreff der E-Mail für neue Bestellungen für Großhandelsbestellungen an
Standardmäßig verwendet WooCommerce denselben E-Mail-Betreff für alle neuen Bestellungen. Der folgende Snippet-Code hängt sich in woocommerce_email_subject_new_order ein und fügt den Anzeigenamen der Großhandelsrolle zum Betreff hinzu, wenn es sich bei der Bestellung um eine Großhandelsbestellung handelt. Für Einzelhandelsbestellungen wird der Standard-WooCommerce-Betreff unverändert zurückgegeben.
Fügen Sie den folgenden Snippet-Code zur Datei functions.php Ihres Child-Themes oder zu einem Code-Snippet-Plugin hinzu:
// Custom New Order Subject - Adding the Wholesale Role Name in the Subject Line
add_filter( 'woocommerce_email_subject_new_order', 'wwpp_change_email_subject', 1, 2 );
function wwpp_change_email_subject( $subject, $order ) {
// Only customise the subject for wholesale orders.
$order_type = $order->get_meta( '_wwpp_order_type', true );
if ( 'wholesale' !== $order_type ) {
return $subject;
}
// Get the wholesale role slug stored on the order (e.g. 'wholesale_customer').
$role_slug = $order->get_meta( '_wwpp_wholesale_order_type', true );
// Look up the human-readable role name from the registered wholesale roles.
// getAllRegisteredWholesaleRoles() returns an array keyed by role slug,
// each entry containing a 'roleName' key with the display name.
$all_wholesale_roles = WWP_Wholesale_Roles::getInstance()->getAllRegisteredWholesaleRoles();
$role_label = isset( $all_wholesale_roles[ $role_slug ]['roleName'] )
? $all_wholesale_roles[ $role_slug ]['roleName']
: $role_slug; // Fallback to slug if the role is no longer registered.
// Build the custom subject using the readable role name.
$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
$subject = sprintf( '[%s] Order #%s - %s', $role_label, $order->get_id(), $blogname );
return $subject;
}
Was _wwpp_order_type und _wwpp_wholesale_order_type speichern: Jede Bestellung eines Großhandelskunden erhält zwei Meta-Werte. _wwpp_order_type ist entweder 'wholesale' oder 'retail'. _wwpp_wholesale_order_type speichert die Slug der Großhandelsrolle (z. B. wholesale_customer), nicht den Anzeigenamen. Der obige Snippet-Code verwendet getAllRegisteredWholesaleRoles(), um den Slug in das lesbare Label umzuwandeln, das Sie in Ihren Großhandelsrolleneinstellungen konfiguriert haben.
Fehlerbehebung
Die Betreffzeile ändert sich nicht. Überprüfen Sie, ob der Snippet-Code korrekt gespeichert wurde und ob keine PHP-Fehler vorliegen. Der Filter woocommerce_email_subject_new_order wird nur ausgeführt, wenn WooCommerce die E-Mail für neue Bestellungen sendet. Bestätigen Sie, dass die E-Mail unter WooCommerce → Einstellungen → E-Mails → Neue Bestellung aktiviert ist.
Der Betreff zeigt den Rollen-Slug anstelle des Anzeigenamens. Dies geschieht, wenn die Großhandelsrolle nach der Bestellung gelöscht oder umbenannt wurde. Der Snippet-Code greift in diesem Fall auf den Slug zurück. Wenn Sie durchgängig Slugs sehen, stellen Sie sicher, dass die Rolle noch unter WooCommerce Wholesale Prices → Wholesale Roles registriert ist.
Retail-Bestellungen zeigen ebenfalls einen geänderten Betreff an. Stellen Sie sicher, dass der Ausschnitt eine frühe Rückgabe von _wwpp_order_type !== 'wholesale' enthält (wie oben gezeigt). Ohne diese Bedingung wird der Filter auch auf Retail-Bestellungen angewendet. Da _wwpp_wholesale_order_type für Retail-Bestellungen leer ist, würde der Betreff dann eine leere Klammer anzeigen.
Benötigen Sie Hilfe?
Wenn Sie eine Frage haben oder auf Probleme stoßen, sind wir für Sie da.
- Premium-Benutzer: Support-Ticket eröffnen
- Kostenlose Benutzer: Besuchen Sie unser Community-Forum
