WooCommerce E-Mails anpassen

Wir kann ich den Inhalt der E-Mails bearbeiten?

Beide Plugins aktivieren, das kostenlose WP HTML Mail und das AddOn WP HTML Mail WooCommerce.

Dann unter Einstellungen -> E-Mail Template -> WooCommerce oben auf „E-Mails individuell bearbeiten“ wechseln und dann werden die einzelnen Mails unten aufgelistet und können einzeln inhaltlich bearbeitet werden.

Wie füge ich eigene Platzhalter im Mailbuilder ein?

Um eigene dynamische Inhalte als Platzhalter in deinen WooCommerce E-Mails zu verwenden, schreibe den folgenden Code in die functions.php deines (Child-) Themes:

add_filter( 'haet_mail_placeholder_menu', 'add_mailbuilder_placeholder' );
add_filter( 'haet_mail_order_placeholders', 'populate_mailbuilder_placeholder', 10, 3 );

function add_mailbuilder_placeholder( $placeholder_menu ){
    if( is_array( $placeholder_menu ) ){
        $placeholder_menu[] = array(
                'text'      => 'My Placholder Name',
                'tooltip'   => '[MY_PLACEHOLDER]',
            );
    }

    return $placeholder_menu;
}


function populate_mailbuilder_placeholder( $order, $wc_order, $settings ){
    $order['my_placeholder'] = 'your value';
    return $order;
}

Die erste Funktion erstellt den Platzhalter im Dropdown deines Editors, die zweite Funktion gibt dem Platzhalter einen Wert.

Wie füge ich die verwendeten Gutscheine im E-Mail Text ein?

Dazu fügen wir einen neuen Platzhalter ein und geben diesem dann den entsprechenden Inhalt.

Kopiere den folgenden Code in die functions.php deines (Child-)Themes und passe ihn an deine Anforderungen an:

add_filter( 'haet_mail_placeholder_menu', 'add_mailbuilder_coupons_placeholder' );
add_filter( 'haet_mail_order_placeholders', 'populate_mailbuilder_coupons_placeholder', 10, 3 );
function add_mailbuilder_coupons_placeholder( $placeholder_menu ){
    if( is_array( $placeholder_menu ) ){
        $placeholder_menu[] = array(
                'text'      => 'Coupons',
                'tooltip'   => '[COUPONS]',
            );
    }
    return $placeholder_menu;
}

function populate_mailbuilder_coupons_placeholder( $order, $wc_order, $settings ){
    $coupons_text = '';
    if( $wc_order ){
        $coupons =  $wc_order->get_used_coupons();
        if( is_array( $coupons ) && count( $coupons ) ){
            $coupons_text .= 'You have used the following coupons: <br>';

            foreach( $coupons as $coupon_name ){

                // Retrieving the coupon ID
                $coupon_post_obj = get_page_by_title($coupon_name, OBJECT, 'shop_coupon');
                $coupon_id = $coupon_post_obj->ID;

                // Get an instance of WC_Coupon object in an array(necesary to use WC_Coupon methods)
                $coupons_obj = new WC_Coupon($coupon_id);
                $discount_type = $coupons_obj->get_discount_type();
                $amount_str = '';
                if( $discount_type == 'fixed_cart' )
                    $amount_str = '- €' . $coupons_obj->get_amount();
                elseif( $discount_type == 'percent' )
                    $amount_str = '- ' . $coupons_obj->get_amount() . '%';
                //elseif( $discount_type == ...
                
                $coupons_text .= '<strong>' . $coupons_obj->get_code() . '</strong>: ' . $amount_str . ', ';

            }
        }
    }
    $order['coupons'] = $coupons_text;
    return $order;
}