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

时间:2016-06-16 19:47:25

标签: php wordpress woocommerce

我正在使用它在我的functions.php文件

中创建一个新功能
add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order() {

}

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

3 个答案:

答案 0 :(得分:9)

您可以使用$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

答案 1 :(得分:3)

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...
}

答案 2 :(得分:0)

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