WPML
Stato
Risolto
Segnalato per
WPForms Multilingual 0.3.0
Risolto in
0.3.1
Plugin/tema correlato
WP Forms
Tag dell’argomento
Compatibility

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

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 →