WordPress多语言站点PHP错误:不支持的操作数类型排查
问题解决思路
错误根源
主语言正常、切换第二语言报错,核心原因是英文语言环境下,$pod->field('group_price')没有返回有效的数值类型——可能是空值、字符串或者未同步的字段内容,导致和100做减法时触发类型不兼容的致命错误。
具体解决步骤
第一步:检查多语言字段数据
打开Pods插件后台,找到对应的group_price字段,切换到英文语言版本,确认该字段是否填写了有效的数字(比如折扣百分比,例如10代表10%折扣),有没有空值或非数字内容。第二步:给代码加容错处理
直接修改functions.php第206行,强制转换字段值为数值类型,避免非数值参与运算:'group_price' => $standar_price * (100 - floatval($pod->field('group_price'))) / 100, //6-19如果要更严谨,防止无效折扣值(比如负数或超过100的数)影响计算,可以改成:
// 先获取并转换折扣值为浮点数 $group_discount = floatval($pod->field('group_price')); // 校验折扣范围,无效值默认设为0 $group_discount = ($group_discount >= 0 && $group_discount <= 100) ? $group_discount : 0; 'group_price' => $standar_price * (100 - $group_discount) / 100, //6-19第三步:检查多语言插件配置
如果用的是WPML/Polylang这类多语言插件,确认Pods的group_price字段是否被设置为「可翻译」状态。如果没开启翻译,切换语言时无法获取对应语言的字段值,会返回空值导致报错。
内容的提问来源于stack exchange,提问作者user23392036
相关产品推荐
相关产品推荐

