英文站标价 49 美元,切回中文页面就变成 49 元,中间没有任何换算,下单实际扣款和页面显示对不上,客服一天被问好几次。乍看像缓存或者权限的锅,追下去往往不是。

wp option get woocommerce_currency
wp option get woocommerce_currency --url=example.com/en/
# 两个语言下币种应不同

追下去是这么回事:货币切换只替换了符号,价格字段还是同一个数值,汇率和取整规则都没有参与计算,两种语言看到的是同一条价格记录,金额自然对不上。

「多语言货币显示」这类改动最怕改一半,回滚脚本先准备好,再动生产。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

具体做法是,按语言和地区分别绑定币种 不要只替换显示符号;价格入库存基准币种 展示的时候统一换算一次;换算完成以后再按当地习惯做取整和舍入处理。

验收就看一点,各个语言页面的价格与结算币种一致 客服反馈量明显下降。

作者 9823189