- Stato
- Risolto
- Risolto in
- 4.10.0
Panoramica del problema
A causa di dati malformati salvati nel database, accade che le traduzioni delle etichette degli attributi del prodotto non vengano visualizzate nella pagina del prodotto.
Soluzione alternativa
Stiamo lavorando a una correzione per questo problema; nel frattempo, puoi usare la seguente patch. Applicala solo su un sito di prova, se hai familiarità con la modifica del codice PHP e solo dopo esserti assicurato di avere un backup completo e funzionante del tuo sito.
La seguente patch deve essere applicata nel file “wp-content/plugins/woocommerce-multilingual/inc/class-wcml-attributes.php” alla riga 379:
Sostituisci il codice seguente (l’intero metodo “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;
}
Con:
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
Abbiamo rilasciato una beta che dovrebbe risolvere questo problema. Tieni presente che si tratta di una versione beta in fase di test e non dovrebbe essere utilizzata sui siti di produzione. Puoi scaricarla qui:
https://wpml.org/account/downloads/