- Statut
- Résolu
- Signalé pour
- WPForms Multilingual 0.3.5
- Résolu dans
- WPForms Multilingual 0.3.6
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Si vous utilisez WPForms et avez récemment effectué la mise à jour vers la version 1.8.5.1, vous pourriez rencontrer l’erreur suivante dans les informations de votre debug.log si votre site fonctionne dans un environnement PHP8 :
PHP Fatal error: Uncaught TypeError: strlen(): Argument #1 ($str) must be of type string, array given in .../wp-includes/formatting.php:3557
Solution de contournement
Il est conseillé aux clients rencontrant ce problème de revenir à WPForms 1.8.4 jusqu’à la publication d’un correctif.
Sinon, assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.
- Ouvrez le fichier …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Notifications.php.
- Cherchez la ligne 70.
- Remplacez :
public function applyEmailTranslations( $data, $emails ) { $package = $this->newPackage( $this->getId( $emails->form_data ) ); do_action( 'wpml_switch_language_for_email', $data['to'] ); $dataKeys = [ 'subject', 'message' ]; - Par :
public function applyEmailTranslations( $data, $emails ) { $package = $this->newPackage( $this->getId( $emails->form_data ) ); if (is_array($data['to'])){ foreach ($data['to'] as $address){ do_action( 'wpml_switch_language_for_email', $address ); } } else { do_action( 'wpml_switch_language_for_email', $data['to'] ); } $dataKeys = [ 'subject', 'message' ];