WooCommerce新订单操作 - 获取订单信息

cha*_*lie 4 php wordpress woocommerce

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

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

}
Run Code Online (Sandbox Code Playgroud)

它是在下订单时执行一些自定义代码,如何在我的函数中获取订单信息(订购产品等)

小智 15

这里的所有答案都是正确的,但如果您需要订单项,则上述方法将不起作用,因为当时无法使用新的 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...
}
Run Code Online (Sandbox Code Playgroud)


Muh*_*lim 11

您可以将其$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);
}; 
Run Code Online (Sandbox Code Playgroud)

参考文献:

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

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


rne*_*ius 8

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...
}
Run Code Online (Sandbox Code Playgroud)