WPML

Panoramica del problema

Se hai un modulo con caselle di controllo creato con il plugin WPForms in esecuzione su un server PHP 8x, non funzionerà quando provi a inviarlo. Invece, riceverai questo errore fatale:

[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)

Soluzione alternativa

Questo problema è stato risolto. L’aggiornamento all’ultima versione risolve il problema sul tuo sito, quindi hai bisogno di questa soluzione alternativa solo se non puoi ancora aggiornare.

Assicurati di eseguire un backup completo prima di procedere.

  1. Apri il file …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php.
  2. Cerca la riga 185.
  3. Sostituisci:
    if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'checkbox', 'radio', 'select' ], true ) ) {

    Con:

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

Tutti i problemi noti

Riscontri ancora questo problema?

Se l’aggiornamento non risolve il problema, fai una richiesta di supporto e lo analizzeremo con te.