2016-07-05 29 views
0

Ich versuche, ein benutzerdefiniertes Feld in einer E-Mail anzuzeigen.Aufrufen und Anzeigen eines benutzerdefinierten WooCommerce-Checkout-Feldwerts

Hier ist das Skript, das ich sollte gedacht arbeiten:

<?php if ($day) : ?> 
<p><strong><?php _e('day:', 'woocommerce-pip'); ?></strong> <?php echo $order->day; ?></p> 
<?php endif; ?> 

Aber es funktioniert nicht. Der Name des Feldes lautet 'day'.

Sollte das funktionieren? Was vermisse ich?

Danke.

+1

Wie haben Sie das Feld in der Datenbank gespeichert? Bist du sicher, dass es da ist? – helgatheviking

+0

Ja Feld funktioniert perfekt in der Datenbank. Deine Lösung hat perfekt funktioniert, du bist ein Champion, danke! – Adam

+0

@Adam Gern geschehen, es war nicht so einfach zu erraten:) Danke. – LoicTheAztec

Antwort

1

Ich gehe davon aus, dass Sie bereits richtig dieses benutzerdefinierte Feld mit einigem Code auf Checkout-Seite festgelegt haben, dass die Anzeige benutzerdefiniertes Feld und speichern Sie den Wert dieses benutzerdefinierten Felds in der Reihenfolge in der Datenbank (wenn nicht, erhalten Sie nichts).

Sie müssen zuerst die order ID abzurufen, bevor Sie den Wert dieses benutzerdefinierte Feld zu bekommen, und es können zwei Fälle auftreten:

  1. Sie haben bereits die $order Variable oder Objekt. Sie rufen einfach mit:
$order_id = $order->id; 

// or 

$order_id = str_replace('#', '', $order->get_order_number()); 
  1. Sie haben keine $order Objekt haben, werden Sie es brauchen zuerst zu bekommen:
global $woocommerce, $post; 
$order = new WC_Order($post->id); 

// and after you can get the order ID 

$order_id = $order->id; 

// or 

$order_id = str_replace('#', '', $order->get_order_number()); 

nun können Sie den Wert erhalten und anzuzeigen, weil Sie haben $order_id:

<?php $day = get_post_meta($order_id, 'day', true); 
    if (!empty($day)) : ?> 
    <p><strong><?php _e('day:', 'woocommerce-pip'); ?></strong> <?php echo $day; ?></p> 
<?php endif; ?> 

Aber Sie sollten Ihre Datenbank innerhalb der order_id als post_id in wp_postmeta Tabelle überprüfen, dass ein meta_value => 'day' mit einem Wert in der entsprechenden meta_value Zeile/Spalte existieren. Wenn nicht, gibt es sicherlich ein Problem mit Ihrem Code, wenn Sie dieses benutzerdefinierte Feld erstellen und den Wert auf der Checkout-Seite speichern.