- 상태
- 해결됨
- 해결된 버전
- 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/