wordpress - “woocommerce_can_reduce_order_stock”过滤器在后端不起作用
问题描述
我有一个名为“报价”的自定义订单状态,我添加了以下代码来尝试防止具有此状态的订单的库存水平减少。
function bw_do_not_reduce_quote_stock( $reduce_stock, $order ) {
if ( $order->has_status( 'quote' ) ) {
$reduce_stock = false;
}
return $reduce_stock;
}
add_filter( 'woocommerce_can_reduce_order_stock', 'bw_do_not_reduce_quote_stock', 10, 2 );
这适用于前端网站上的订单。但是,如果管理员在后端添加或编辑订单,库存就会减少。
后端是否有替代挂钩?还是我错过了其他东西?
解决方案
除了您当前的代码之外,添加woocommerce_prevent_adjust_line_item_product_stock
过滤器挂钩
/**
* Prevent adjust line item
*
* @param $prevent
* @param $item
* @param $quantity
*/
function filter_woocommerce_prevent_adjust_line_item_product_stock ( $prevent, $item, $quantity ) {
// Get order
$order = $item->get_order();
if ( $order->has_status( 'quote' ) ) {
$prevent = true;
}
return $prevent;
}
add_filter( 'woocommerce_prevent_adjust_line_item_product_stock', 'filter_woocommerce_prevent_adjust_line_item_product_stock', 10, 3 );
推荐阅读
- html - 创建 Bootstrap 选项卡链接
- python - 将数据帧上传到 Google BigQuery 时一致(10054,WSAERROR)
- ios - collectionView.collectionViewLayout.invalidateLayout()
- android - Android - 进入画中画模式后显示上一个片段
- android - 是否可以在棒棒糖中使用谷歌照片(sdk 版本 22)
- r - 有没有办法在 R 中同时保留日期和变量列的同时使用下一个交易日的回合日期?
- javascript - 无法访问对象数组中的元素
- twilio - 即使使用了 Twilio 的转向服务器,WebRTC 也无法工作
- r - 如何限制用户在 R 中写入的数据?
- python - 为什么 Spyder 不承认虚拟环境?