WPML
Status
Resolvido
Resolvido em
4.10.0

Visão geral do problema

Devido a dados malformados salvos no banco de dados, ocorre que as traduções dos rótulos de atributos do produto não são exibidas na página do produto.

Solução alternativa

Estamos trabalhando em uma correção para esse problema. Enquanto isso, você pode usar o patch a seguir. Por favor, faça isso apenas em um site de teste, se você se sentir confortável em editar código PHP e somente depois de se certificar de que tem um backup totalmente funcional do seu site.

O patch a seguir deve ser aplicado no arquivo “wp-content/plugins/woocommerce-multilingual/inc/class-wcml-attributes.php” na linha 379:

Substitua o código a seguir (todo o método “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;
}

Por:

	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


Lançamos uma versão beta que deve resolver esse problema. Por favor, tenha em mente que é uma versão beta que está em fase de testes e não deve ser usada em sites de produção. Você pode baixá-la aqui:
https://wpml.org/account/downloads/

Todos os problemas conhecidos →