WPML
Status
Gelöst
Gemeldet für
WPML Multilingual CMS 4.5.10
Gelöst in
WPML 4.6.4
Zugehöriges Plugin/Theme
Elementor
Themen-Tags
Bug, Compatibility

Übersicht über das Problem

Wenn Sie Demo-Inhalte importieren, die Elementor erfordern (die beispielsweise aus den Themes Astra oder Real Homes stammen), werden Sie feststellen, dass sich diese nicht übersetzen lassen und in PHP 8 der folgende Fehler auftritt:

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

Dies passiert, weil es sich bei den Demo-Inhalten um serialisierte Daten handelt und unser Integrationscode einen JSON-kodierten String erwartet.

Problemumgehung

Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren.


  1. Bearbeiten Sie die Datei …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.

  2. Suchen Sie Zeile 21.

  3. Ändern Sie:
    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;
    }

Alle bekannten Probleme →