WooCommerce新订单行动 - 获取订单信息



我正在使用它在我的functions.php文件中创建一个新功能

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order() {
}

在发布新订单时,要执行一些自定义代码,如何在我的功能中获取订单信息(订购产品等)

您可以将$order_id用作woocommerce_new_order回调的参数,并从$order_id获取订单详细信息。

示例:

// define the woocommerce_new_order callback 
function create_invoice_for_wc_order( $order_id ) { 
    // get order details data...
    $order = new WC_Order( $order_id );
    var_dump($order);
}; 

参考:

http://hookr.io/actions/woocommerce_new_order/

https://docs.woothemes.com/wc-apidocs/class-wc_order.html

此处的所有答案都是正确的,但是如果您需要以上的订单项,则无效,因为当时无法用新的WC_Order获取行项目。

挂钩现在有第二个$order参数,可以工作。

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 2  );
function create_invoice_for_wc_order( $order_id, $order ) {
    $items = $order->get_items();
    // etc...
}

woocommerce_new_order包括一个 $order_id参数。您可以在回调中使用它:

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order( $order_id ) {
    $order = new WC_Order( $order_id );
    $items = $order->get_items();
    // etc...
}

如果您只想获取订单详细信息,则可以使用'woocommerce_new_order'钩子和$ order_id作为参数

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order($order_id) {
$order = new WC_Order( $order_id );
print_r($order);
//your code
}

但是,如果您想获得订单项目,则应使用'woocommerce_checkout_order_processed'

add_action( 'woocommerce_checkout_order_processed', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order($order_id) {
$order = new WC_Order( $order_id );
//order items
$items = $order->get_items();
print_r($items);
}

最新更新