WPML
Status
Gelöst
Gelöst in
WPML 4.7.6
Zugehöriges Plugin/Theme
Elementor
Themen-Tags
Compatibility

Übersicht über das Problem

In den erweiterten Widget-Einstellungen von Elementor Pro können Anzeigebedingungen hinzugefügt werden, z. B. um ein Widget nur anzuzeigen, wenn der Benutzer angemeldet ist.

Kürzlich hat sich etwas daran geändert, wie Elementor diese Daten speichert, und dies kann den folgenden Fehler auslösen:

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

Problemumgehung

Wir werden unseren Code aktualisieren, um diese Änderung in der Datenspeicherung von Elementor zu berücksichtigen. In der Zwischenzeit können Sie diese Plugin-Datei bearbeiten: wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php

Suchen Sie die Funktion convertConditionIds (ab Zeile 134 in der aktuellen Version) und ersetzen Sie sie durch den folgenden Code:

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

Alle bekannten Probleme →