WPML
الحالة
محلولة
أُبلغ عنها لـ
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;
    	}
            


يعمل مطورونا بالفعل على إصدار جديد لإصلاح هذه المشكلة.

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