WPML

我们刚刚发布了 WPML Multilingual & Multicurrency for WooCommerce 5.5.6。此版本侧重于性能。它旨在解决商店所有者最常抱怨的问题之一:一旦您的产品目录包含许多变体和多种语言,在 WooCommerce 编辑器中保存可变产品的速度就会变得很慢。此版本修复了该问题。

为什么保存可变产品的速度一直很慢

当您保存产品时,WPML Multilingual & Multicurrency for WooCommerce (WCML) 会使每个翻译与原始内容保持同步。这项工作涵盖价格、属性、库存、变体以及其他相关数据。

在单产品、单语言网站上,这项工作是不可见的。但在拥有 7 种语言、100 个变体的商店中,同样的保存操作会在后台悄悄运行数百次数据库更新。其中大部分更新针对的是实际上并未更改的翻译数据。

作为一种安全保障,这样做是有道理的。它确保了没有任何内容会失去同步。但这也意味着,修复一个错别字所付出的代价与导入一个全新产品相同。拥有大型目录的商店对此深有体会。许多用户也向我们反映了这一点。

WCML 5.5.6 改变了这一状况。

新增:编辑器范围同步模式

我们添加了一个名为 Variation translation sync on product save 的新设置。它包含两种模式。

完全同步(默认,未更改)

WCML 会继续执行目前的行为。每次保存都会同步每种语言的每个变体。这是确保翻译与源内容保持一致的最有力保障。

升级后,完全同步仍是默认设置。除非您另行选择,否则您的网站不会发生改变。

编辑器范围同步(新增,需手动开启)

在此模式下,从 WooCommerce 编辑器保存时,仅同步您实际编辑过的变体。

我们在一个包含 9 个变体并翻译为 19 种语言的产品上进行了测试,测量了完整的保存周期 — 从单击保存到编辑器再次可用。仅更新产品说明时,WCML + WPML 的耗时从 2.08s 降至 1.42s,减少了 32%。WooCommerce 和 WordPress 未受影响。总保存时间从 5.52s 降至 4.86s — 整体提升了 12%。

更新产品的处理时间

显示更新产品所需处理时间数据的条形图

您的结果将因 WooCommerce、您的主题、您的主机以及您的其他插件而异。拥有大型目录和多种语言的商店将看到最大的提升。

您未更改的变体怎么办?

我们知道这是大家首先会问的问题。这里有两个安全保障。

保存后通知。开启编辑器范围同步后,每次保存都会向您显示一条通知。它会列出跳过了多少个变体。它还为您提供了一个一键式按钮:Force update all variation translations。这样,只需单击一下即可进行完全同步,您无需切换模式即可实现。

保存可变产品后显示的通知 – WCML 提醒您同步了哪些变体

当完全同步在做无用功时的提示。如果您保持使用完全同步,我们会监测那些进行了大量工作但没有实际更改的保存操作。当我们发现这种模式时,会建议您切换模式。该提示仅在大型产品上出现。我们使用的阈值是变体数 × 语言数 ≥ 120。低于该值时,性能消耗并不明显。我们不会打扰您。

保存可变产品后显示的警告 – WCML 指出浪费的资源并提供更好的选项

编辑器范围同步的适用范围

编辑器范围同步仅影响从 WooCommerce 产品编辑器的保存操作。正是该屏幕让您感觉速度缓慢。

不会改变:

  • 翻译仪表板
  • 自动翻译所有内容
  • CSV 导入、API 调用以及其他以编程方式编辑产品的方法
  • 专业翻译服务商返回翻译任务后的后台同步

译员的工作流程不受影响。

如何开启编辑器范围同步

更新后,前往 WPML设置WCML。您将看到 Variation translation sync on product save 选项。将其切换为 Only sync variations edited in the editor 并单击保存更改

在 WCML 设置中设置新的“Variation translation sync on product save”选项

保存任何产品以确认是否出现保存后通知。

更多性能改进

在具有对象缓存的商店中,产品页面加载速度更快

许多用户使用 Redis 或 Object Cache Pro 等持久对象缓存。在此次更新后,使用这些缓存且包含大量评论的产品页面加载速度将显著提升。

我们更改了 WCML 处理产品评论缓存的方式。以前,它会在每次查看产品时清除部分对象缓存。现在,它会与您的对象缓存协同工作,而不是将其清除。

购物车计算仅在发生更改时运行

WCML 过去会在已登录购物者访问的每个页面上重新计算购物车总额。这包括产品页面、帐户页面和商店存档。即使购物车没有任何更改,也会发生这种情况。

从该版本开始,我们仅在货币、汇率或购物车内容实际发生更改时才重新计算。在所有其他页面上,WCML 不会进行干预。

更简洁的迷你购物车行为

WooCommerce 已经在每个购物会话开始时触发一次购物车刷新请求。该请求可保持迷你购物车的准确性。

WCML 过去会在每次页面加载时触发第二次请求。即使购物车为空时也会触发。

在 5.5.6 中,第二次请求已被移除。后台请求更少。服务器负载更低。

减少翻译产品图片背后的工作量

我们简化了处理已翻译产品图库图片的方式。

以前,这项工作会执行两次。一次是在保存或翻译产品时。然后是在每次页面浏览时。现在已移除了页面浏览时的处理。翻译产品时保存的数据现在被视为真实可靠的数据源。

您网站上的结果是相同的。只需更少的查询即可实现。

大型可变产品页面:将此更新与最新的 WooCommerce 搭配使用

一些用户报告说,包含数百个变体的单个产品页面加载速度非常慢。我们进行了调查。WooCommerce 10.4.x 自身存在一个性能问题,该问题显著放大了这种减速现象。WooCommerce 10.7 此后已将其修复。

如果您在商店中遇到过这种情况,请将 WooCommerce 更新至 10.7 或更高版本,并搭配 WCML 5.5.6 一起使用。这是最快的解决途径。

实用的修复

变体现在回退到默认语言

当产品尚未翻译时,一些商店允许次要语言回退到默认语言。在这些商店中,未翻译产品上的变体过去会从下拉列表中消失。它们现在保持可见。正如设置所承诺的那样,它们会回退到默认语言。

在翻译的商店页面上刷新筛选计数

您向已翻译的产品添加了一个新属性。您希望翻译的商店页面上的按属性筛选计数能反映这一更改。但在该版本之前,它们并没有。原始语言的商店更新了,但翻译的商店却没有。

现在,WCML 会在将属性同步到翻译后清除正确的 WooCommerce 缓存。两家商店保持一致。

每个切换器上的货币切换器加载动画

您可以在同一页面上多次放置 [currency_switcher] 简码。例如,在页眉中放置一次,在页脚中再放置一次。过去,加载动画仅出现在最后一个切换器上。从该版本开始,当客户更改货币时,它会出现在所有切换器上。

与 WooCommerce 10.8 的兼容性

WooCommerce 10.8 计划于 2026年5月26日 星期二发布。我们针对它测试了 WCML 5.5.6。我们的发布时间定在第二天。您安装的版本是我们已针对发布的 WooCommerce 构建版验证过的版本。

更新与反馈

像往常一样,我们将逐步推出此版本。如果您想立即更新:

  1. 在您网站的管理后台中,前往插件安装插件。单击商业选项卡。
  2. 单击检查更新
  3. WPML Multilingual & Multicurrency for WooCommerce 5.5.6 将出现在列表中。从那里进行更新。

我们很想了解编辑器范围同步在您商店中的表现。如果您拥有包含许多变体和多种语言的大型目录,我们对此尤为感兴趣。请在下方留言,或在我们的支持论坛中提交工单。让我们知道您的测量结果。

觉得有用吗?分享这篇文章: