WPML
สถานะ
แก้ไขแล้ว
แก้ไขใน
4.12.0

ภาพรวมของปัญหา

หลังจากแปลสินค้า บางครั้งรูปแบบสินค้าในภาษาเริ่มต้นจะไม่แสดงบนส่วนหน้าเว็บไซต์

สาเหตุคือ transient ของรูปแบบสินค้าถูกจัดเก็บในรหัสภาษาที่แปลแทนที่จะเป็นรหัสภาษาเริ่มต้น บางครั้ง transient ของสินค้าย่อยของสินค้าหลายรูปแบบใน WooCommerce อาจมีค่าที่ผิดพลาดหากถูกประมวลผลบนหน้าเว็บในภาษาอื่น

น่าเสียดายที่เราไม่สามารถระบุได้ว่าปัญหานี้เกิดขึ้นในบริบทใด

วิธีแก้ปัญหาชั่วคราว

จนกว่าเราจะมีข้อมูลเพิ่มเติมเกี่ยวกับบริบทนี้ เราขอแนะนำให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ functions.php ของธีมของคุณ:

/**
 * 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;
} );

ปัญหาที่ทราบแล้วทั้งหมด →