- Trạng thái
- Đã giải quyết
- Đã giải quyết trong
- 4.10.0
Tổng quan về lỗi
Do dữ liệu sai định dạng được lưu trong cơ sở dữ liệu, xảy ra tình trạng các bản dịch nhãn thuộc tính sản phẩm không được hiển thị trên trang sản phẩm.
Giải pháp tạm thời
Chúng tôi đang tiến hành khắc phục sự cố này, trong lúc chờ đợi, bạn có thể sử dụng bản vá sau, vui lòng chỉ thực hiện việc này trên trang web thử nghiệm và nếu bạn quen thuộc với việc chỉnh sửa mã PHP và chỉ sau khi bạn đã đảm bảo rằng mình có một bản sao lưu hoàn chỉnh cho trang web của mình.
Bản vá sau cần được áp dụng trong tệp “wp-content/plugins/woocommerce-multilingual/inc/class-wcml-attributes.php” tại dòng 379:
Thay thế mã sau (toàn bộ phương thức “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;
}
Bằng:
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
Chúng tôi đã phát hành một bản beta có thể giải quyết sự cố này. Vui lòng lưu ý rằng đây là bản beta đang được thử nghiệm và không nên sử dụng trên các trang web chính thức. Bạn có thể tải xuống tại đây:
https://wpml.org/account/downloads/