Woocommerce-E-Mail-Benachrichtigungsempfänger abhängig vom benutzerdefinierten Feld

Lesezeit: 1 Minute

Woocommerce E Mail Benachrichtigungsempfanger abhangig vom benutzerdefinierten Feld
phung80219

Ich habe ein Checkout-Formular mit einem benutzerdefinierten Feld.

Ich möchte basierend auf dem Wert im benutzerdefinierten Feld einen zusätzlichen Empfänger zu einer Bestell-E-Mail hinzufügen. Das benutzerdefinierte Feld ist derzeit ein Dropdown-Menü mit nur 3 Optionen.

Unten ist der Code, den ich mit etwas Googeln zusammensetzen konnte, aber das scheint nicht zu funktionieren.

function sv_conditional_email_recipient( $recipient, $order ) {

    $custom_field = get_post_meta($orderid, 'custom_field', true);

    if ($custom_field == "Value 1") 
    {
        $recipient .= ', [email protected]';
    } 
    elseif ($custom_field == "Value 2") 
    {
        $recipient .= ', [email protected]';
    }
    elseif ($custom_field == "Value 3") 
    {
        $recipient .= ', [email protected]';
    }
    return $recipient;
}

add_filter( 'woocommerce_email_recipient_new_order', 'sv_conditional_email_recipient', 10, 2 );

Jede Hilfe ist willkommen.

Danke.

Woocommerce E Mail Benachrichtigungsempfanger abhangig vom benutzerdefinierten Feld
LoicTheAztec

Dein Problem kommt von der $orderid das ist nicht definiert. Versuchen Sie stattdessen Folgendes:

add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 );
function new_order_conditional_email_recipient( $recipient, $order ) {
    if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // (Optional)

    // Get the order ID (retro compatible)
    $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;

    // Get the custom field value (with the right $order_id)
    $custom_field = get_post_meta( $order_id, 'custom_field', true );

    if ($custom_field == "Value 1") 
        $recipient .= ', [email protected]'; 
    elseif ($custom_field == "Value 2") 
        $recipient .= ', [email protected]';
    elseif ($custom_field == "Value 3") 
        $recipient .= ', [email protected]';

    return $recipient;
}

Code geht in die function.php-Datei Ihres aktiven Child-Themes (oder Themes) oder auch in jede Plugin-Datei.

Der Code ist getestet und funktioniert auf WooCommerce 2.6.x und 3+.

Dieser Hook zielt nur auf die E-Mail-Benachrichtigung “new_order” ab


1002640cookie-checkWoocommerce-E-Mail-Benachrichtigungsempfänger abhängig vom benutzerdefinierten Feld

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

Privacy policy