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

WooCommerce根据客户账单国家/地区修改商品价格

根据账单国家/地区调整商品价格(兼容所有商品类型)

原代码利用woocommerce_get_price钩子实现了针对账单国家的价格换算,但仅支持简单商品,无法覆盖可变商品(如带规格、属性的产品)。以下是适配所有商品类型的优化版本:

// 使用更现代的钩子,兼容所有商品类型
add_filter('woocommerce_product_get_price', 'return_custom_price_by_country', 10, 2);
add_filter('woocommerce_product_variation_get_price', 'return_custom_price_by_country', 10, 2);

function return_custom_price_by_country($price, $product) {
    // 仅在结账页面生效
    if (!is_checkout()) {
        return $price;
    }

    // 目标国家代码数组(可按需添加更多)
    $target_countries = array('US');
    $customer_billing_country = WC()->customer->get_billing_country();

    // 检查客户账单国家是否在目标列表中
    if (in_array($customer_billing_country, $target_countries)) {
        // 执行价格换算逻辑(示例:原价格/260*1.25,可按需修改)
        return ($price / 260) * 1.25;
    }

    // 非目标国家返回原价格
    return $price;
}

关键优化点:

  • 改用woocommerce_product_get_price和woocommerce_product_variation_get_price钩子,同时覆盖简单商品和可变商品的子变体
  • 移除冗余全局变量,改用官方推荐的WC()全局对象调用客户信息
  • 逻辑前置判断结账页面,避免非必要计算
  • 变量命名更语义化,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:17:05