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

修改WooCommerce代码:仅对带标签产品向境外显示价格

实现指定标签产品对英国境外用户显示价格的代码

修改后的代码会先判断用户所在国家:如果是英国(GB),正常显示所有产品价格;如果是境外用户,仅当产品带有指定标签时才显示价格,否则隐藏。

/** 仅允许带指定标签的产品向英国境外用户显示价格 */
add_filter( 'woocommerce_get_price_html', 'country_geolocated_based_hide_price', 10, 2 );
function country_geolocated_based_hide_price( $price, $product ) {
    // 定义允许境外显示价格的产品标签(替换为你实际使用的标签slug)
    $allowed_tag = 'price-visible-overseas';
    
    // 获取用户地理位置信息
    $geo_instance  = new WC_Geolocation();
    $user_geodata = $geo_instance->geolocate_ip();
    $country = $user_geodata['country'];

    // 逻辑判断:英国用户正常显示;境外用户需产品带指定标签才显示价格
    if ( $country === 'GB' ) {
        return $price;
    } else {
        // 检查产品是否包含指定标签
        if ( has_term( $allowed_tag, 'product_tag', $product->get_id() ) ) {
            return $price;
        } else {
            return '';
        }
    }
}
/** 结束价格控制逻辑 */

关键说明:

  • 你需要把$allowed_tag的值替换为你实际使用的产品标签slug(不是标签名称),比如你创建了一个叫“境外可见价格”的标签,slug可能是visible-price-abroad,就把变量改成这个值。
  • has_term函数会检查产品是否属于指定的产品标签,确保只有带标签的产品才对境外用户显示价格。
  • 原有的地理位置判断逻辑保留,确保英国本土用户不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:18