Php 当订单中有缺货项时,更改订单状态
在WooCommerce中,如果此订单中有延期订购的项目,如何将保留订单状态更改为其他状态 我曾尝试使用一个自定义函数挂接在woocommerce\u order\u status\u on-hold操作钩子中,但没有成功 有人能帮我解决这个问题吗 谢谢Php 当订单中有缺货项时,更改订单状态,php,wordpress,woocommerce,status,orders,Php,Wordpress,Woocommerce,Status,Orders,在WooCommerce中,如果此订单中有延期订购的项目,如何将保留订单状态更改为其他状态 我曾尝试使用一个自定义函数挂接在woocommerce\u order\u status\u on-hold操作钩子中,但没有成功 有人能帮我解决这个问题吗 谢谢 function mysite_hold($order_id) { $order = new WC_Order($order_id); $items = $order->get_items(); $backord
function mysite_hold($order_id) {
$order = new WC_Order($order_id);
$items = $order->get_items();
$backorder = FALSE;
foreach ($items as $item) {
if ($item['Backordered']) {
$backorder = TRUE;
break;
}
}
if($backorder){
$order->update_status('completed'); //change your status here
}
}
add_action('woocommerce_order_status_on-hold', 'mysite_hold');
//You may need to store your backorder info like below
wc_add_order_item_meta($item_id, 'Backordered', $qty - max(0, $product->get_total_stock()));
请尝试这个片段
请尝试此代码段这里有一个在woocommerce\u Thankyu操作挂钩中挂钩的自定义函数,如果此订单的状态为“搁置”,并且其中有任何缺货产品,则该函数将更改订单状态 您必须在函数中设置所需的新状态缓动变化 下面是自定义函数代码的注释: 代码位于活动子主题或主题的function.php文件中,或者位于任何插件文件中
代码经过测试并正常工作。这里有一个自定义函数,挂接在woocommerce\u Thankyu action hook中,如果此订单的状态为保留状态,并且其中有任何缺货产品,则该函数将更改订单状态 您必须在函数中设置所需的新状态缓动变化 下面是自定义函数代码的注释: 代码位于活动子主题或主题的function.php文件中,或者位于任何插件文件中
代码已测试并正常工作。在//获取与订单项相关的产品对象实例时编辑代码错误
$product = version_compare( WC_VERSION, '3.0', '<' ) ? wc_get_product($item['product_id']) : $item->get_product();
//获取与订单项相关的产品对象实例时发生编辑代码错误
$product = version_compare( WC_VERSION, '3.0', '<' ) ? wc_get_product($item['product_id']) : $item->get_product();
感谢您工作正常,但此行显示错误:wc\u add\u order\u item\u meta$item\u id,$quaty-max0,$product->get\u total\u stock;如何在woocommerce中获取订单详细信息?如果订单包含销售价格,则我希望更改订单状态感谢工作正常,但此行显示错误:wc\u add\u order\u item\u meta$item\u id,'Backordered',$qty-max0,$product->get\u total\u stock;如何在woocommerce中获取订单详细信息?如果订单包含销售价格,则我想更改订单状态,$cart\u项目变量来自何处?@RizwanKhan抱歉,更新时出现键入错误…我已更新了代码。$cart\u项目变量来自何处?@RizwanKhan抱歉,更新时出现键入错误…我已更新了代码。是否需要添加任何解释,这个答案与这个问题有什么关系?你想补充一下解释吗?这个答案与这个问题有什么关系?