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