- 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.
- Bearbeiten Sie die Datei …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.
- Suchen Sie Zeile 21.
- Ä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; }