WPML
Trạng thái
Đã giải quyết
Được báo cáo cho
WPML Multilingual CMS 4.5.10
Đã giải quyết trong
WPML 4.6.4
Plugin/giao diện liên quan
Elementor
Thẻ chủ đề
Bug, Compatibility

Tổng quan về lỗi

Nếu bạn nhập một số nội dung demo yêu cầu Elementor (ví dụ như đến từ các giao diện Astra hoặc Real Homes), bạn sẽ nhận thấy rằng không thể dịch nội dung đó, và sẽ có lỗi sau trong 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

Điều này xảy ra vì nội dung demo là dữ liệu đã được tuần tự hóa, và mã tích hợp của chúng tôi mong đợi một chuỗi được mã hóa JSON.

Giải pháp tạm thời

Vui lòng đảm bảo tạo một bản sao lưu toàn bộ trang web của bạn trước khi tiếp tục.


  1. Chỉnh sửa tệp …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.

  2. Tìm dòng 21.

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

    Thành:

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

Tất cả các lỗi đã ghi nhận →