WPML
الحالة
محلولة
أُبلغ عنها لـ
WPML String Translation 3.1.2
تم حلها في
String Translation 3.1.3

نظرة عامة على المشكلة

قد يظهر لك الخطأ التالي بعد التحديث إلى WPML ترجمة النصوص 3.1.2:

[17-Sep-2020 10:51:21 UTC] PHP Fatal error:  Uncaught InvalidArgumentException: item should be a Collection or an array or an object in .../wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Obj.php:94

Stack trace:

#0 [internal function]: WPMLFPObj::WPMLFP{closure}(NULL, 'attachment_id', false)

#1 .../wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/functions.php(141): call_user_func_array(Object(Closure), Array)

#2 [internal function]: WPMLFPObj::WPMLFP{closure}(NULL, 'attachment_id', false)

#3 .../wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/collect/src/Illuminate/Support/Traits/Macroable.php(56): call_user_func_array(Object(Closure), Array)

#4 .../wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Obj.php(78): WPMLFPObj::__callStatic('propOr', Array)

#5 [internal function]: WPMLFPObj::WPMLFP{closure}('attachment_id', false)

#6 .../wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/f in /home/add/public_html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Obj.php on line 94

حل بديل مؤقت


  • أنشئ نسخة احتياطية كاملة لموقعك.

  • افتح الملف wpml-string-translation/inc/admin-texts/wpml-admin-texts.class.php.

  • ابحث عن السطر 255

  • استبدل:
    	private function isAdminText( $key, $name ) {
    		return null !== Wrapper::of( $this->getSubKey( $key, $name ) )
    		                       ->map( [ self::class, 'getKeysParts' ] )
    		                       ->map( invoke( 'reduce' )->with( flip( Obj::prop() ), $this->getOptionNames() ) )
    		                       ->get();
    	}


  • بـ:
    	private function isAdminText($key, $name) {
    		try {
    			return null !== Wrapper::of($this->getSubKey($key, $name))
    					->map([self::class, 'getKeysParts'])
    					->map(invoke('reduce')->with(flip(Obj::prop()), $this->getOptionNames()))
    					->get();
    		} catch (Exception $ex) {
    			error_log($ex->getMessage() . ' Option Key ' . $key);
    		}
    	}

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