在woocommerce_new_order挂钩中获取订单ID

时间:2019-03-05 19:43:32

标签: php wordpress woocommerce hook-woocommerce

为什么不能以新顺序获得id顺序?

此代码无效

add_action( 'woocommerce_new_order', 'get_order_details_woo',  1, 1  );
function get_order_details_woo ($order_id)
{

    $order = wc_get_order( $order_id );

    foreach ($order->get_items() as $item_key => $item_values):

        $item_id = $item_values->get_id();

        $item_data = $item_values->get_data();

        $product_name = $item_data['name'];

        //echo $product_name;
    endforeach;

}

但是此代码有效

 add_action( 'woocommerce_new_order', 'get_order_details_woo',  1, 1  );

    function get_order_details_woo ()
    {

        $order = wc_get_order( 100);

        foreach ($order->get_items() as $item_key => $item_values):


            $item_data = $item_values->get_data();

            $product_name = $item_data['name'];

            //echo $product_name;
endforeach;

    }

如何以新顺序获取ID?

如果我没有订单ID,获取新的订单详细信息吗?

2 个答案:

答案 0 :(得分:0)

您可以通过此钩子获得订单ID,但目前看来订单刚刚创建,尚无产品。您可以使用var_dump进行检查。

尝试另一个钩子:

add_action( 'woocommerce_checkout_create_order', 'get_order_details_woo',  1, 1  );

在订单对象获取数据之后且将其保存到数据库之前,将触发此事件。您不必在这里检索订单ID,因为您可以直接获取订单对象。

答案 1 :(得分:0)

add_action('woocommerce_checkout_update_order_meta','get_order_details_woo',10,2); 函数get_order_details_woo($ order_id,$ data){ }