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

如何隐藏购物车图标下拉框中特定产品类别的价格

解决WooCommerce迷你购物车下拉列表显示特定类别产品价格的问题

嘿,这个问题我熟!你之前用woocommerce_cart_item_price过滤器成功隐藏了产品页和常规购物车页面的价格,但悬停购物车图标弹出的**迷你购物车(Widget Cart)**是通过另一个独立的钩子来控制价格输出的,所以得针对这个钩子也添加相同的隐藏逻辑才行。

解决方案步骤:

  1. 复用类别检查逻辑:把判断产品是否属于目标类别的代码抽成通用函数,避免重复写相同逻辑;
  2. 添加迷你购物车专属过滤器:针对woocommerce_widget_cart_item_price钩子,应用同样的隐藏规则。

完整代码示例

// 通用函数:判断产品是否属于需要隐藏价格的类别
function is_product_in_hidden_price_category($product_id) {
    // 替换成你实际需要隐藏价格的产品类别Slug,多个类别用逗号分隔
    $target_categories = array('hidden-price-category', 'another-hidden-category');
    
    // 处理变体产品:检查父产品的类别
    $product = wc_get_product($product_id);
    if ($product->is_type('variation')) {
        $product_id = $product->get_parent_id();
    }
    
    return has_term($target_categories, 'product_cat', $product_id);
}

// 隐藏常规购物车页面的特定类别产品价格
add_filter('woocommerce_cart_item_price', 'hide_cart_item_price_for_hidden_categories', 10, 3);
function hide_cart_item_price_for_hidden_categories($price, $cart_item, $cart_item_key) {
    if (is_product_in_hidden_price_category($cart_item['product_id'])) {
        // 这里可以返回空字符串,或者自定义文本比如「价格面议」「需咨询客服」
        return '<em>价格面议</em>';
    }
    return $price;
}

// 隐藏迷你购物车下拉列表的特定类别产品价格
add_filter('woocommerce_widget_cart_item_price', 'hide_widget_cart_item_price_for_hidden_categories', 10, 3);
function hide_widget_cart_item_price_for_hidden_categories($price, $cart_item, $cart_item_key) {
    if (is_product_in_hidden_price_category($cart_item['product_id'])) {
        // 和上面保持一致的显示文本
        return '<em>价格面议</em>';
    }
    return $price;
}

使用说明:

  • 把上述代码添加到你的WordPress主题的functions.php文件中,或者使用「Code Snippets」这类自定义代码插件来添加(更安全,避免主题更新丢失代码);
  • 记得把$target_categories里的类别Slug替换成你实际需要隐藏价格的产品类别Slug;
  • 如果不需要自定义文本,直接返回''(空字符串)即可完全隐藏价格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:32:34