0

Ich verwende Advanced Custom Fields (ACF) plugin in WooCommerce und ich habe ein benutzerdefiniertes Feld namens "tracking-no" festgelegt.Erweiterte benutzerdefinierte Felder in WooCommerce E-Mail-Vorlagen

Wie kann ich den Wert dieses benutzerdefinierten Felds in der Woocommerce-Vorlage emails/customer-completed-order.php anzeigen?

Ich verwende diesen Code:

<?php 
    if(get_field('tracking-no')) 
    { 
     echo '<p>' . get_field('tracking-no') . '</p>'; 
    } 
?> 

Aber ich nichts bekommen.

Dank

+0

** meine Antwort aktualisiert: ** Es war eine fehlende ** ';' ** und zusätzliche Kompatibilität für frühere Versionen von WooCommerce ... – LoicTheAztec

Antwort

0

In Ihrem WooCommerce Vorlage, die Sie sollten in get_field() zuerst die Bestell-ID als Argument erhalten:

<?php 
    // Get the $order ID (WooCommerce version compatibility) 
    if (version_compare(WC_VERSION, '3.0', '<')) { 
     $order_id = int_val($order->id); // Older than 3.0 
    } else { 
     $order_id = int_val($order->get_id()); // 3.0+ 
    } 

    $tracking_num = get_field('tracking-no', $order_id); 

    if($tracking_num){ 
     echo '<p>' . $tracking_num . '</p>'; 
    } 
?> 

Sie können auch eine beliebige E-Mail-Benachrichtigung Haken verwenden, anstatt die Sie auf diese finden Schablone, auf diese Weise:

add_action('woocommerce_email_order_details', 'my_custom_field_in_completed_notification', 10, 4); 
function my_custom_field_in_completed_notification($order, $sent_to_admin, $plain_text, $email){ 
    // Get the $order ID (WooCommerce version compatibility) 
    if (version_compare(WC_VERSION, '3.0', '<')) { 
     $order_id = int_val($order->id); // Older than 3.0 
    } else { 
     $order_id = int_val($order->get_id()); // 3.0+ 
    } 

    $tracking_num = get_field('tracking-no', $order_id); 
    if($tracking_num){ 
     echo '<p>' . $tracking_num . '</p>'; 
    } 
} 

Code geht in function.php Datei Ihres aktiven untergeordneten Themas (oder Themas) oder auch in eine beliebige Plugin-Datei.

In diesem Fall überschreiben wir keine WooCommerce-Vorlagen. Sie können auch verwendet werden, dass zwei ähnliche Haken:

woocommerce_email_order_meta 
woocommerce_email_customer_details 
+0

Vielen Dank für die Rückmeldung. Scheint der richtige Weg zu sein. Aber es funktioniert nicht und bekommt sogar $ order_id = int_val ($ order-> id); ergibt einen Fehler. – cysus

+0

Vielen Dank. Nach deinem guten Startpunkt hat das endlich den Job erledigt: id; $ tracking = get_field ('track-no', $ myOrderID); >

" . $tracking . ""; ?>

cysus

Verwandte Themen