WPML
Status
Resolvido
Relatado para
WPML Multilingual CMS 4.5.10
Resolvido em
WPML 4.6.4
Plugin/tema relacionado
Elementor
Tags de tópico
Bug, Compatibility

Visão geral do problema

Se você importar algum conteúdo de demonstração que requer o Elementor (vindo dos temas Astra ou Real Homes, por exemplo), você notará que não será possível traduzi-lo, e ocorrerá o seguinte erro no 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

Isso acontece porque o conteúdo de demonstração são dados serializados, e nosso código de integração espera uma string codificada em JSON.

Solução alternativa

Por favor, certifique-se de fazer um backup completo do seu site antes de prosseguir.


  1. Edite o arquivo …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.

  2. Procure a linha 21.

  3. Altere:
    public static function unserialize( $data ) {
        return json_decode( is_array( $data ) ? $data[0] : $data, true );
    }

    Para:

    public static function unserialize( $data ) {
            $data = is_array( $data ) ? $data[0] : $data;
            if (is_string($data)) {
                return json_decode( $data, true );
            }
            return $data;
    }

Todos os problemas conhecidos →