WPML
Trạng thái
Đã giải quyết
Đã giải quyết trong
4.12.0

Tổng quan về lỗi

Sau khi dịch một sản phẩm, đôi khi các biến thể sản phẩm bằng ngôn ngữ mặc định không còn hiển thị trên giao diện người dùng.

Nguyên nhân là do transient của biến thể được lưu trữ trong mã ngôn ngữ dịch thay vì mã ngôn ngữ mặc định. Transient của các sản phẩm con thuộc sản phẩm có biến thể WooCommerce đôi khi có thể được điền các giá trị sai nếu nó được tính toán trên trang bằng một ngôn ngữ khác.

Rất tiếc, chúng tôi không thể xác định trường hợp này xảy ra trong ngữ cảnh nào.

Giải pháp tạm thời

Cho đến khi có thêm thông tin về bối cảnh, chúng tôi đề xuất thêm đoạn mã sau vào tệp functions.php trong giao diện của bạn:

/**
 * Prevent issues with product variations transient when it's
 * computed in a secondary language page for a product in
 * the default language.
 */
add_filter( 'woocommerce_variable_children_args', function( $args ) {
	global $sitepress;
	$parseQueryAction = [ $sitepress, 'parse_query' ];
	if ( remove_action( 'parse_query',  $parseQueryAction ) ) {
		add_action( 'setted_transient', function() use ( $parseQueryAction ) {
			add_action( 'parse_query',  $parseQueryAction );
		} );
	}
	return $args;
} );

Tất cả các lỗi đã ghi nhận →