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

Tutti i problemi noti →