将WooCommerce订单ID传递给挂钩

时间:2014-06-23 20:12:46

标签: php wordpress woocommerce

我的WooCommerce自定义中有一个反复出现的问题:如何在函数中获取当前的订单ID。

某些挂钩可以使用$ order_id传递它,但在用户特定订单的帐户页面中,例如,以下内容无效。

问题是$order_id当然是空的。但是,我如何将订单的ID传递给此函数?

add_action( 'woocommerce_order_items_table', 'xcsn_woocommerce_order_items_table');
function xcsn_woocommerce_order_items_table ( $order_id ) {

    $order = new WC_Order( $order_id );

    echo 'The order ID is: ' . $order->get_order_number();

    // or

    echo '<br>The order ID is: ' . $order->id;

}

我尝试了这个,但它返回了用户ID号,而不是订单:

global $woocommerce;
$order = new WC_Order($post->ID);
echo 'The Order ID: ' . $order->get_order_number();

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

这解决了上面的特定问题(虽然不是一般性问题):

add_action( 'woocommerce_order_items_table', 'xcsn_woocommerce_order_items_table');
function xcsn_woocommerce_order_items_table ( $order ) {

    echo $order->id; //This is the order id, even in the user Accounts>Order page

}

答案 1 :(得分:0)

add_action( 'woocommerce_order_items_table', 'xcsn_woocommerce_order_items_table',10,2);
function xcsn_woocommerce_order_items_table ( $order_id ) {
    $order = new WC_Order( $order_id );
    echo 'The order ID is: ' . $order->get_order_number();
    // or
    echo '<br>
    The order ID is: ' . $order_id;

}

检查一下你需要在动作上添加10,2,它在成功提交订单后返回订单ID,如果没有这个功能将在提交订单之前运行,所以订单ID可能是0null