WPML
状态
已解决
报告针对
WPML Multilingual CMS 4.5.10
解决于
WPML 4.6.4
相关插件/主题
Elementor
主题标签
Bug, Compatibility

问题概述

如果您导入一些需要 Elementor 的演示内容(例如来自 Astra 或 Real Homes 主题),您会发现无法翻译它,并且在 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

发生这种情况是因为演示内容是序列化数据,而我们的集成代码期望的是 JSON 编码的字符串。

临时解决方法

在继续操作之前,请务必对您的站点进行完整备份


  1. 编辑 …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php 文件。

  2. 找到第 21 行。

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

    修改为:

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

所有已知问题 →