WPML

نظرة عامة على المشكلة

إذا كان لديك نموذج بمربعات اختيار تم إنشاؤه بواسطة إضافة 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 ) ) {

جميع المشكلات المعروفة

هل ما زلت تواجه هذه المشكلة؟

إذا لم يحل التحديث المشكلة، فاطرح استفسار الدعم وسنبحث في الأمر معك.