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

所有已知问题 →