- Статус
- Решено
- Заявлено для
- 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 );
- После применения этих изменений Вам нужно вручную сохранить или обновить товары с этой проблемой.