เราเพิ่งเปิดตัว WPML Multilingual & Multicurrency for WooCommerce 5.5.6 โดยรุ่นนี้เน้นไปที่การเพิ่มประสิทธิภาพการทำงาน ซึ่งมุ่งเป้าไปที่หนึ่งในปัญหาที่เจ้าของร้านค้าแจ้งเข้ามาบ่อยที่สุด นั่นคือการบันทึกสินค้าที่มีตัวเลือก (Variable Product) ในตัวแก้ไขของ WooCommerce นั้นทำงานได้ช้าเมื่อแคตตาล็อกของคุณมีตัวเลือกสินค้าและภาษาจำนวนมาก ซึ่งการอัปเดตนี้จะเข้ามาแก้ไขปัญหานี้โดยเฉพาะ
ทำไมการบันทึกสินค้าที่มีตัวเลือกถึงทำงานช้า
เมื่อคุณบันทึกสินค้า WPML Multilingual & Multicurrency for WooCommerce (WCML) จะคอยซิงค์ข้อมูลการแปลทุกอย่างให้ตรงกับต้นฉบับเสมอ งานดังกล่าวครอบคลุมทั้งเรื่องราคา, คุณลักษณะ (Attributes), สต็อกสินค้า, ตัวเลือกสินค้า และข้อมูลอื่น ๆ ที่เกี่ยวข้อง
ในไซต์ที่มีสินค้าชิ้นเดียวและภาษาเดียว งานส่วนนี้จะไม่ส่งผลกระทบใด ๆ แต่ในร้านค้าที่มีสินค้า 100 ตัวเลือกใน 7 ภาษา การบันทึกเพียงครั้งเดียวจะมีการรัน การอัปเดตฐานข้อมูลหลายร้อยรายการ อยู่เบื้องหลัง ซึ่งการอัปเดตส่วนใหญ่นั้นเป็นการอัปเดตข้อมูลการแปลที่ไม่ได้มีการเปลี่ยนแปลงจริง ๆ
ก่อนหน้านี้ วิธีการดังกล่าวถือเป็นการรับประกันความปลอดภัยเพื่อให้แน่ใจว่าไม่มีข้อมูลใดหลุดจากการซิงค์ แต่ก็หมายความว่าการแก้ไขคำผิดเพียงเล็กน้อยต้องเสียเวลาเท่ากับการนำเข้าสินค้าใหม่ทั้งหมด ร้านค้าที่มีแคตตาล็อกขนาดใหญ่จึงได้รับผลกระทบนี้ และหลายท่านก็ได้แจ้งเรื่องนี้ให้เราทราบ
WCML 5.5.6 ได้เปลี่ยนรูปแบบการทำงานดังกล่าวแล้ว
ใหม่: โหมดการซิงค์ตามขอบเขตของตัวแก้ไข (Editor Scoped Sync Mode)
เราได้เพิ่มการตั้งค่าใหม่ที่เรียกว่า Variation translation sync on product save (การซิงค์คำแปลตัวเลือกสินค้าเมื่อบันทึกสินค้า) ซึ่งมีสองโหมดให้เลือก
การซิงค์แบบสมบูรณ์ (ค่าเริ่มต้น, ไม่เปลี่ยนแปลง)
WCML จะยังคงทำงานเหมือนเดิม คือทุกครั้งที่มีการบันทึก จะทำการซิงค์ทุกตัวเลือกสินค้าในทุกภาษา วิธีนี้เป็นการรับประกันที่แน่นหนาที่สุดว่าคำแปลจะตรงกับต้นฉบับเสมอ
การซิงค์แบบสมบูรณ์จะยังคงเป็นค่าเริ่มต้นหลังจากที่คุณอัปเกรด ไซต์ของคุณจะไม่มีการเปลี่ยนแปลงใด ๆ เว้นแต่คุณจะเลือกเป็นอย่างอื่น
การซิงค์ตามขอบเขตของตัวแก้ไข (ใหม่, ต้องเลือกเปิดใช้งาน)
ในโหมดนี้ การบันทึกจากตัวแก้ไขของ WooCommerce จะซิงค์เฉพาะตัวเลือกสินค้าที่คุณได้ทำการแก้ไขจริง ๆ เท่านั้น
เราได้ทดสอบกับสินค้าที่มี 9 ตัวเลือกและแปลเป็น 19 ภาษา โดยวัดรอบการบันทึกทั้งหมด ตั้งแต่การคลิก บันทึก ไปจนถึงตัวแก้ไขกลับมาใช้งานได้อีกครั้ง ในการอัปเดตเฉพาะคำอธิบายสินค้า พบว่าเวลาที่ WCML + WPML ใช้ลดลงจาก 2.08 วินาที เหลือเพียง 1.42 วินาที หรือลดลงถึง 32% โดยไม่ส่งผลกระทบต่อ WooCommerce และ WordPress ส่วนเวลาการบันทึกโดยรวมลดลงจาก 5.52 วินาที เหลือ 4.86 วินาที ซึ่งเป็นการปรับปรุงภาพรวมดีขึ้น 12%
เวลาประมวลผลในการอัปเดตสินค้า

ผลลัพธ์ของคุณจะแตกต่างกันไปขึ้นอยู่กับ WooCommerce, ธีม, โฮสต์ และปลั๊กอินอื่น ๆ ของคุณ ร้านค้าที่มีแคตตาล็อกขนาดใหญ่และมีหลายภาษาจะเห็นผลลัพธ์ที่ชัดเจนที่สุด
แล้วตัวเลือกสินค้าที่คุณไม่ได้แตะต้องล่ะ?
เราทราบดีว่านี่คือคำถามแรกที่คุณสงสัย เราจึงมีระบบป้องกันไว้สองชั้น
การแจ้งเตือนหลังการบันทึก เมื่อเปิดใช้งานการซิงค์ตามขอบเขตของตัวแก้ไข ทุกครั้งที่มีการบันทึกจะมีการแสดงการแจ้งเตือน โดยจะระบุจำนวนตัวเลือกสินค้าที่ถูกข้ามไป และยังมีปุ่มให้คลิกเพียงครั้งเดียวคือ: Force update all variation translations (บังคับอัปเดตคำแปลตัวเลือกสินค้าทั้งหมด) ด้วยวิธีนี้ คุณสามารถทำการซิงค์แบบสมบูรณ์ได้เสมอเพียงแค่คลิกเดียว โดยไม่ต้องสลับโหมดไปมา

การสะกิดเตือนเมื่อการซิงค์แบบสมบูรณ์ทำงานเกินความจำเป็น หากคุณยังคงใช้ การซิงค์แบบสมบูรณ์ เราจะคอยตรวจสอบการบันทึกที่มีการประมวลผลอย่างหนักโดยไม่มีการเปลี่ยนแปลงข้อมูลจริง เมื่อเราพบรูปแบบดังกล่าว เราจะแนะนำให้คุณสลับโหมด การสะกิดเตือนนี้จะปรากฏเฉพาะกับสินค้าขนาดใหญ่เท่านั้น โดยเราใช้เกณฑ์คือ จำนวนตัวเลือกสินค้า × จำนวนภาษา ≥ 120 หากต่ำกว่านั้น เวลาที่เสียไปจะไม่รู้สึกถึงความแตกต่าง และเราจะไม่รบกวนคุณ

การซิงค์ตามขอบเขตของตัวแก้ไขมีผลที่ไหนบ้าง
การซิงค์ตามขอบเขตของตัวแก้ไขจะมีผลเฉพาะการบันทึกจากตัวแก้ไขสินค้าของ WooCommerce เท่านั้น ซึ่งเป็นหน้าที่คุณจะรู้สึกถึงความล่าช้า
โหมดนี้จะ ไม่มี ผลต่อ:
- หน้าแดชบอร์ดการแปล (Translation Dashboard)
- แปลทุกอย่างโดยอัตโนมัติ
- การนำเข้าไฟล์ CSV, การเรียกใช้ API และวิธีการแก้ไขสินค้าผ่านโปรแกรมอื่น ๆ
- การซิงค์เบื้องหลังหลังจากบริการแปลส่งงานกลับคืนมา
ขั้นตอนการทำงานของนักแปลจะไม่ได้รับผลกระทบ
วิธีเปิดใช้งานการซิงค์ตามขอบเขตของตัวแก้ไข
หลังจากอัปเดตเป็นเวอร์ชัน 5.5.6 ให้ไปที่ WooCommerce → WCML และคลิกที่แท็บ Settings คุณจะเห็นตัวเลือก Variation translation sync on product save ให้เปลี่ยนเป็น Only sync variations edited in the editor แล้วคลิก Save changes

ลองบันทึกสินค้าใดก็ได้เพื่อยืนยันว่ามีการแจ้งเตือนหลังการบันทึกปรากฏขึ้น
การปรับปรุงประสิทธิภาพด้านอื่น ๆ
หน้าสินค้าโหลดเร็วขึ้นสำหรับร้านค้าที่มี Object Caching
หลายท่านใช้ Persistent Object Cache เช่น Redis หรือ Object Cache Pro ด้วยแคชเหล่านี้ หน้าสินค้าที่มีรีวิวจำนวนมากจะโหลดเร็วขึ้นอย่างเห็นได้ชัดหลังจากการอัปเดตนี้
เราได้เปลี่ยนวิธีที่ WCML จัดการกับแคชรีวิวสินค้า จากเดิมที่จะล้างแคชบางส่วนในทุกครั้งที่มีการเข้าชมสินค้า ตอนนี้จะทำงานร่วมกับ Object Cache ของคุณแทนที่จะล้างข้อมูลทิ้ง
การคำนวณในรถเข็นจะรันเฉพาะเมื่อมีการเปลี่ยนแปลงเท่านั้น
ก่อนหน้านี้ WCML จะคำนวณยอดรวมในรถเข็นใหม่ในทุกหน้าที่ผู้ซื้อที่ล็อกอินเข้าชม ซึ่งรวมถึงหน้าสินค้า, หน้าบัญชี และหน้าคลังสินค้า แม้ว่าจะไม่มีอะไรในรถเข็นเปลี่ยนแปลงเลยก็ตาม
ตั้งแต่รุ่นนี้เป็นต้นไป เราจะคำนวณใหม่เฉพาะเมื่อมีการเปลี่ยนแปลงสกุลเงิน, อัตราแลกเปลี่ยน หรือข้อมูลในรถเข็นจริง ๆ เท่านั้น ในหน้าอื่น ๆ WCML จะไม่เข้าไปรบกวนการทำงาน
การทำงานของรถเข็นขนาดเล็ก (Mini-Cart) ที่สะอาดตาขึ้น
WooCommerce จะส่งคำขอรีเฟรชรถเข็นหนึ่งครั้งเมื่อเริ่มเซสชันการช้อปปิ้งแต่ละครั้ง เพื่อให้ข้อมูลในรถเข็นขนาดเล็กถูกต้องแม่นยำ
แต่เดิม WCML จะส่งคำขอที่สองในทุกครั้งที่โหลดหน้าเว็บ แม้ว่ารถเข็นจะว่างเปล่าก็ตาม
ในเวอร์ชัน 5.5.6 คำขอที่สองนั้นได้ถูกนำออกไปแล้ว ซึ่งช่วยลดคำขอเบื้องหลังและลดภาระการทำงานของเซิร์ฟเวอร์ของคุณ
ลดขั้นตอนการทำงานเบื้องหลังของรูปภาพสินค้าที่แปลแล้ว
เราได้ปรับปรุงวิธีการจัดการรูปภาพในแกลเลอรีสินค้าที่แปลแล้วให้ง่ายขึ้น
ก่อนหน้านี้ งานส่วนนี้จะถูกทำซ้ำสองครั้ง ครั้งแรกเมื่อมีการบันทึกหรือแปลสินค้า และอีกครั้งในทุกครั้งที่มีการเข้าชมหน้าเว็บ ตอนนี้เราได้นำขั้นตอนในตอนเข้าชมหน้าเว็บออกไปแล้ว โดยจะใช้ข้อมูลที่บันทึกไว้ตอนคุณแปลสินค้าเป็นแหล่งข้อมูลหลักแทน
ผลลัพธ์บนไซต์ของคุณยังคงเหมือนเดิม แต่ใช้การคิวรีที่น้อยลงเพื่อให้ได้ผลลัพธ์นั้น
หน้าสินค้าที่มีตัวเลือกจำนวนมาก: แนะนำให้อัปเดตนี้ควบคู่กับ WooCommerce เวอร์ชันล่าสุด
ผู้ใช้งานบางรายรายงานว่าหน้าสินค้าที่มีตัวเลือกหลายร้อยรายการโหลดช้ามาก เราได้ตรวจสอบและพบว่า WooCommerce 10.4.x มีปัญหาด้านประสิทธิภาพในตัวเองซึ่งทำให้ความล่าช้านี้รุนแรงขึ้น ซึ่ง WooCommerce 10.7 ได้แก้ไขปัญหานี้แล้ว
หากคุณพบปัญหานี้ในร้านค้าของคุณ โปรดอัปเดตเป็น WooCommerce 10.7 หรือใหม่กว่า ควบคู่ไปกับ WCML 5.5.6 นั่นคือวิธีที่เร็วที่สุดในการแก้ปัญหานี้
การแก้ไขที่มีประโยชน์
ตัวเลือกสินค้าจะกลับไปใช้ภาษาเริ่มต้นหากไม่มีคำแปล
ร้านค้าบางแห่งตั้งค่าให้ภาษาที่สองกลับไปใช้ภาษาเริ่มต้นเมื่อสินค้ายังไม่ได้ถูกแปล ในร้านค้าเหล่านั้น ตัวเลือกสินค้าของสินค้าที่ยังไม่ได้แปลมักจะหายไปจากรายการดรอปดาวน์ ตอนนี้ตัวเลือกเหล่านั้นจะยังคงแสดงอยู่ โดยจะแสดงเป็นภาษาเริ่มต้นตามที่การตั้งค่าได้ระบุไว้
รีเฟรชจำนวนตัวกรองในหน้าคลังสินค้าที่แปลแล้ว
เมื่อคุณเพิ่มคุณลักษณะใหม่ให้กับสินค้าที่แปลแล้ว คุณย่อมคาดหวังให้จำนวนใน Filter by attribute (กรองตามคุณลักษณะ) ในหน้าคลังสินค้าที่แปลแล้วสะท้อนถึงการเปลี่ยนแปลงนั้นด้วย แต่ก่อนหน้านี้จำนวนดังกล่าวจะไม่เปลี่ยนจนกว่าจะถึงรุ่นนี้ โดยหน้าคลังสินค้าภาษาต้นฉบับจะอัปเดต แต่หน้าคลังสินค้าที่แปลแล้วกลับไม่อัปเดต
ตอนนี้ WCML จะล้างแคชของ WooCommerce ที่ถูกต้องหลังจากซิงค์คุณลักษณะไปยังคำแปลแล้ว ทำให้ข้อมูลในหน้าคลังสินค้าทั้งสองภาษาตรงกัน
ตัวหมุนโหลดในตัวสลับสกุลเงินจะปรากฏในทุกจุด
คุณสามารถวางชอร์ตโค้ด [currency_switcher] ได้มากกว่าหนึ่งครั้งในหน้าเดียวกัน เช่น ในส่วนหัวและในส่วนท้าย ก่อนหน้านี้ตัวหมุนโหลดจะปรากฏเฉพาะในตัวสลับสกุลเงินอันสุดท้ายเท่านั้น ตั้งแต่รุ่นนี้เป็นต้นไป ตัวหมุนจะปรากฏในทุกจุดเมื่อลูกค้าทำการเปลี่ยนสกุลเงิน
ความเข้ากันได้กับ WooCommerce 10.8
WooCommerce 10.8 มีกำหนดเปิดตัวในวันอังคารที่ 26 พฤษภาคม 2026 เราได้ทดสอบ WCML 5.5.6 กับเวอร์ชันดังกล่าวแล้ว การเปิดตัวของเราถูกกำหนดไว้ในวันถัดไป เวอร์ชันที่คุณติดตั้งจึงเป็นเวอร์ชันที่เราได้ตรวจสอบกับ WooCommerce รุ่นที่เปิดตัวจริงแล้ว
อัปเดตและข้อเสนอแนะ
ตามปกติ เราจะทยอยเปิดตัวรุ่นนี้อย่างค่อยเป็นค่อยไป หากคุณต้องการอัปเดตทันที:
- ในหน้าผู้ดูแลระบบของไซต์ ให้ไปที่ Plugins → Add New Plugin แล้วคลิกแท็บ Commercial
- คลิก Check for updates
- WPML Multilingual & Multicurrency for WooCommerce 5.5.6 จะปรากฏในรายการ ให้คุณทำการอัปเดตจากที่นั่น
เรายินดีที่จะรับฟังว่าการซิงค์ตามขอบเขตของตัวแก้ไขทำงานอย่างไรในร้านค้าของคุณ เราสนใจเป็นพิเศษหากคุณมีแคตตาล็อกขนาดใหญ่ที่มีตัวเลือกสินค้าและภาษาจำนวนมาก สามารถแสดงความคิดเห็นด้านล่างหรือเปิดตั๋วในฟอรัมสนับสนุนของเรา เพื่อแจ้งให้เราทราบถึงผลลัพธ์ที่คุณวัดได้