/
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\Utils\Utils; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Interactions_Ids_Modifier { public static function make() { return new self(); } public function run( array $element ) { if ( empty( $element['id'] ) || ! 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; } $existing_ids = []; $prefix = "e-{$element['id']}-"; foreach ( $interactions['items'] as $index => $item ) { if ( ! is_array( $item ) || ( $item['$$type'] ?? '' ) !== 'interaction-item' || ! isset( $item['value'] ) || ! is_array( $item['value'] ) ) { continue; } $new_id = Utils::generate_id( $prefix, $existing_ids ); $existing_ids[] = $new_id; $interactions['items'][ $index ]['value']['interaction_id'] = [ '$$type' => 'string', 'value' => $new_id, ]; } $element['interactions'] = $interactions; return $element; } }