WordPress出现get_billing_address_1函数调用报错如何解决
报错根因
这是WooCommerce 3.0及以上版本的规范类提示(非致命报错,不影响功能运行但会暴露站点敏感信息),从报错回溯栈可直接定位问题来源:WC PayGate支付插件(对接CCAvenue支付通道)版本过旧,未适配新版WooCommerce的订单数据调用规范,在生成支付表单时直接读取订单billing_address_1属性,触发了系统的不规范调用提示。
报错消除方案
按优先级从高到低操作:
- 升级对应插件:进入WordPress后台插件列表,找到PayGate支付插件(名称可能显示为WC PayGate、CCAvenue PayGate Payment Gateway for WooCommerce),升级到官方发布的最新适配版本,升级完成后清空站点缓存、浏览器缓存,重新测试支付流程即可,正规插件的更新版本都会替换这类不规范的调用逻辑。
- 手动修复插件代码(插件已停更无新版本时使用):通过FTP或者主机文件管理器进入插件目录,找到WC_PayGate类下的
generate_ccavenue_form方法,将代码中直接调用订单属性的写法,比如$order->billing_address_1,替换为WooCommerce官方要求的getter方法写法$order->get_billing_address_1(),同方法下其他直接调用的订单属性(如账单手机号、账单邮箱等)也全部替换为对应的get方法,即可从根源消除提示。 - 临时屏蔽提示(临时救急使用):如果暂时无法升级或修改代码,可在当前使用的mojuri主题的
functions.php文件中加入如下代码,定向屏蔽这类非致命提示,不影响其他错误的正常排查:
add_action('init', function () { if (class_exists('WooCommerce')) { // 屏蔽WooCommerce生态插件不规范调用产生的Notice error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE); } });
- 生产环境基础配置:无论是否修复报错,都建议检查站点根目录下的
wp-config.php文件,将WP_DEBUG常量的值设置为false,关闭前端的报错显示,避免站点路径、代码结构等敏感信息泄露给普通访客。 - 冲突排查:如果升级插件后报错依然存在,临时切换到WordPress官方默认主题测试,如果切换后报错消失,说明当前使用的mojuri主题内置的WooCommerce相关自定义代码也存在不规范的订单属性调用,需要对应修改主题模板内的相关逻辑。
注意:不要直接修改WooCommerce核心文件来屏蔽报错,后续WooCommerce版本更新会覆盖所有修改,导致操作失效。
内容的提问来源于stack exchange,提问作者Nikunj Thumar
相关产品推荐
相关产品推荐

