[ SYSTEM ]: Linux wordpress 6.1.0-44-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
modules
/
interactions
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 props
SET
[ DEL ]
📁 schema
SET
[ DEL ]
📁 validators
SET
[ DEL ]
📄 interactions-collector.php
1,666 B
SET
[ EDIT ]
|
[ DEL ]
📄 interactions-frontend-handler.php
6,780 B
SET
[ EDIT ]
|
[ DEL ]
📄 module.php
5,325 B
SET
[ EDIT ]
|
[ DEL ]
📄 parser.php
2,779 B
SET
[ EDIT ]
|
[ DEL ]
📄 presets.php
1,705 B
SET
[ EDIT ]
|
[ DEL ]
📄 validation.php
11,277 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: parser.php
<?php namespace Elementor\Modules\Interactions; use Elementor\Modules\AtomicWidgets\Utils\Utils; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Parser { protected $post_id; protected $ids_lookup = []; public function __construct( $post_id ) { $this->post_id = $post_id; } public function assign_interaction_ids( $data ) { if ( isset( $data['elements'] ) && is_array( $data['elements'] ) ) { $data['elements'] = $this->process_interactions_for( $data['elements'] ); } return $data; } private function process_interactions_for( $elements ) { if ( ! is_array( $elements ) ) { return $elements; } foreach ( $elements as &$element ) { if ( isset( $element['interactions'] ) ) { $element['interactions'] = $this->maybe_assign_interaction_ids( $element['interactions'], $element['id'] ); } if ( isset( $element['elements'] ) && is_array( $element['elements'] ) ) { $element['elements'] = $this->process_interactions_for( $element['elements'] ); } } return $elements; } private function maybe_assign_interaction_ids( $interactions_json, $element_id ) { $interactions = $this->decode_interactions( $interactions_json ); if ( ! isset( $interactions['items'] ) ) { return []; } foreach ( $interactions['items'] as &$interaction ) { if ( ! isset( $interaction['$$type'] ) || 'interaction-item' !== $interaction['$$type'] ) { continue; } $existing_id = null; if ( isset( $interaction['value']['interaction_id']['value'] ) ) { $existing_id = $interaction['value']['interaction_id']['value']; } if ( $existing_id && $this->is_temp_id( $existing_id ) ) { $interaction['value']['interaction_id'] = [ '$$type' => 'string', 'value' => $this->get_next_interaction_id( $element_id ), ]; } elseif ( $existing_id ) { $this->ids_lookup[] = $existing_id; } else { $interaction['value']['interaction_id'] = [ '$$type' => 'string', 'value' => $this->get_next_interaction_id( $element_id ), ]; } } return wp_json_encode( $interactions ); } private function is_temp_id( $id ) { return is_string( $id ) && strpos( $id, 'temp-' ) === 0; } private function decode_interactions( $interactions ) { if ( is_array( $interactions ) ) { return $interactions; } if ( is_string( $interactions ) ) { $decoded = json_decode( $interactions, true ); if ( json_last_error() === JSON_ERROR_NONE && is_array( $decoded ) ) { return $decoded; } } return [ 'items' => [], 'version' => 1, ]; } protected function get_next_interaction_id( $prefix ) { $next_id = Utils::generate_id( "{$this->post_id}-{$prefix}-", $this->ids_lookup ); $this->ids_lookup[] = $next_id; return $next_id; } }