"woocommerce_can_reduce_order_stock" 过滤器在后端不工作
"woocommerce_can_reduce_order_stock" filter is not working on backend
我有一个名为 'quote' 的自定义订单状态,我添加了以下代码以尝试防止具有此状态的订单的库存水平下降。
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 );
我有一个名为 'quote' 的自定义订单状态,我添加了以下代码以尝试防止具有此状态的订单的库存水平下降。
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 );