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


  • После применения этих изменений Вам нужно вручную сохранить или обновить товары с этой проблемой.

Все известные проблемы →