如何 运行 WooCommerce 查看订单模板的简码

How to run a shortcode for WooCommerce view-order template

我试图在 woocommerce view-order.php 模板中插入一个短代码,但它不起作用。 这是参考模板:https://woocommerce.github.io/code-reference/files/woocommerce-templates-myaccount-view-order.html

在functions.php文件中我写了下面的代码:

add_shortcode( 'order_view_id' , 'order_view_01' );
function order_view_01(){
$customer_id = get_current_user_id();
$order = new WC_Order( $order_id ); //I think this is the problem I don't know if that's right
return $order->get_id();
}

简码显示数字 0,所以我没有得到订单 ID,在我的例子中是 40001。

为了构造代码,我遵循了这些参考资料:

也许我应该更改影响 $order 部分的行,但我不确定。 我不明白我哪里错了,有没有好心人给个建议?

已找到解决方案。

经过一番研究,我发现了这个 post:

之后我尝试插入这个 $order_id = absint( get_query_var('view-order') ); 一切正常。这是任何遇到相同情况的人的解决方案。

add_shortcode( 'order_view_id' , 'order_view_01' );
function order_view_01(){

// Get Order ID
$order_id = absint( get_query_var('view-order') );

// Then you can get the order object
$order = new WC_Order( $order_id );

// What you want to see, in my case the order ID
return $order->get_id();

}

在这里您可以找到您感兴趣的所有内容,通过简码显示:https://www.businessbloomer.com/woocommerce-easily-get-order-info-total-items-etc-from-order-object/

记住,我在functions.php中写了代码。这允许我在 woocommerce view-order.php 模板中插入 [order_view_id] 简码。