Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WooCommerce新订单操作-获取订单信息_Php_Wordpress_Woocommerce - Fatal编程技术网

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

Php WooCommerce新订单操作-获取订单信息,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我用它在functions.php文件中创建一个新函数 add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order', 1, 1 ); function create_invoice_for_wc_order() { } 它是在下新订单时执行一些自定义代码,如何在我的函数中获取订单信息(订购的产品等)woocommerce\u new\u order包括一个$order\u id参数。您可以在回调中使用它: add_

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

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

}

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

woocommerce\u new\u order
包括一个
$order\u 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...
}

您可以使用
$order\u id
作为
woocommerce\u new\u order
回调的参数,并从
$order\u 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);
}; 
参考资料:


此处的所有答案都是正确的,但如果您需要行项目,则上述方法将不起作用,因为此时无法使用新的WC\U订单获取行项目

钩子现在有第二个
$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...
}

您可以使用
$order=wc\u get\u order($order\u id)
我尝试了这个,然后我尝试了插入
打印($order\u id)
插入数据库表中的
1
是添加新订单时使用的正确操作吗?@charlie值1是因为print\u r()直接打印输出并返回true(1)。如果要使用输出,请使用print\r($order\u id,true)。我已尝试插入
var\u dump($order)
进入数据库,但它只是空白。您可以尝试使用
woocommerce\u order\u status\u completed
woocommerce\u payment\u complete
操作。我希望它适用于新订单-当通过网站或wp Admin下订单时,上述两个操作实际上适用于新订单。