我使用WooCommerce通过电话/电子邮件等手动接收订单。我使用后端记录订单以手动添加订单。
目前,当生成状态为“待付款”的订单时,库存会自动减少/扣除。我不希望这种情况发生。理想情况下,我只希望在订单被标记为“处理中”时减少库存,然后付款。
我了解这是WooCommerce的工作方式,有没有办法避免在选择特定状态之前减少库存?
我已经尝试过在functions.php中使用以下代码,并使用“保留”状态进行测试,但是库存仍然减少了。
add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );
function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
if ( $order->has_status( 'on-hold' )) {
$reduce_stock = false;
}
return $reduce_stock;
}
我想知道是否因为我将订单添加为管理员?我知道这是WooCommerce的工作方式,但是理想情况下,我需要一种方法在草稿和创建阶段创建订单时覆盖“待付款”状态,直到标记为“处理中”。
任何帮助都是很棒的。
答案 0 :(得分:0)
尝试将其添加到functions.php 注意:未经测试。
function reduce_stock_processing($order_id) {
wc_reduce_stock_levels($order_id);
}
add_action('woocommerce_order_status_processing', 'reduce_stock_processing');