- Stato
- Risolto
- Risolto in
- WPML 4.7.6
- Plugin/tema correlato
- Elementor
- Tag dell’argomento
- Compatibility
Panoramica del problema
Con Elementor Pro, le impostazioni avanzate dei widget consentono di aggiungere Condizioni di visualizzazione, ad esempio per mostrare un widget solo se l’utente ha effettuato l’accesso.
Di recente è cambiato qualcosa nel modo in cui Elementor memorizza questi dati e ciò può generare il seguente errore:
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
Soluzione alternativa
Aggiorneremo il nostro codice per gestire questa modifica nell’archiviazione dei dati di Elementor. Nel frattempo puoi modificare questo file del plugin: wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php
Individua la funzione convertConditionIds (dalla riga 134 nella versione attuale) e sostituiscila con il codice seguente:
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;
}