You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置WooCommerce仅在库存≤50时显示商品库存状态?

WooCommerce 仅在库存≤50时显示库存状态的配置方法

你原有的代码存在两个问题:一是库存≥50时没有返回值,会导致逻辑错误;二是没考虑可变产品的子产品(Variations)——这类产品的库存通常由子SKU单独管理,而非父产品。

修正后的代码如下,同时兼容简单产品和可变产品:

add_filter( 'woocommerce_get_availability', 'display_availability_conditionally', 10, 2 );
function display_availability_conditionally( $availability, $product ) {
    // 区分可变产品的子产品与普通产品
    if ( $product->is_type('variation') ) {
        $stock_qty = $product->get_stock_quantity();
        $managing_stock = $product->managing_stock();
    } else {
        $stock_qty = $product->get_stock_quantity();
        $managing_stock = $product->managing_stock();
    }

    // 仅当开启库存管理且库存≤50时,保留库存状态显示
    if ( $managing_stock && $stock_qty <= 50 && $stock_qty > 0 ) {
        return $availability;
    } else {
        // 其他情况清空库存状态文本,不显示库存信息
        $availability['availability'] = '';
        $availability['class'] = '';
        return $availability;
    }
}

代码说明:

  • 针对可变产品的子产品做了单独判断,确保子SKU的库存逻辑生效
  • 当库存≥50、未开启库存管理,或库存为0时,清空库存状态的显示内容
  • 如果需要在库存为0时显示“缺货”状态,可去掉代码中的&& $stock_qty > 0条件

使用方法:

将代码添加到当前主题的functions.php文件末尾,或者使用代码片段插件(如Code Snippets)添加,避免主题更新导致代码丢失。

内容的提问来源于stack exchange,提问作者Wanderlust Consulting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:33:11