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

如何在WooCommerce中隐藏缺货商品但保留其评论?

实现WooCommerce隐藏缺货商品但保留评论功能的方法

方法一:使用WooCommerce自带设置(最简单)

WooCommerce原生支持该需求,操作步骤如下:

  • 进入WordPress后台,打开 WooCommerce > 设置 > 产品 > 库存
  • 找到“隐藏缺货商品”选项,勾选后保存设置

设置完成后,缺货商品会自动从店铺首页、产品分类/标签页等归档页面中隐藏,但用户仍可通过直接链接访问商品详情页,评论功能完全不受影响。

方法二:自定义代码(更灵活)

如果自带设置无法满足特殊过滤需求,可通过代码实现:

将以下代码添加到当前主题的functions.php文件末尾,或自定义功能插件中:

add_action( 'pre_get_posts', 'custom_hide_out_of_stock_products' );
function custom_hide_out_of_stock_products( $query ) {
    // 仅作用于前台主产品查询,且针对归档页面
    if ( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_taxonomy() ) ) {
        $meta_query = $query->get( 'meta_query', [] );
        
        // 过滤逻辑:显示有库存的商品,或未启用库存管理的商品
        $meta_query[] = [
            'relation' => 'OR',
            [
                'key'     => '_stock_status',
                'value'   => 'instock',
                'compare' => '=',
            ],
            [
                'key'     => '_manage_stock',
                'value'   => 'no',
                'compare' => '=',
            ]
        ];
        
        $query->set( 'meta_query', $meta_query );
    }
}

代码说明:

  • 仅修改店铺、分类/标签页的产品查询,不影响单个商品页面的显示
  • 保留未启用库存管理的商品(这类商品不会被标记为缺货)
  • 单个商品页面的评论功能完全正常,用户可正常查看、提交评论

注意事项:

  • 推荐用自定义功能插件添加代码,避免主题更新导致代码丢失
  • 若使用缓存插件,修改代码后需清除缓存才能生效
  • 确保WooCommerce库存管理功能已在后台开启

内容的提问来源于stack exchange,提问作者w.a.b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:25:25