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

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