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

求助:WooCommerce可变商品价格禁用代码无效(Saha主题)

解决WooCommerce可变商品价格无法隐藏的问题

你遇到的情况大概率是因为Saha主题的钩子优先级更高,或者主题自定义了价格渲染模板,绕过了WooCommerce默认的钩子逻辑。我给你几个针对性的解决方案:

1. 提升钩子优先级并覆盖更多拦截点

默认钩子优先级是10,很多主题会用更高数值的优先级来覆盖默认输出。你可以把优先级调到99(或更高),同时增加一个更通用的钩子woocommerce_get_price_html,确保能拦截到所有价格输出场景:

// 完全隐藏可变商品的价格区间
add_filter( 'woocommerce_variable_sale_price_html','my_remove_variation_price', 99, 2 );
add_filter( 'woocommerce_variable_price_html', 'my_remove_variation_price', 99, 2 );
add_filter( 'woocommerce_get_price_html', 'my_remove_variation_price', 99, 2 );

function my_remove_variation_price( $price, $product ) {
    // 仅针对可变商品生效,不影响简单商品等其他类型
    if ( $product->is_type('variable') ) {
        $price = '';
    }
    return $price;
}

把这段代码替换你原来的内容,加到子主题的functions.php里(一定要用子主题,避免主题更新后修改丢失)。

2. 检查主题自定义的WooCommerce模板

如果上面的代码还是无效,那很可能Saha主题重载了WooCommerce的价格模板。你需要去主题目录下找这两个文件:

  • woocommerce/single-product/price.php
  • woocommerce/single-product/add-to-cart/variable.php

打开文件后,找到判断可变商品价格的代码块,比如类似这样的内容:

if ( $product->is_type('variable') ) {
    echo wc_get_price_html( $product );
}

把这段代码注释掉或者直接删除,就能彻底隐藏价格了。

3. 额外处理商品列表页(可选)

如果你还想在店铺存档页、分类页也隐藏可变商品的价格,可以再加一段代码:

add_filter( 'woocommerce_loop_price', 'my_remove_loop_variation_price', 99, 2 );

function my_remove_loop_variation_price( $price, $product ) {
    if ( $product->is_type('variable') ) {
        $price = '';
    }
    return $price;
}

按照这个步骤试下来,应该就能解决你的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:51:27