/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
modules
/
atomic-widgets
/
import-export
/
modifiers
/
Upload File
HOME
<?php namespace Elementor\Modules\AtomicWidgets\ImportExport\Modifiers; use Elementor\Modules\AtomicWidgets\PropsResolver\Import_Export_Props_Resolver; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Interactions_Props_Modifier { private Import_Export_Props_Resolver $props_resolver; private array $schema; public function __construct( Import_Export_Props_Resolver $props_resolver, array $schema ) { $this->props_resolver = $props_resolver; $this->schema = $schema; } public static function make( Import_Export_Props_Resolver $props_resolver, array $schema ) { return new self( $props_resolver, $schema ); } public function run( array $element ) { if ( ! isset( $element['interactions'] ) ) { return $element; } $interactions = $element['interactions']; if ( is_string( $interactions ) ) { $decoded = json_decode( $interactions, true ); if ( json_last_error() !== JSON_ERROR_NONE || ! is_array( $decoded ) ) { return $element; } $interactions = $decoded; } if ( empty( $interactions['items'] ) || ! is_array( $interactions['items'] ) ) { return $element; } foreach ( $interactions['items'] as $index => $item ) { if ( ! is_array( $item ) || empty( $item['$$type'] ) || ! array_key_exists( 'value', $item ) || ! is_array( $item['value'] ) ) { continue; } $interactions['items'][ $index ]['value'] = $this->props_resolver->resolve( $this->schema, $item['value'] ); } $element['interactions'] = $interactions; return $element; } }