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

如何修改WooCommerce商品页库存显示 自定义高库存值展示规则

解决方案

我们直接使用WooCommerce原生的woocommerce_get_availability_text过滤器实现需求,该钩子会在所有需要展示库存文本的场景触发,天然兼容商品分类列表页、商品详情页,同时支持简单产品、可变产品等所有内置产品类型,不需要额外处理多页面适配逻辑。

完整实现代码

add_filter( 'woocommerce_get_availability_text', 'custom_stock_display_text', 99, 2 );
function custom_stock_display_text( $availability_text, $product ) {
    // 库存显示阈值
    $stock_threshold = 50;

    // 1. 获取产品真实总库存
    $real_total_stock = 0;
    if ( $product->is_type( 'variable' ) ) {
        // 可变产品:汇总所有在售可售变体的库存
        $variation_ids = $product->get_children();
        foreach ( $variation_ids as $variation_id ) {
            $variation = wc_get_product( $variation_id );
            if ( $variation && $variation->is_purchasable() && $variation->get_manage_stock() ) {
                $real_total_stock += (int) $variation->get_stock_quantity();
            }
        }
    } else {
        // 简单产品等其他类型:直接读取产品库存
        if ( $product->get_manage_stock() ) {
            $real_total_stock = (int) $product->get_stock_quantity();
        }
    }

    // 2. 按规则修改库存显示文本
    if ( $product->is_in_stock() && $real_total_stock > 0 ) {
        if ( $real_total_stock > $stock_threshold ) {
            // 真实库存大于阈值,显示50-100的随机值
            $display_stock = rand( 50, 100 );
            $availability_text = sprintf( __( '%s in stock', 'woocommerce' ), $display_stock );
        } else {
            // 真实库存小于等于阈值,显示真实值
            $availability_text = sprintf( __( '%s in stock', 'woocommerce' ), $real_total_stock );
        }
    }

    // 缺货状态保持原有显示逻辑不变
    return $availability_text;
}

使用说明

  1. 将上述代码添加到主题的functions.php文件中,或者自定义代码片段插件中即可生效
  2. 代码自动覆盖所有WooCommerce原生库存展示位置,无需额外配置
  3. 如果需要固定单个产品的随机显示值(避免每次刷新数值变动),可以将$display_stock = rand( 50, 100 );替换为下方代码:
// 以产品ID为种子生成固定随机值,同一个产品显示数值不会随刷新变化
$display_stock = $stock_threshold + ( crc32( $product->get_id() ) % 51 );

内容的提问来源于stack exchange,提问作者Loris GFT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:36:03