WPML
状态
已解决
报告针对
WPML Multilingual & Multicurrency for WooCommerce 5.5.2.1
解决于
WooCommerce Multilingual & Multicurrency 5.5.2.2
主题标签
WCML

问题概述

WPML Multilingual & Multicurrency for WooCommerce 中,翻译可变产品时,可能会出现第二语言中的默认变体丢失或被错误地设置为 0 的情况。

term_idterm_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 );


  • 应用这些更改后,您需要手动保存或更新存在此问题的产品。

所有已知问题 →