
本文介绍通过 WordPress 钩子 woocommerce_product_is_visible 编写轻量级代码,批量隐藏所有标价为 $35 的 WooCommerce 商品,无需手动编辑,适用于数千商品的高效管理场景。
本文介绍通过 wordpress 钩子 `woocommerce_product_is_visible` 编写轻量级代码,批量隐藏所有标价为 $35 的 woocommerce 商品,无需手动编辑,适用于数千商品的高效管理场景。
在 WooCommerce 中,当面对 5000+ 商品需按价格条件(如统一为 $35)批量隐藏时,逐一手动设置“库存状态”或“可见性”既低效又易出错。推荐使用 WordPress 的过滤钩子 woocommerce_product_is_visible —— 它在商品前端展示前实时判断可见性,不修改数据库,安全、可逆、性能友好。
以下是一段经过优化的 PHP 代码,可直接添加至当前主题的 functions.php 文件(建议使用子主题),或通过 Code Snippets 插件安全启用:
add_filter( 'woocommerce_product_is_visible', 'hide_products_by_regular_price', 10, 2 );
function hide_products_by_regular_price( $visible, $id ) {
// 防御性检查:确保 ID 有效且能获取产品对象
if ( ! $id || ! is_numeric( $id ) ) {
return $visible;
}
$product = wc_get_product( $id );
if ( ! $product ) {
return $visible;
}
// 匹配常规价格(非促销价),精确等于 35(单位:基础货币数值,如美元)
if ( (float) $product->get_regular_price() === 35.0 ) {
return false; // 隐藏该商品(前台不显示,搜索/分类/首页均不可见)
}
return $visible;
}
✅ 关键说明与注意事项:
将针对 Pi、Claude Code、Codex、OpenCode、Gemini CLI 或 ACP harness 的自然语言请求路由至 OpenClaw ACP 运行时会话,或直接路由至 acpx-...
- ✅ 仅影响前台可见性:商品仍保留在后台、订单、报表中,不影响库存、订单处理及 REST API 数据;
- ✅ 支持变体产品:对可变产品(Variable Product),该逻辑作用于其自身(即父级产品),若需按子 SKU 价格隐藏,请改用 woocommerce_variation_is_visible 钩子;
- ⚠️ 价格精度处理:使用 (float) 强制转换并 === 严格比较,避免浮点数误差(如 35.00 与 35 判定不一致);
- ⚠️ 缓存兼容性:若启用页面缓存(如 WP Rocket、LiteSpeed),需排除商品列表页或刷新缓存,否则可能延迟生效;
- ? 快速取消隐藏:只需注释或删除该函数,或返回 true 强制全部可见,无需数据库回滚。
? 扩展提示(可选):如需隐藏多个价格(如 $35、$49.99、$79),可将条件改为:
$target_prices = [35.0, 49.99, 79.0];
if ( in_array( (float) $product->get_regular_price(), $target_prices, true ) ) {
return false;
}
此方案零插件依赖、资源占用极低,是大规模 WooCommerce 商城精细化价格策略管理的可靠实践。










