Übersicht über das Problem
Wenn Sie ein Formular mit Checkboxes haben, das mit dem WPForms-Plugin erstellt wurde und auf einem Server mit PHP 8x läuft, funktioniert es nicht, wenn Sie versuchen, es abzusenden. Stattdessen erhalten Sie diesen schwerwiegenden Fehler:
[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)
Problemumgehung
Dieses Problem ist behoben. Ein Update auf die neueste Version behebt dies auf Ihrer Website, daher benötigen Sie diese Problemumgehung nur, wenn Sie noch nicht aktualisieren können.
Bitte erstellen Sie ein vollständiges Backup, bevor Sie fortfahren.
- Öffnen Sie die Datei …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php.
- Suchen Sie nach Zeile 185.
- Ersetzen Sie:
if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'checkbox', 'radio', 'select' ], true ) ) {durch:
if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'radio', 'select' ], true ) ) {