ปลั๊กอิน Shipping รุ่นเก่าบางตัวทำงานได้บน PHP รุ่นเก่า แต่เกิด Fatal Error หลัง Server เปลี่ยนเป็น PHP รุ่นใหม่ เช่น sizeof(): Argument #1 must be of type Countable|array
ต้นเหตุ
sizeof() เป็น alias ของ count() และ PHP รุ่นใหม่ตรวจชนิดข้อมูลเข้มขึ้น หากตัวแปรที่ควรเป็น array กลายเป็น null จะเกิด TypeError แทนการปล่อยผ่านแบบเดิม
วิธีแก้ที่ถูกลำดับ
- ตรวจว่ามีปลั๊กอิน DHL รุ่นใหม่หรือไม่
- ตรวจ PHP/WooCommerce compatibility
- สำรอง plugin เดิม
- ถ้าจำเป็นต้อง patch ชั่วคราว ให้ตรวจชนิดข้อมูลก่อน count/sizeof
- ทดสอบ Rate calculation, Cart และ Checkout หลังแก้
Deprecated dynamic property
ถ้ามี Warning เรื่อง dynamic property พร้อมกัน แสดงว่าโค้ดมีส่วนที่ยังไม่ได้ปรับให้เข้ากับ PHP รุ่นใหม่ แม้ Warning นั้นอาจไม่ใช่ตัวที่ทำ Checkout ล่ม แต่เป็นสัญญาณว่าควรวางแผนอัปเดตหรือเปลี่ยน integration
แก้ปัญหา WordPress ไม่จบ หรือต้องการให้ตรวจจาก Error จริง?
หากลองแก้ตามแนวทางข้างต้นแล้วเว็บไซต์ยังมีปัญหา WebsiteInTrend สามารถช่วยตรวจสอบจาก Error Log, Stack Trace, Network Request, Plugin/Theme และ Server เพื่อหาต้นเหตุของปัญหาโดยตรง ไม่เน้นแก้แบบสุ่ม
ดูบริการรับแก้ปัญหา WordPress — สำหรับเว็บไซต์ WordPress, WooCommerce และ Elementor ที่มี Error เว็บล่ม เข้าใช้งานไม่ได้ หรือทำงานผิดปกติ