WPML
סטטוס
נפתר
דווח עבור
WPForms Multilingual 0.3.5
נפתר בגרסה
WPForms Multilingual 0.3.6
תגיות נושא
Compatibility

סקירה כללית של התקלה

אם אתה משתמש ב־WPForms ועדכנת לאחרונה ל־1.8.5.1, ייתכן שתיתקל בשגיאה הבאה במידע debug.log שלך אם האתר שלך פועל בסביבת PHP8:

PHP Fatal error:  Uncaught TypeError: strlen(): Argument #1 ($str) must be of type string, array given in .../wp-includes/formatting.php:3557

פתרון עוקף

מומלץ ללקוחות שחווים בעיה זו לחזור ל־WPForms 1.8.4 עד לשחרור תיקון.

אחרת, ודא שיש לך גיבוי מלא של האתר שלך לפני שתמשיך.


  • פתח את הקובץ …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Notifications.php.

  • חפש את שורה 70.

  • שנה את:
    	public function applyEmailTranslations( $data, $emails ) {
    		$package = $this->newPackage( $this->getId( $emails->form_data ) );
    		do_action( 'wpml_switch_language_for_email', $data['to'] );
    
    		$dataKeys = [ 'subject', 'message' ];

  • ל:
    	public function applyEmailTranslations( $data, $emails ) {
    		$package = $this->newPackage( $this->getId( $emails->form_data ) );
    		if (is_array($data['to'])){
    			foreach ($data['to'] as $address){
    				do_action( 'wpml_switch_language_for_email', $address );
    			}
    		} else {
    			do_action( 'wpml_switch_language_for_email', $data['to'] );
    		}
    
    		$dataKeys = [ 'subject', 'message' ];

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