- الحالة
- محلولة
- أُبلغ عنها لـ
- WPML Multilingual CMS 4.7.4
- تم حلها في
- WPML 4.7.5
- الإضافة/القالب ذو الصلة
- Elementor
- وسوم الموضوع
- Compatibility
نظرة عامة على المشكلة
بعد تحديث WPML، قد يحدث خطأ حرج في بعض صفحات منتجات WooCommerce عندما تكون إضافتا Elementor وترجمة النصوص نشطتين. تحدث هذه المشكلة بسبب تكامل Elementor في WPML عندما يحاول إجراء تسلسل لبيانات null، مما يؤدي إلى حدوث TypeError فادح.
PHP Fatal error: Uncaught TypeError: WPML\PB\Elementor\DataConvert::serialize(): Argument #1 ($data) must be of type array,
null given, called in /wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/QueryFilter.php on line 34 ...
حل بديل مؤقت
يرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.
- افتح الملف …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/QueryFilter.php.
- ابحث عن السطر 28.
- استبدل:
public function translateQueryIds( $value, $object_id, $meta_key, $single ) { if ( WPML_Elementor_Data_Settings::META_KEY_DATA === $meta_key && $single ) { $value = get_post_meta( $object_id, WPML_Elementor_Data_Settings::META_KEY_DATA, true ); if ( $value ) { $value = DataConvert::unserialize( $value, false ); $value = $this->recursivelyTranslateQueryIds( $value ); $value = DataConvert::serialize( $value, false ); } } return $value; }
- بـ:
public function translateQueryIds( $value, $object_id, $meta_key, $single ) { if ( WPML_Elementor_Data_Settings::META_KEY_DATA === $meta_key && $single ) { $newValue = get_post_meta( $object_id, WPML_Elementor_Data_Settings::META_KEY_DATA, true ); if ( $newValue ) { $newValue = DataConvert::unserialize( $newValue, false ); if ( is_array( $newValue ) ) { $newValue = $this->recursivelyTranslateQueryIds( $newValue ); return DataConvert::serialize( $newValue, false ); } return $value; } } return $value; }
يعمل مطورونا بالفعل على إصدار جديد لإصلاح هذه المشكلة.