- Status
- Gelöst
- Gelöst in
- 4.10.0
Übersicht über das Problem
Aufgrund fehlerhafter Daten, die in der Datenbank gespeichert wurden, kommt es vor, dass Übersetzungen von Produktattribut-Labels auf der Produktseite nicht angezeigt werden.
Problemumgehung
Wir arbeiten an einer Lösung für dieses Problem. In der Zwischenzeit können Sie den folgenden Patch verwenden. Bitte tun Sie dies nur auf einer Test-Website und wenn Sie mit der Bearbeitung von PHP-Code vertraut sind, und erst, nachdem Sie sichergestellt haben, dass Sie über ein voll funktionsfähiges Backup Ihrer Website verfügen.
Der folgende Patch muss in der Datei „wp-content/plugins/woocommerce-multilingual/inc/class-wcml-attributes.php“ in Zeile 379 angewendet werden:
Ersetzen Sie den folgenden Code (die gesamte Methode „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;
}
Durch:
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
Wir haben eine Beta veröffentlicht, die dieses Problem beheben sollte. Bitte beachten Sie, dass es sich um eine Beta-Version handelt, die sich in der Testphase befindet und nicht auf Live-Websites verwendet werden sollte. Sie können sie hier herunterladen:
https://wpml.org/account/downloads/