WPML

Ü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.

  1. Öffnen Sie die Datei …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php.
  2. Suchen Sie nach Zeile 185.
  3. 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 ) ) {

Alle bekannten Probleme

Tritt dieses Problem weiterhin auf?

Wenn das Update das Problem nicht behebt, stellen Sie eine Support-Anfrage und wir sehen uns das gemeinsam mit Ihnen an.