WPML
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.


  1. Modifica il file …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.

  2. Cerca la riga 21.

  3. 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;
    }

Tutti i problemi noti →