- 状态
- 已解决
- 报告针对
- WPML Multilingual & Multicurrency for WooCommerce 5.5.2.1
- 解决于
- WooCommerce Multilingual & Multicurrency 5.5.2.2
- 主题标签
- WCML
问题概述
在 WPML Multilingual & Multicurrency for WooCommerce 中,翻译可变产品时,可能会出现第二语言中的默认变体丢失或被错误地设置为 0 的情况。
当 term_id 和 term_taxonomy_id 的值不同时就会发生这种情况,这在使用全局产品属性时可能会出现。
临时解决方法
在继续操作之前,请确保对您的站点进行了完整站点备份。
- 打开 …/woocommerce-multilingual/classes/Synchronization/Component/Attributes.php 文件。
- 找到第 137 行。
- 替换:
$defaultTermIdTranslations = $this->elementTranslations->get_element_translations( $defaultTermId, false, true );
- 替换为:
$defaultTermIdTranslations = [];
- 在同一文件中,找到第 149 行并替换:
$translatedDefaultTermId = $this->elementTranslations->element_id_in( $defaultTermId, $language );
- 替换为:
$translatedDefaultTermId = apply_filters( 'wpml_object_id', $defaultTermId, $sanitizedAttributeName, false, $language );
- 应用这些更改后,您需要手动保存或更新存在此问题的产品。