- الحالة
- محلولة
- أُبلغ عنها لـ
- 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.
حل بديل مؤقت
يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.
- عدّل الملف …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php.
- ابحث عن السطر 21.
- غيّر:
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; }