WPML
Statut
Résolu
Résolu dans
WPML 4.7.6
Extension/thème associé
Elementor
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Avec Elementor Pro, les paramètres avancés du widget permettent d’ajouter des conditions d’affichage, par exemple pour afficher un widget uniquement si l’utilisateur est connecté.

Récemment, la manière dont Elementor stocke ces données a changé, et cela peut déclencher l’erreur suivante :

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

Solution de contournement

Nous mettrons à jour notre code pour gérer ce changement dans le stockage des données d’Elementor. En attendant, vous pouvez modifier ce fichier de l’extension : wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php

Repérez la fonction convertConditionIds (à partir de la ligne 134 dans la version actuelle) et remplacez-la par le code ci-dessous :

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

Toutes les anomalies connues →