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)
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. –
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. –