我正在为客户开发一些自定义 Woocommerce 功能。他们使用 BACS 支付网关来处理人工支付。
然而,网关目前为我们的需要过早地减少库存,即当订单为“暂停”时。我只想在订单标记为“处理中”或“完成”时减少库存(避免重复减少)。
我已经设法通过以下代码段防止库存在“暂停”期间自行减少:
function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
if ( $order->has_status( 'on-hold' ) ) {
$reduce_stock = false;
}
return $reduce_stock;
}
add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );
Run Code Online (Sandbox Code Playgroud)
我不太确定如何继续。虽然上述代码有效,但添加以下条件无效:
else if ( $order->has_status( 'processing' ) || $order->has_status( 'completed' ) ) {
$reduce_stock = true;
}
Run Code Online (Sandbox Code Playgroud)
简而言之,我希望库存根据以下库存状态发生变化:
任何帮助深表感谢!