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;
    }

جميع المشاكل المعروفة →