在自定义WooCommerce谢谢模板中输出订单号

问题描述:

制作自定义感谢页面模板,如果我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> 

你有关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