WooCommerce允许缺货预订的商品变体低库存提示自定义需求
修改WooCommerce低库存提示范围:仅对允许缺货预订的商品变体生效
原代码未限制适用范围,导致所有商品变体都会触发提示。以下是调整后的代码,仅对开启缺货预订且库存数量在1-4之间的商品变体生效:
add_filter( 'woocommerce_get_availability', 'change_stock_text_for_backorder_variations', 20, 2 ); function change_stock_text_for_backorder_variations( $availability, $_product ) { // 仅针对商品变体、允许缺货预订、库存状态为有货的商品 if ( $_product->is_type('variation') && $_product->backorders_allowed() && $_product->is_in_stock() ) { $stock_qty = $_product->get_stock_quantity(); // 库存数量大于0且小于5时显示自定义提示 if ( $stock_qty > 0 && $stock_qty < 5 ) { $availability['availability'] = __( "{$stock_qty} in stock, more available on backorder", 'woocommerce' ); } } return $availability; }
关键改动说明:
- 限制为商品变体:通过
$_product->is_type('variation')确保代码只作用于商品变体,而非父商品 - 检查缺货预订设置:新增
$_product->backorders_allowed()判断,仅允许开启缺货预订的商品触发提示 - 优化条件逻辑:将多条件合并到同一个判断中,减少冗余嵌套,提升代码可读性
- 明确变量命名:将
$qty改为$stock_qty,让变量含义更直观
替换原代码后,只有符合以下全部条件的商品变体才会显示自定义低库存提示:
- 属于商品变体(非简单商品/父商品)
- 已开启缺货预订功能
- 当前库存状态为有货
- 库存数量在1到4之间(大于0且小于5)
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

