WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
WPForms Multilingual 0.3.0
แก้ไขใน
0.3.1
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
WP Forms
แท็กหัวข้อ
Compatibility

ภาพรวมของปัญหา

หากคุณมีแบบฟอร์มที่มีช่องทำเครื่องหมายที่สร้างด้วยปลั๊กอิน WPForms ซึ่งทำงานบนเซิร์ฟเวอร์ PHP 8x แบบฟอร์มจะไม่ทำงานเมื่อคุณพยายามส่งข้อมูล คุณจะพบข้อผิดพลาดร้ายแรงนี้แทน:

[14-Feb-2023 18:43:45 UTC] PHP Fatal error: Uncaught TypeError: array_key_exists(): Argument #1 ($key) must be a valid array offset type in …/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Obj.php:98Stack trace: #5 …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php(191): WPML\FP\Obj::__callStatic('propOr’, Array)#6 [internal function]: WPML\Forms\Hooks\WpForms\Strings->WPML\Forms\Hooks\WpForms\{closure}(Array, 44)#17 …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php(197): WPML\FP\Obj::__callStatic('over’, Array)#18 …/wp-includes/class-wp-hook.php(308): WPML\Forms\Hooks\WpForms\Strings->translateEntry(Array, Array)

วิธีแก้ปัญหาชั่วคราว

โปรดสำรองข้อมูลทั้งหมดก่อนดำเนินการต่อ


  1. เปิดไฟล์ …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php

  2. ค้นหาบรรทัดที่ 185

  3. แทนที่:
    			if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'checkbox', 'radio', 'select' ], true ) ) {

    ด้วย:

    			if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'radio', 'select' ], true ) ) {

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