- Estado
- Resuelto
- Notificado para
- WPML Multilingual CMS 4.5.10
- Resuelto en
- WPML 4.6.4
- Plugin/tema relacionado
- Elementor
- Etiquetas de temática
- Bug, Compatibility
Resumen del problema
Si importa algún contenido de demostración que requiere Elementor (proveniente de los temas Astra o Real Homes, por ejemplo), notará que no será posible traducirlo y aparecerá el siguiente error en PHP 8:
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
Esto ocurre porque el contenido de demostración son datos serializados y nuestro código de integración espera una cadena codificada en JSON.
Solución alternativa
Por favor, asegúrese de hacer una copia de seguridad completa de su sitio antes de continuar.
- Edite el archivo …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.
- Busque la línea 21.
- Cambie:
public static function unserialize( $data ) { return json_decode( is_array( $data ) ? $data[0] : $data, true ); }Por:
public static function unserialize( $data ) { $data = is_array( $data ) ? $data[0] : $data; if (is_string($data)) { return json_decode( $data, true ); } return $data; }