- Statut
- Résolu
- Signalé pour
- WPML Multilingual CMS 4.7.4
- Résolu dans
- WPML 4.7.5
- Extension/thème associé
- Elementor
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Après la mise à jour de WPML, une erreur critique peut se produire sur certaines pages de produits WooCommerce lorsque les extensions Elementor et Traduction de chaînes sont actives. Ce problème est déclenché par l’intégration d’Elementor dans WPML lorsqu’elle tente de sérialiser les données null, provoquant un TypeError fatal.
PHP Fatal error: Uncaught TypeError: WPML\PB\Elementor\DataConvert::serialize(): Argument #1 ($data) must be of type array,
null given, called in /wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/QueryFilter.php on line 34 ...
Solution de contournement
Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.
- Ouvrez le fichier …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/QueryFilter.php.
- Recherchez la ligne 28.
- Remplacez :
public function translateQueryIds( $value, $object_id, $meta_key, $single ) { if ( WPML_Elementor_Data_Settings::META_KEY_DATA === $meta_key && $single ) { $value = get_post_meta( $object_id, WPML_Elementor_Data_Settings::META_KEY_DATA, true ); if ( $value ) { $value = DataConvert::unserialize( $value, false ); $value = $this->recursivelyTranslateQueryIds( $value ); $value = DataConvert::serialize( $value, false ); } } return $value; }
- Par :
public function translateQueryIds( $value, $object_id, $meta_key, $single ) { if ( WPML_Elementor_Data_Settings::META_KEY_DATA === $meta_key && $single ) { $newValue = get_post_meta( $object_id, WPML_Elementor_Data_Settings::META_KEY_DATA, true ); if ( $newValue ) { $newValue = DataConvert::unserialize( $newValue, false ); if ( is_array( $newValue ) ) { $newValue = $this->recursivelyTranslateQueryIds( $newValue ); return DataConvert::serialize( $newValue, false ); } return $value; } } return $value; }
Nos développeurs travaillent déjà sur une nouvelle version publiée pour corriger ce problème.