- סטטוס
- נפתר
- דווח עבור
- 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; }
המפתחים שלנו כבר עובדים על גרסה חדשה כדי לתקן בעיה זו.