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

修改WooCommerce按国家定价插件报unexpected ‘public’语法错误求助

错误原因
  • 你添加的代码本身存在语法缺失:自定义函数末尾缺少闭合大括号},函数定义不完整
  • 你修改的class-wcpbc-frontend-pricing.php是PHP类定义文件,不可以在类结构内部直接声明全局函数、调用add_filter,你插入的代码打断了原类的结构,原文件第68行的public是类方法的修饰关键字,前面未闭合的代码导致PHP解析到该关键字时判定为非法语法。
解决方法

方案1(推荐,不会被插件更新覆盖修改)

不要修改插件原生代码,将修正后的完整代码添加到你当前使用的WordPress主题的functions.php文件末尾即可,代码如下:

add_filter( 'woocommerce_get_price_html', 'country_geolocated_based_hide_price', 10, 2 );
function country_geolocated_based_hide_price( $price, $product ) {
    // 实例化WooCommerce地理定位类
    $geo_instance  = new WC_Geolocation();
    // 获取用户IP对应的地理信息
    $user_geodata = $geo_instance->geolocate_ip();
    // 获取用户所属国家代码
    $country = $user_geodata['country'];
    // 目标国家返回空价格,其他国家返回正常价格
    return $country == 'GB' ? '' : $price;
}

将代码中的GB替换为你需要隐藏价格的目标国家代码即可,操作前先将你修改过的插件文件恢复为原版,清除站点缓存后即可生效。

方案2(仅适合必须在插件内实现功能的场景)

如果需要保留在插件内修改的逻辑,需要遵循PHP类的编码规范,将自定义方法定义为类的成员方法,在类的初始化阶段注册过滤器,不要直接在类结构中间插入零散代码。操作前务必先备份原插件文件,避免修改错误导致站点持续崩溃。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:45:07