如何在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
相关产品推荐
相关产品推荐

