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

すべての既知の問題 →