- Stato
- Risolto
- Segnalato per
- WPML Multilingual CMS 4.5.10
- Risolto in
- WPML 4.6.4
- Plugin/tema correlato
- Elementor
- Tag dell’argomento
- Bug, Compatibility
Panoramica del problema
Se importi dei contenuti demo che richiedono Elementor (provenienti ad esempio dai temi Astra o Real Homes), noterai che non sarà possibile tradurli e in PHP 8 si verificherà il seguente errore:
Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, array given in …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php:22
Questo accade perché i contenuti demo sono dati serializzati e il nostro codice di integrazione si aspetta una stringa codificata in JSON.
Soluzione alternativa
Assicurati di fare un backup completo del tuo sito prima di procedere.
- Modifica il file …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.
- Cerca la riga 21.
- Cambia:
public static function unserialize( $data ) { return json_decode( is_array( $data ) ? $data[0] : $data, true ); }in:
public static function unserialize( $data ) { $data = is_array( $data ) ? $data[0] : $data; if (is_string($data)) { return json_decode( $data, true ); } return $data; }