2017-07-18 96 views
2

製作自定義感謝頁面模板,如果我echo $ order = new WC_Order($ post_id),我想顯示訂單號;它返回值0或空字符串:但永久鏈接有訂單ID奇蹟可能是什麼原因造成這種情況?在自定義WooCommerce謝謝模板中輸出訂單號

<strong><?php echo $order = new WC_Order($post_id); echo $order->get_order_number(); ?></strong>

整個代碼如下:

<p><?php echo apply_filters('woocommerce_thankyou_order_received_text', __('Thank you. Your order has been received.', 'woocommerce'), $order); ?></p> 

<ul class="order_details"> 
<li class="order"> 
    <?php _e('Order number:', 'woocommerce'); ?> 
    <strong><?php echo $order = new WC_Order($post_id); echo $order->get_order_number(); ?></strong> 
</li> 

</ul> 

回答

1

你有關WooCommerce問題checkout/thankyou.php模板是:

  • 首先,你不能使用echo$order = new WC_Order($post_id);,因爲它是對象,但不是字符串。
  • 二,$order對象已經存在謝謝你模板,所以你不需要再次得到它。你可以看到,在您的第一行代碼:
<p><?php echo apply_filters('woocommerce_thankyou_order_received_text', __('Thank you. Your order has been received.', 'woocommerce'), $order); ?></p> 

所以,你的代碼將是簡單的:

<p><?php echo apply_filters('woocommerce_thankyou_order_received_text', __('Thank you. Your order has been received.', 'woocommerce'), $order); ?></p> 

<ul class="order_details"> 

    <li class="order"> 
     <?php _e('Order number:', 'woocommerce'); ?> 
     <strong><?php echo $order->get_order_number(); ?></strong> 
    </li> 

</ul> 

這應該工作...

+0

我有嘗試過這個,因爲它是我第一次解決方案,但它給了我'致命的錯誤:未捕獲的錯誤:調用成員函數get_order_number()在字符串'任何想法? – Z3K

+0

其新頁面,wc版本3.1.0。我做了什麼創建了一個新的頁面設置創建的PHP模板文件並粘貼了代碼,並在functions.php中做了重定向將粘貼在下面。 – Z3K

+0

function wc_custom_redirect_after_purchase(){ global $ wp;如果(is_checkout()&&!empty($ wp-> query_vars ['order-received'])){ $ order_id = absint($ wp-> query_vars ['order-received']); $ order_key = wc_clean($ _GET ['key']); $ redirect = get_permalink(get_page_by_title(「Thank-You」) - > ID); $ redirect。= get_option('permalink_structure')===''? '&':'?'; $ redirect。='order ='。 $ order_id。 '&key ='。 $ order_key; wp_redirect($ redirect); 退出; } } – Z3K

相關問題