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


המפתחים שלנו כבר עובדים על גרסה חדשה כדי לתקן בעיה זו.

כל התקלות הידועות →