WPML
الحالة
محلولة
تم حلها في
WPML 4.7.6
الإضافة/القالب ذو الصلة
Elementor
وسوم الموضوع
Compatibility

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

باستخدام الإعدادات المتقدمة للودجت في Elementor Pro، يمكن إضافة شروط العرض، على سبيل المثال، لعرض الودجت فقط إذا كان المستخدم مسجل الدخول.

مؤخراً، تغير شيء ما في طريقة تخزين Elementor لهذه البيانات، وقد يتسبب ذلك في ظهور الخطأ التالي:

PHP Fatal error:  Uncaught TypeError: Cannot access offset of type string on string in .../wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php:138

حل بديل مؤقت

سنحدّث الكود الخاص بنا للتعامل مع هذا التغيير في تخزين بيانات Elementor. في غضون ذلك، يمكنك تعديل ملف الإضافة هذا: wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php

حدد موقع الدالة convertConditionIds (من السطر 134 في الإصدار الحالي)، واستبدلها بالكود أدناه:

	private function convertConditionIds( array $conditionGroups ) {

		// ensure $conditionGroups is an array of arrays and not just an associative array
		$result = array_keys($conditionGroups)[0] !== 0 ? array($conditionGroups) : $conditionGroups;

		foreach ( $result as $key => $conditionGroup ) {
			$configForCondition = $this->getConfigForCondition( $conditionGroup['condition'] );

			if ( $configForCondition && isset( $conditionGroup[ $configForCondition['field'] ] ) ) {
				$result[ $key ] = $this->convertIdsForCondition( $conditionGroup, $configForCondition );
			}
		}

		return $result;
	}

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