WPML
状态
已解决
报告针对
WPML String Translation 2.4.2
解决于
WPML String Translation 2.4.2.1

问题概述

当将 WPML Multilingual & Multicurrency for WooCommerce 3.8.6 与 WPML 3.5.3 一起使用时,在以次要语言下订单后,订单确认页面上会显示(或记录)一些错误。

错误消息类似于以下内容:

PHP Notice: Undefined index: order-received in ../wp-content/plugins/woocommerce-multilingual/inc/class-wcml-endpoints.php on line 155

除了错误消息之外,用户看到的不是包含订单详情的“订单已收到”页面,而是没有任何内容的已翻译“结账”页面。

空白的“结账”页面
德语的空白“结账”页面

尽管订单实际上已完成并且已发送通知电子邮件,但客户可能会感到困惑,认为订单未成功提交,从而发送重复的订单。

我们发现这是由 WPML 字符串翻译 2.4.2 中的一项更改引起的。修复程序已经在开发中,但在发布更新之前我们需要对其进行充分测试。

临时解决方法

修复此问题的一种方法是使用 WPML 字符串翻译的 Beta 版 2.4.2.1-b1。它仅解决这个特定问题,不应对其他任何内容产生影响。但是,它是一个 Beta 版,因此建议您谨慎操作:请备份您的站点,最好先在非生产环境中进行测试。

还有另一种可能的临时解决方法,您可以暂时使用,且应该不会对用户体验产生太大影响。此临时解决方法涉及将对应于“order-received”端点的字符串标记为不翻译。您无需删除该字符串,只需取消勾选“翻译已完成”复选框即可。以下是将英语作为默认语言时的步骤。如果您的站点使用不同的默认语言,步骤是相同的。


  1. 前往 WPML -> 字符串翻译

  2. 搜索“order-received”或导航至“WooCommerce Endpoints”域并找到“order-received”字符串。

  3. 展开“order-received”字符串的“翻译”部分

  4. 取消勾选“翻译已完成”复选框,并为所有语言单击“保存”
将“order-received”端点标记为未翻译
将“order-received”端点标记为未翻译

完成此操作后,您的“Order Received”页面仍将被翻译。只是 URL 中的端点字符串不会被翻译。

所有已知问题 →