2016-04-04 2 views
0

In Woocommerce, ich muss ein benutzerdefiniertes Feld auf die E-Mail abgeschlossene Bestellung drucken.Woocommerce - Drucken Produkt benutzerdefinierte Feld in E-Mail

Die Vorlage ist völlig einzigartig in meinem Themen woocommerce/E-Mails Ordner, weil die Standardvorlage nicht für meine Bedürfnisse funktioniert.

Als solche versuche ich folgendes anzuzeigen: Titel, Anzahl und zwei Felder benutzerdefinierte

im kunden abgeschlossen-order.php E-Mail-Vorlage aufgenommen werden Dies muss aber ich bin nicht sicher, was Syntax ist notwendig, um es zu drucken.

fand ich etwas von googeln, aber es funktioniert nicht:

<?php foreach ($items as $item_id => $item) : 
$_product  = apply_filters('woocommerce_order_item_product', $order->get_product_from_item($item), $item); 
?> 

<p>Class: <?php echo get_post_meta($_product->id,'name',true); ?></p> 

<p>Date: <?php echo get_post_meta($_product->id,'date_text_field',true); ?></p> 

<p>Time: <?php echo get_post_meta($_product->id,'time_text_field',true); ?></p> 

<p>Number of Spaces: <?php echo get_post_meta($_product->id,'qty',true); ?></p> 


<?php endforeach; ?> 
+0

Sind die Klasse/Datum/Uhrzeit für jede Bestellung gleich? Oder sind sie spezifisch für eine bestimmte Reihenfolge? – helgatheviking

Antwort

1

Versuchen Sie Aktion Haken Hinzufügen
do_action('woocommerce_order_item_meta_start', $item_id, $item, $order);
ODER
do_action('woocommerce_order_item_meta_end', $item_id, $item, $order);

Dies folgt verwendet werden:

add_action('woocommerce_order_item_name', 'action_custom_order_meta', 10, 3); 

OR

add_action('woocommerce_order_item_name', 'action_custon_order_meta', 10, 3); 

Es folgt die Callback-Handler-Funktion.

function action_custom_order_meta($item_name, $item, $false){ 
    $product_id = $item['product_id']; 
    $product_custom_date = get_post_meta($product_id, 'product_custom_date', true); 
    $product_custom_time = get_post_meta($product_id, 'product_custom_time', true); 
    $product_custom_meta = 'Date: ' . $product_custom_date . ' <br> Time: ' . $product_custom_time; 
    echo $product_custom_meta; 
} 

Ändern Sie die benutzerdefinierten Feldnamen entsprechend. Möglicherweise müssen Sie die Ausgabe auch entsprechend dem erforderlichen Markup für Ihre benutzerdefinierte E-Mail umbrechen.

Hoffe, das hilft.