在自定义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>
这应该工作...
我有尝试过这个,因为它是我第一次解决方案,但它给了我'致命的错误:未捕获的错误:调用成员函数get_order_number()在字符串'任何想法? – Z3K
其新页面,wc版本3.1.0。我做了什么创建了一个新的页面设置创建的PHP模板文件并粘贴了代码,并在functions.php中做了重定向将粘贴在下面。 – Z3K
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