- Статус
- Решено
- Решено в
- 4.10.0
Обзор проблемы
Из-за некорректных данных, сохраненных в базе данных, случается, что переводы меток атрибутов товара не отображаются на странице товара.
Обходное решение
Мы работаем над исправлением этой проблемы. Тем временем Вы можете использовать следующий патч. Пожалуйста, применяйте его только на тестовом сайте, если Вы уверенно редактируете PHP-код, и только после создания полной резервной копии Вашего сайта.
Следующий патч необходимо применить в файле «wp-content/plugins/woocommerce-multilingual/inc/class-wcml-attributes.php» в строке 379:
Замените следующий код (весь метод «get_attr_label_translations»):
public function get_attr_label_translations( $product_id, $lang = false ) {
$trnsl_labels = get_post_meta( $product_id, 'attr_label_translations', true );</code>
if ( ! is_array( $trnsl_labels ) ) {
$trnsl_labels = [];
}
if ( isset( $trnsl_labels[ $lang ] ) ) {
return $trnsl_labels[ $lang ];
}
return $trnsl_labels;
}
На:
public function get_attr_label_translations( $product_id, $lang = false ) {
$trnsl_labels = get_post_meta( $product_id, 'attr_label_translations', true );
$remove_empty_values = function ( $values ) {
return wpml_collect( $values )->filter()->toArray();
};
if ( ! $lang && is_array( $trnsl_labels ) ) {
return wpml_collect( $trnsl_labels )
->map( $remove_empty_values )
->toArray();
}
if ( isset( $trnsl_labels[ $lang ] ) ) {
return $remove_empty_values( $trnsl_labels[ $lang ] );
}
return [];
}
WPML 4.4.0 Beta
Мы выпустили бета-версию, которая должна решить эту проблему. Пожалуйста, учтите, что это бета-версия, которая находится на стадии тестирования и не должна использоваться на рабочих сайтах. Вы можете скачать её здесь:
https://wpml.org/account/downloads/