- สถานะ
- แก้ไขแล้ว
- แก้ไขใน
- 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;
} );