[英]WooCommerce new order action - get order information
我正在使用它在我的functions.php
文件中创建一个新的 function
add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order', 1, 1 );
function create_invoice_for_wc_order() {
}
它是在下新订单时执行一些自定义代码,我如何在我的 function 中获取订单信息(订购的产品等)
您可以使用$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);
};
参考资料:
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...
}
这里的所有答案都是正确的,但如果您需要订单项,则上述内容将不起作用,因为当时无法使用新的 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 );
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.