- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- WPML String Translation 2.4.2
- แก้ไขใน
- WPML String Translation 2.4.2.1
ภาพรวมของปัญหา
เมื่อใช้ WPML Multilingual & Multicurrency for WooCommerce 3.8.6 ร่วมกับ WPML 3.5.3 จะมีข้อผิดพลาดบางอย่างแสดงขึ้น (หรือถูกบันทึก) บนหน้าการยืนยันคำสั่งซื้อ หลังจากทำการสั่งซื้อในภาษารอง
ข้อความแสดงข้อผิดพลาดจะคล้ายกับข้อความด้านล่างนี้:
PHP Notice: Undefined index: order-received in ../wp-content/plugins/woocommerce-multilingual/inc/class-wcml-endpoints.php on line 155
นอกเหนือจากข้อความแสดงข้อผิดพลาด แทนที่จะเป็นหน้า “ได้รับคำสั่งซื้อแล้ว” พร้อมรายละเอียดคำสั่งซื้อ ผู้ใช้กลับเห็นหน้า “การชำระเงิน” ที่ได้รับการแปลแต่ไม่มีเนื้อหาใด ๆ

แม้ว่าคำสั่งซื้อจะเสร็จสมบูรณ์และมีการส่งอีเมลแจ้งเตือนแล้วก็ตาม แต่ลูกค้าอาจสับสนและคิดว่าคำสั่งซื้อไม่สำเร็จ จึงส่งคำสั่งซื้อซ้ำ
เราพบว่าปัญหานี้เกิดจากการเปลี่ยนแปลงใน WPML การแปลสตริง 2.4.2 เรากำลังดำเนินการแก้ไข แต่จำเป็นต้องทดสอบอย่างละเอียดก่อนที่จะปล่อยอัปเดต
วิธีแก้ปัญหาชั่วคราว
วิธีหนึ่งในการแก้ไขปัญหานี้คือการใช้ เวอร์ชันเบต้า 2.4.2.1-b1 สำหรับ WPML การแปลสตริง ซึ่งจะแก้ไขเฉพาะปัญหานี้และไม่ควรส่งผลกระทบต่อส่วนอื่น ๆ อย่างไรก็ตาม เนื่องจากนี่คือเวอร์ชันเบต้าจึงขอแนะนำให้ใช้ความระมัดระวัง: สำรองข้อมูลเว็บไซต์ของคุณและควรทดสอบในสภาพแวดล้อมที่ไม่ใช่เว็บไซต์ที่ใช้งานจริงก่อน
มีวิธีแก้ปัญหาชั่วคราวอีกวิธีหนึ่งที่คุณสามารถใช้ได้และไม่ควรส่งผลกระทบต่อประสบการณ์ของผู้ใช้มากนัก วิธีแก้ปัญหาชั่วคราวนี้คือการทำเครื่องหมายสตริงข้อความที่ตรงกับตำแหน่งข้อมูล “order-received” ว่าไม่ต้องแปล คุณไม่จำเป็นต้องลบสตริงข้อความดังกล่าว เพียงแค่ยกเลิกการเลือกช่องทำเครื่องหมาย “การแปลเสร็จสมบูรณ์” ต่อไปนี้คือขั้นตอนสำหรับกรณีที่คุณตั้งค่าภาษาอังกฤษเป็นภาษาเริ่มต้น ขั้นตอนเหล่านี้จะเหมือนกันหากเว็บไซต์ของคุณใช้ภาษาเริ่มต้นอื่น
- ไปที่ WPML -> การแปลสตริง
- ค้นหา “order-received” หรือนำทางไปยังโดเมน “WooCommerce Endpoints” และค้นหาสตริงข้อความ “order-received”
- ขยายส่วน “การแปล” สำหรับสตริงข้อความ “order-received”
- ยกเลิกการเลือกช่องทำเครื่องหมาย “การแปลเสร็จสมบูรณ์” และคลิก “บันทึก” สำหรับทุกภาษา

หลังจากนี้ หน้า “Order Received” ของคุณจะยังคงได้รับการแปล เพียงแต่สตริงข้อความของตำแหน่งข้อมูลใน URL จะไม่ได้รับการแปล