2016-07-05 91 views
0

我試圖在電子郵件上顯示自定義字段。調用並顯示WooCommerce自定義結帳字段值

這裏的,我認爲應該工作的腳本:

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

但它不工作。該字段的名稱是'day'

應該這樣工作嗎?我錯過了什麼?

感謝。

+1

您是如何將該字段保存到數據庫的?你確定*它在那裏嗎? – helgatheviking

+0

是的字段在數據庫中完美工作。您的解決方案已完美運作,您是冠軍,謝謝! – Adam

+0

@亞當不客氣,不容易猜到:)謝謝。 – LoicTheAztec

回答

1

我假設你已經與顯示的一些代碼設置結帳頁面上正確此自定義字段自定義字段並將該自定義字段的值保存在數據庫的訂單中(如果沒有,則不會收到任何回覆)

您需要先試圖讓這個自定義字段的值之前檢索order ID並且可以有兩種情況:

  1. 您已經在$order變量或對象。您只需與檢索:
$order_id = $order->id; 

// or 

$order_id = str_replace('#', '', $order->get_order_number()); 
  • 你沒有$order對象,你需要先得到它:
  • 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()); 
    

    現在您可以獲得該值並將其顯示出來,因爲您有$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; ?> 
    

    但是,您應該在order_id內檢查您的數據庫中的post_id中的wp_postmeta表,表示meta_value => 'day'在對應的meta_value行/列中存在某個值。如果沒有,當您創建此自定義字段並將其保存在結帳頁上時,代碼肯定存在問題。

    相關問題