2017-04-22 3 views

Antwort

1

Zunächst müssen wir den E-Mail-ID erhalten, die „New Order“ E-Mail-Benachrichtigung zu zielen. Die einzige Möglichkeit besteht darin, den Wert vorher zu ermitteln und den Wert in einer globalen Variablen festzulegen.

Dann in einer benutzerdefinierten Funktion süchtig woocommerce_order_item_meta_end Aktionshaken, zeigen wir die Produktbeschreibung ausschließlich für New Order E-Mail-Benachrichtigung.

Hier ist der Code:

## Tested on WooCommerce 2.6.x and 3.0+ 

// Setting the email_is as a global variable 
add_action('woocommerce_email_before_order_table', 'the_email_id_as_a_global', 1, 4); 
function the_email_id_as_a_global($order, $sent_to_admin, $plain_text, $email){ 
    $GLOBALS['email_id_str'] = $email->id; 
} 

// Displaying product description in new email notifications 
add_action('woocommerce_order_item_meta_end', 'product_description_in_new_email_notification', 10, 3); 
function product_description_in_new_email_notification($item_id, $item, $order){ 

    // Getting the email ID global variable 
    $refNameGlobalsVar = $GLOBALS; 
    $email_id = $refNameGlobalsVar['email_id_str']; 

    // If empty email ID we exit 
    if(empty($email_id)) return; 

    // Only for "New Order email notification" 
    if ('new_order' == $email_id) { 

     // Get The product ID (for simple products) 
     $product_id = $item['product_id']; 

     // Get an instance of WC_Product object 
     $product = wc_get_product($product_id); 

     // Get the Product description (WC version compatibility) 
     if (method_exists($item['product'], 'get_description')) { 
      $product_description = $product->get_description(); // for WC 3.0+ (new) 
     } else { 
      $product_description = $product->post->post_content; // for WC 2.6.x or older 
     } 

     // Display the product description 
     echo '<div class="product-description"><p>' . $product_description . '</p></div>'; 
    } 
} 

Dieser Code geht in function.php Datei Ihres aktiven Kind Thema (oder Thema) oder auch in jeder Plugin-Datei.

Dieser Code wurde getestet und funktioniert.

-Code-Update und Fehler Erklärungen in woocommerce_order_item_meta_end Aktion Haken:

PHP Warning for woocommerce_order_item_meta_end (Mike Joley)

+0

Vielen Dank für die Beantwortung. Es funktioniert. Ich erhalte jetzt E-Mails mit Produktbeschreibung. Nach der Bestellung wird diese Nachricht jedoch auf der folgenden Seite angezeigt: Warnung: Fehlendes Argument 4 für product_description_in_new_email_notification() in /home/cbllookbook/public_html/wp-content/themes/you-child/functions.php in Zeile 22 welche Funktion ist product_description_in_new_email_notification ($ item_id, $ item, $ order, $ plain_text) { sollte ich die Argumente neu anordnen? Danke noch einmal. –

+0

Ich bin mir nicht sicher, ob das der richtige Weg ist; Allerdings setze ich den Wert von Argument 4 auf NULL, damit ich die Nachricht loswerden kann. –

Verwandte Themen