Erstellen Sie zusätzliche Variablen/Platzhalter für den Betreff der Woocommerce-E-Mail-Benachrichtigungen

Lesezeit: 2 Minuten

Benutzer-Avatar
Benutzer1915410

Beim Aktivieren neuer E-Mail-Benachrichtigungen von benutzerdefinierten Bestellstatus habe ich diese Optionen für Betreff-Platzhalter:

“Sie können die folgenden Platzhalter verwenden: {order_date}, {order_number}, {order_status}, {billing_first_name}, {billing_last_name}, {billing_company}, {blogname}, {site_title}”

Gibt es eine Möglichkeit, neue Platzhalter für andere Felder zu erstellen? Grundsätzlich habe ich ein neues verstecktes Feld namens test_pw erstellt und möchte in der Lage sein, {billing_email} und {test_pw} zu meinen benutzerdefinierten E-Mails hinzuzufügen.

Ich habe es mit diesem freundlicherweise vorgeschlagenen Code versucht, bin mir aber nicht sicher, wie ich ihn formatieren soll.

// Only for woocommerce versions 3.2 + (up to 3.2)
add_filter( 'woocommerce_email_format_string' , 'filter_email_format_string', 20, 2 );
function filter_email_format_string( $string, $email ) {
// Get the instance of the WC_Order object
$order = $email->object;

// Additional wanted placeholders in the array of find / relace pairs
$additional_placeholders = array(
    '{custom_one}'      => __('my replacement one','woocommerce'),
    '{billing_email}'   => $order->get_billing_email(),
    '{test_pw}'   => $order->get_test_pw(),
);

// return the clean string with new replacements
return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
}

Benutzer-Avatar
LoicTheAztec

Hier ist ein Beispiel, das Ihnen zeigt, wie Sie neue Platzhalter für E-Mail-Benachrichtigungen hinzufügen. Betreff:

// Only for woocommerce versions 3.2 + (up to 3.2)
add_filter( 'woocommerce_email_format_string' , 'filter_email_format_string', 20, 2 );
function filter_email_format_string( $string, $email ) {
    // Get the instance of the WC_Order object
    $order = $email->object;

    // Additional wanted placeholders in the array of find / relace pairs
    $additional_placeholders = array(
        '{custom_one}'      => __('my replacement one','woocommerce'),
        '{shipping_city}'   => $order->get_shipping_city(),
        '{yudu_pw}'         => $order->get_meta( 'yudu_pw' ), // <=== HERE
    );

    // return the clean string with new replacements
    return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
}

Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert nur für Woocommerce Version 3.2 und höher…

  • Ich versuche es, komme aber nicht ganz dahinter. Ich möchte die E-Mail-Adresse des Kunden und das versteckte Feld, das ich erstellt habe, mit dem Namen test_pw einschließen. ‘{billing_email}’ => $order->get_billing_email(), ‘{test_pw}’ => $order->get_test_pw(),

    – Benutzer1915410

    1. Mai 2018 um 21:52 Uhr

  • vielen Dank, aber ich bin nicht gut genug, um zu wissen, wo und wie ich den Code in den Rest einfügen soll. Danke für den Versuch, aber Sie gehen wahrscheinlich davon aus, dass ich ein Programmierer bin, lol

    – Benutzer1915410

    1. Mai 2018 um 22:42 Uhr

  • Ich habe die Frage geändert

    – Benutzer1915410

    2. Mai 2018 um 10:13 Uhr

  • Es funktioniert nicht für Fußzeilentext. Um benutzerdefinierte Platzhalter zum Fußzeilentext hinzuzufügen, erweitern Sie den Filter woocommerce_email_footer_text.

    – Navidot

    25. November 2019 um 20:15 Uhr

1011410cookie-checkErstellen Sie zusätzliche Variablen/Platzhalter für den Betreff der Woocommerce-E-Mail-Benachrichtigungen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy