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 根据批准状态和特定订单项目更改商业订单状态_Php_Wordpress_Woocommerce_Hook Woocommerce_Orders - Fatal编程技术网

Php 根据批准状态和特定订单项目更改商业订单状态

Php 根据批准状态和特定订单项目更改商业订单状态,php,wordpress,woocommerce,hook-woocommerce,orders,Php,Wordpress,Woocommerce,Hook Woocommerce,Orders,当当前状态为“已批准”且订单包含特定产品(id=10)时,我尝试将商业订单状态更改为“正在处理” 我尝试了下面的代码,但它不起作用。我是php新手,希望您能给予指导 add_action('woocmerce_order_status_changed'、'ts_auto_complete_business_cards'); 功能自动完成商务卡($order\U id) { 如果(!$order\u id){ 返回; } 全球$产品; $order=wc\u get\u order($order\

当当前状态为“已批准”且订单包含特定产品(id=10)时,我尝试将商业订单状态更改为“正在处理”

我尝试了下面的代码,但它不起作用。我是php新手,希望您能给予指导

add_action('woocmerce_order_status_changed'、'ts_auto_complete_business_cards');
功能自动完成商务卡($order\U id)
{
如果(!$order\u id){
返回;
}
全球$产品;
$order=wc\u get\u order($order\u id);
如果($order->data['status']==“已批准”){
$items=$order->get_items();
foreach($items作为$item){
$product_id=$item->get_product_id();
如果($product_id!=“10”)
{
$order->update_status('completed');
}
}
}
}
  • woocommerce\u order\u status\u changed
    有4个参数
  • 这一行->
    如果($product_id!=“10”)
    表示不相等,那么您还可以与字符串进行比较,而不是与数值进行比较
这样试试看

功能操作\u商业\u订单\u状态\u更改($order\u id、$old\u status、$new\u status、$order){
//比较
如果($old_status==‘approved’){
//获取项目
$items=$order->get_items();
foreach($items作为$item){
//获取产品id
$product_id=$item->get_product_id();
如果($product_id==10){
$order->update_状态(“处理”);
打破
}
}
}
}
添加行动('woocommerce\u order\u status\u changed','action\u woocommerce\u order\u status\u changed',10,4);

感谢您的回复!我尝试了你的建议,但不幸的是没有成功(我想我正在使用的插件与此有关)。然而,通过您对我的错误的解释,我将我的代码从if($product_id!=“10”)更正为if($product_id==10),这非常有效。非常感谢。