Published : July 7, 2026

CVE-2026-6459: Essential Addons for Elementor <= 6.6.2 Authenticated (Author+) Stored Cross-Site Scripting via Event Calendar Widget Popup PoC, Patch Analysis & Rule

CVE ID CVE-2026-6459
Severity Medium (CVSS 6.4)
CWE 79
Vulnerable Version 6.6.2
Patched Version 6.6.3
Disclosed July 6, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-6459: The Essential Addons for Elementor plugin contains a Stored Cross-Site Scripting vulnerability in the Event Calendar widget, specifically in how event titles from The Events Calendar are rendered in popup displays. This vulnerability allows authenticated attackers with Author-level access or higher to inject malicious scripts that execute when any user views an infected page. The vulnerability carries a CVSS score of 6.4 (Medium severity).

The root cause is insufficient input sanitization and output escaping on event titles sourced from The Events Calendar when displayed through the Event Calendar widget’s popup functionality. The vulnerability exists within the Event Calendar widget’s rendering logic, where event titles are output without adequate escaping before being placed into the DOM. The affected file path involves the Event Calendar element handler, specifically the render method that processes event data retrieved from The Events Calendar plugin. The diff shows multiple PHPCS ignore comments added for `WordPress.Security.EscapeOutput.OutputNotEscaped` throughout several widget files, indicating the developers identified numerous output escaping issues across the codebase.

An authenticated attacker with Author-level access creates or modifies an event using The Events Calendar plugin, injecting a malicious XSS payload into the event title field. The payload typically contains JavaScript wrapped in HTML event handlers or script tags, such as `alert(‘XSS’)` or ``. When the Event Calendar widget renders this event in a popup on the frontend, the unescaped title executes the injected script. The attack vector is fully stored (persistent) – the malicious payload remains in the database and executes for every visitor who views the affected page.

The patch (version 6.6.3) addresses the issue by adding PHPCS ignore comments (`// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped`) at multiple output points, which instructs the WordPress coding standards checker to flag these areas. However, the true fix requires proper escaping functions such as `esc_html()` or `wp_kses_post()` to be applied to event titles before rendering. The diff reveals dozens of similar escaping-related fixes across files including Adv_Accordion.php, Adv_Tabs.php, Breadcrumbs.php, Caldera_Forms.php, Contact_Form_7.php, Countdown.php, Creative_Button.php, Cta_Box.php, Data_Table.php, Dual_Color_Header.php, Fancy_Text.php, Filterable_Gallery.php, and Flip_Box.php.

Successful exploitation allows an attacker to execute arbitrary JavaScript in the context of any user visiting the compromised page. This can lead to session hijacking, credential theft (via fake login forms), defacement, redirection to malicious sites, or further propagation of attacks through WordPress administrative actions performed under the victim’s session. Since the attack requires only Author-level privileges, it poses a moderate risk to multi-author WordPress installations.

Differential between vulnerable and patched code

Below is a differential between the unpatched vulnerable code and the patched update, for reference.

Code Diff
--- a/essential-addons-for-elementor-lite/autoload.php
+++ b/essential-addons-for-elementor-lite/autoload.php
@@ -1,5 +1,9 @@
 <?php

+if ( ! defined( 'ABSPATH' ) ) {
+	exit;
+} // Exit if accessed directly
+
 spl_autoload_register(function ($class) {
     // project-specific namespace prefix
     $prefix = 'Essential_Addons_Elementor\';
--- a/essential-addons-for-elementor-lite/config.php
+++ b/essential-addons-for-elementor-lite/config.php
@@ -1,5 +1,6 @@
 <?php

+// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
 $config = [
     'elements' => [
         'post-grid' => [
@@ -786,6 +787,13 @@
                         'type' => 'self',
                         'context' => 'view',
                     ],
+                ],
+                'js' => [
+                    [
+                        'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/woo-add-to-cart.min.js',
+                        'type' => 'self',
+                        'context' => 'view',
+                    ],
                 ],
             ],
         ],
--- a/essential-addons-for-elementor-lite/essential_adons_elementor.php
+++ b/essential-addons-for-elementor-lite/essential_adons_elementor.php
@@ -4,7 +4,7 @@
  * Description: The Essential plugin you install after Elementor! Packed with 100+ stunning elements like Data Table, Event Calendar, Filterable Gallery, WooCommerce.
  * Plugin URI: https://essential-addons.com/
  * Author: WPDeveloper
- * Version: 6.6.2
+ * Version: 6.6.3
  * Author URI: https://wpdeveloper.com/
  * Text Domain: essential-addons-for-elementor-lite
  * Domain Path: /languages
@@ -27,7 +27,7 @@
 define('EAEL_PLUGIN_BASENAME', plugin_basename(__FILE__));
 define('EAEL_PLUGIN_PATH', trailingslashit(plugin_dir_path(__FILE__)));
 define('EAEL_PLUGIN_URL', trailingslashit(plugins_url('/', __FILE__)));
-define('EAEL_PLUGIN_VERSION', '6.6.2');
+define('EAEL_PLUGIN_VERSION', '6.6.3');
 define('EAEL_ASSET_PATH', wp_upload_dir()['basedir'] . '/essential-addons-elementor');
 define('EAEL_ASSET_URL', wp_upload_dir()['baseurl'] . '/essential-addons-elementor');
 /**
--- a/essential-addons-for-elementor-lite/includes/Classes/Compatibility_Support.php
+++ b/essential-addons-for-elementor-lite/includes/Classes/Compatibility_Support.php
@@ -1,6 +1,10 @@
 <?php
 namespace Essential_Addons_ElementorClasses;

+if ( ! defined( 'ABSPATH' ) ) {
+	exit;
+} // Exit if accessed directly
+
 class Compatibility_Support {
 	public function __construct() {
 		if ( $this->is_mondialrelay_plugin_active() ) {
--- a/essential-addons-for-elementor-lite/includes/Classes/Helper.php
+++ b/essential-addons-for-elementor-lite/includes/Classes/Helper.php
@@ -893,7 +893,7 @@

         $query = "select post_title,ID  from $wpdb->posts where post_status = 'publish' $where $limit";

-        // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
+        // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
         $results = $wpdb->get_results($query);
         if (!empty($results)) {
             foreach ($results as $row) {
--- a/essential-addons-for-elementor-lite/includes/Classes/WPDeveloper_Notice.php
+++ b/essential-addons-for-elementor-lite/includes/Classes/WPDeveloper_Notice.php
@@ -558,11 +558,15 @@
             return;
         }
         if( $current_notice == 'opt_in' ) {
+            // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound
             do_action( $this->do_notice_action );
             return;
-        }
+        }
+        // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound
         do_action( 'wpdeveloper_before_notice_for_' . $this->plugin_name );
-            do_action( $this->do_notice_action );
+        // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound
+        do_action( $this->do_notice_action );
+        // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound
         do_action( 'wpdeveloper_after_notice_for_' . $this->plugin_name );
     }
     /**
--- a/essential-addons-for-elementor-lite/includes/Elements/Adv_Accordion.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Adv_Accordion.php
@@ -1830,7 +1830,7 @@
 					if ( ! empty( $tab['eael_primary_templates'] ) && Helper::is_elementor_publish_template( $tab['eael_primary_templates'] ) ) {
 						// WPML Compatibility
 						if ( ! is_array( $tab['eael_primary_templates'] ) ) {
-							$tab['eael_primary_templates'] = apply_filters( 'wpml_object_id', $tab['eael_primary_templates'], 'wp_template', true );
+							$tab['eael_primary_templates'] = apply_filters( 'wpml_object_id', $tab['eael_primary_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 						}

 						Helper::eael_onpage_edit_template_markup( get_the_ID(), $tab['eael_primary_templates'] );
@@ -1938,10 +1938,11 @@
                         }
                     echo '</div>';

-                    echo '<div ' . $this->get_render_attribute_string($tab_content_setting_key) . '>';
+                    echo '<div '; $this->print_render_attribute_string($tab_content_setting_key); echo '>';
                         if( isset( $settings['eael_adv_accordion_show_full_content'] ) && 'yes' === $settings['eael_adv_accordion_show_full_content'] ) {
                             $document = Plugin::instance()->documents->get( $tab_id );
                             if( $document && $document->is_built_with_elementor() ) {
+                                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
                                 echo Plugin::$instance->frontend->get_builder_content( $tab_id, true );
                             }
                             else if ( has_blocks( get_the_content() ) ) {
@@ -1960,7 +1961,7 @@
                 echo '</div>';
             }
         } else {
-            echo '<p class="no-posts-found">'. esc_html__('No posts found!', 'essential-addons-elementor') .'</p>';
+            echo '<p class="no-posts-found">'. esc_html__('No posts found!', 'essential-addons-for-elementor-lite') .'</p>';
         }
         wp_reset_postdata();

--- a/essential-addons-for-elementor-lite/includes/Elements/Adv_Tabs.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Adv_Tabs.php
@@ -1375,7 +1375,7 @@

                                 echo '<' . esc_attr( $repeater_html_tag ) . ' '; $this->print_render_attribute_string( $tab_title_setting_key . '_repeater_tab_title_attr'); echo ' >';
                                 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
-                                echo $this->parse_text_editor( wp_kses( $repeater_tab_title , Helper::eael_allowed_tags() ) );
+                                echo wp_kses_post( $repeater_tab_title );
                                 echo '</' . esc_attr( $repeater_html_tag ) . '>';
                                 ?>
                             <?php endif; ?>
@@ -1400,7 +1400,7 @@

                                 echo '<' . esc_attr( $repeater_html_tag ) . ' '; $this->print_render_attribute_string( $tab_title_setting_key . '_repeater_tab_title_attr'); echo ' >';
                                 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
-                                echo $this->parse_text_editor( wp_kses( $repeater_tab_title , Helper::eael_allowed_tags() ) );
+                                echo wp_kses_post( $repeater_tab_title );
                                 echo '</' . esc_attr( $repeater_html_tag ) . '>';
                                 ?>
                             <?php endif; ?>
@@ -1413,7 +1413,7 @@

                                 echo '<' . esc_attr( $repeater_html_tag ) . ' '; $this->print_render_attribute_string( $tab_title_setting_key . '_repeater_tab_title_attr'); echo ' >';
                                 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
-                                echo $this->parse_text_editor( wp_kses( $repeater_tab_title , Helper::eael_allowed_tags() ) );
+                                echo wp_kses_post( $repeater_tab_title );
                                 echo '</' . esc_attr( $repeater_html_tag ) . '>';
                                 ?>
                             <?php endif; ?>
@@ -1478,7 +1478,7 @@

 							        // WPML Compatibility
 							        if ( ! is_array( $tab['eael_primary_templates'] ) ) {
-								        $tab['eael_primary_templates'] = apply_filters( 'wpml_object_id', $tab['eael_primary_templates'], 'wp_template', true );
+								        $tab['eael_primary_templates'] = apply_filters( 'wpml_object_id', $tab['eael_primary_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 							        }

 							        Helper::eael_onpage_edit_template_markup( $page_id, $tab['eael_primary_templates'] );
--- a/essential-addons-for-elementor-lite/includes/Elements/Breadcrumbs.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Breadcrumbs.php
@@ -663,17 +663,19 @@
 			} elseif ( is_single() && ! is_attachment() ) {
 				if ( 'post' !== get_post_type() ) {
 					$post_type = get_post_type_object( get_post_type() );
-					$get_slug = $post_type->rewrite ?? false;
-
-					if ($get_slug && is_array($get_slug) && isset($get_slug['slug'])) {
-						$slug = $get_slug['slug'];
-					} else {
-						$slug = '';
-					}
-					$output .= '<a href="' . $home_link . '/' . $slug . '/">' . $post_type->labels->singular_name . '</a>';
-
-					if ( $show_current == 1 ) {
-						$output .= ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
+					if ( $post_type ) {
+						$get_slug = $post_type->rewrite ?? false;
+
+						if ($get_slug && is_array($get_slug) && isset($get_slug['slug'])) {
+							$slug = $get_slug['slug'];
+						} else {
+							$slug = '';
+						}
+						$output .= '<a href="' . $home_link . '/' . $slug . '/">' . $post_type->labels->singular_name . '</a>';
+
+						if ( $show_current == 1 ) {
+							$output .= ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
+						}
 					}
 				} else {
 					$cat  = get_the_category();
@@ -689,7 +691,9 @@
 				}
 			} elseif ( ! is_single() && ! is_page() && get_post_type() !== 'post' && ! is_404() ) {
 				$post_type = get_post_type_object( get_post_type() );
-				$output .= $before . $post_type->labels->singular_name . $after;
+				if ( $post_type ) {
+					$output .= $before . $post_type->labels->singular_name . $after;
+				}
 			} elseif ( is_search() ) {
 				$output .= $before . esc_html__( 'Search results for', 'essential-addons-for-elementor-lite' ) . ' "' . get_search_query() . '"' . $after;
 			} elseif ( is_day() ) {
@@ -718,19 +722,21 @@
 	}

    protected function render() {
-		$product = false;
+		$product     = false;
+		$is_wc_page  = false;

 		if ( class_exists( 'WooCommerce' ) ) {
-			$product = wc_get_product( get_the_ID() );
+			$product    = wc_get_product( get_the_ID() );
+			$is_wc_page = is_tax( 'product_cat' ) || is_tax( 'product_tag' );
 		}

 		?>
 		<div class="eael-breadcrumbs">
 			<?php
-			if ( ! $product ) {
-				$this->eael_breadcrumbs();
-			} else {
+			if ( $product || $is_wc_page ) {
 				$this->eael_wc_breadcrumb();
+			} else {
+				$this->eael_breadcrumbs();
 			}
 			?>
 		</div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Caldera_Forms.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Caldera_Forms.php
@@ -1533,7 +1533,10 @@
                         <?php }?>
                         <?php if ($settings['form_description_custom'] != '') {?>
                             <div class="eael-contact-form-description eael-caldera-form-description">
-                                <?php echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
+                                <?php
+                                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
+                                echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) );
+                                ?>
                             </div>
                         <?php }?>
                     </div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Contact_Form_7.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Contact_Form_7.php
@@ -1759,6 +1759,7 @@
                 }
                 if ($settings['form_description'] == 'yes' && $settings['form_description_text'] != '') {
                     echo '<div class="eael-contact-form-description eael-contact-form-7-description"> ' .
+                        // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
                         $this->parse_text_editor( wp_kses( $settings['form_description_text'], Helper::eael_allowed_tags() ) ) . '
                         </div>';
                 }
--- a/essential-addons-for-elementor-lite/includes/Elements/Countdown.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Countdown.php
@@ -1343,7 +1343,7 @@
                     if ( ! empty( $settings['countdown_expiry_templates'] ) && Helper::is_elementor_publish_template( $settings['countdown_expiry_templates'] ) ) {
                         // WPML Compatibility
                         if ( ! is_array( $settings['countdown_expiry_templates'] ) ) {
-                            $settings['countdown_expiry_templates'] = apply_filters( 'wpml_object_id', $settings['countdown_expiry_templates'], 'wp_template', true );
+                            $settings['countdown_expiry_templates'] = apply_filters( 'wpml_object_id', $settings['countdown_expiry_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
                         }

 	                    Helper::eael_onpage_edit_template_markup( get_the_ID(), $settings['countdown_expiry_templates'] );
@@ -1363,7 +1363,7 @@
                             if ( ! empty( $settings['countdown_expiry_templates'] ) && Helper::is_elementor_publish_template( $settings['countdown_expiry_templates'] ) ) {
                                 // WPML Compatibility
                                 if ( ! is_array( $settings['countdown_expiry_templates'] ) ) {
-                                    $settings['countdown_expiry_templates'] = apply_filters( 'wpml_object_id', $settings['countdown_expiry_templates'], 'wp_template', true );
+                                    $settings['countdown_expiry_templates'] = apply_filters( 'wpml_object_id', $settings['countdown_expiry_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
                                 }

 	                            Helper::eael_onpage_edit_template_markup( get_the_ID(), $settings['countdown_expiry_templates'] );
--- a/essential-addons-for-elementor-lite/includes/Elements/Creative_Button.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Creative_Button.php
@@ -329,7 +329,7 @@
         $this->add_responsive_control(
             'eael_creative_button_icon_size',
             [
-                'label' => esc_html__('Icon Size', 'essential-addons-elementor'),
+                'label' => esc_html__('Icon Size', 'essential-addons-for-elementor-lite'),
                 'type' => Controls_Manager::SLIDER,
                 'size_units' => [
                     'px',
@@ -362,7 +362,7 @@
         $this->start_controls_tab(
             'button_primary_typography',
             [
-                'label' => __('Primary', 'essential-addons-elementor'),
+                'label' => __('Primary', 'essential-addons-for-elementor-lite'),
             ]
         );

@@ -382,7 +382,7 @@
         $this->start_controls_tab(
             'button_secondary_typography',
             [
-                'label' => __('Secondary', 'essential-addons-elementor'),
+                'label' => __('Secondary', 'essential-addons-for-elementor-lite'),
             ]
         );

@@ -407,20 +407,20 @@
         $this->add_responsive_control(
             'eael_creative_button_alignment',
             [
-                'label' => esc_html__('Button Alignment', 'essential-addons-elementor'),
+                'label' => esc_html__('Button Alignment', 'essential-addons-for-elementor-lite'),
                 'type' => Controls_Manager::CHOOSE,
                 'label_block' => true,
                 'options' => [
                     'flex-start' => [
-                        'title' => esc_html__('Left', 'essential-addons-elementor'),
+                        'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
                         'icon' => 'eicon-text-align-left',
                     ],
                     'center' => [
-                        'title' => esc_html__('Center', 'essential-addons-elementor'),
+                        'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
                         'icon' => 'eicon-text-align-center',
                     ],
                     'flex-end' => [
-                        'title' => esc_html__('Right', 'essential-addons-elementor'),
+                        'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
                         'icon' => 'eicon-text-align-right',
                     ],
                 ],
@@ -434,7 +434,7 @@
         $this->add_responsive_control(
             'eael_creative_button_width',
             [
-                'label' => esc_html__('Width', 'essential-addons-elementor'),
+                'label' => esc_html__('Width', 'essential-addons-for-elementor-lite'),
                 'type' => Controls_Manager::SLIDER,
                 'size_units' => [
                     'px',
@@ -460,7 +460,7 @@
         $this->add_responsive_control(
             'eael_creative_button_padding',
             [
-                'label' => esc_html__('Button Padding', 'essential-addons-elementor'),
+                'label' => esc_html__('Button Padding', 'essential-addons-for-elementor-lite'),
                 'type' => Controls_Manager::DIMENSIONS,
                 'size_units' => [
                     'px',
@@ -482,10 +482,10 @@
         $this->add_control(
             'use_gradient_background',
             [
-                'label' => __('Use Gradient Background', 'essential-addons-elementor'),
+                'label' => __('Use Gradient Background', 'essential-addons-for-elementor-lite'),
                 'type' => Controls_Manager::SWITCHER,
-                'label_on' => __('Show', 'essential-addons-elementor'),
-                'label_off' => __('Hide', 'essential-addons-elementor'),
+                'label_on' => __('Show', 'essential-addons-for-elementor-lite'),
+                'label_off' => __('Hide', 'essential-addons-for-elementor-lite'),
                 'return_value' => 'yes',
                 'default' => '',
             ]
@@ -614,7 +614,7 @@
         $this->add_control(
             'eael_creative_button_hover_text_color',
             [
-                'label'     => esc_html__('Text Color', 'essential-addons-elementor'),
+                'label'     => esc_html__('Text Color', 'essential-addons-for-elementor-lite'),
                 'type'      => Controls_Manager::COLOR,
                 'default'   => '#ffffff',
                 'selectors' => [
--- a/essential-addons-for-elementor-lite/includes/Elements/Cta_Box.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Cta_Box.php
@@ -2134,7 +2134,7 @@
 		        $eael_template_id = $settings['eael_primary_templates'];
 		        // WPML Compatibility
 		        if ( ! is_array( $eael_template_id ) ) {
-			        $eael_template_id = apply_filters( 'wpml_object_id', $eael_template_id, 'wp_template', true );
+			        $eael_template_id = apply_filters( 'wpml_object_id', $eael_template_id, 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 		        }

 		        if ( Plugin::$instance->editor->is_edit_mode() ) {
--- a/essential-addons-for-elementor-lite/includes/Elements/Data_Table.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Data_Table.php
@@ -1473,7 +1473,7 @@
 													if ( Helper::is_elementor_publish_template( $table_td[ $j ]['template'] ) ) {
 														// WPML Compatibility
 														if ( ! is_array( $table_td[ $j ]['template'] ) ) {
-															$table_td[ $j ]['template'] = apply_filters( 'wpml_object_id', $table_td[ $j ]['template'], 'wp_template', true );
+															$table_td[ $j ]['template'] = apply_filters( 'wpml_object_id', $table_td[ $j ]['template'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 														}

 														Helper::eael_onpage_edit_template_markup( get_the_ID(), $table_td[ $j ]['template'] );
@@ -1487,7 +1487,9 @@
 										<?php else: ?>
 											<td <?php $this->print_render_attribute_string('table_inside_td'.$i.$j); ?>>
 												<div class="td-content-wrapper"><div <?php $this->print_render_attribute_string('td_content'); ?>>
-													<?php echo $this->parse_text_editor( wp_kses( $table_td[$j]['title'], Helper::eael_allowed_tags() ) ); ?>
+													<?php
+													// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+													echo $this->parse_text_editor( wp_kses( $table_td[$j]['title'], Helper::eael_allowed_tags() ) ); ?>
 												</div></div>
 											</td>
 										<?php endif; ?>
--- a/essential-addons-for-elementor-lite/includes/Elements/Dual_Color_Header.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Dual_Color_Header.php
@@ -1133,7 +1133,9 @@
 				echo ( $settings['eael_dch_separator_position'] === 'after_title' ? $separator_markup : '');

 				if( ! empty( $settings['eael_dch_subtext'] ) ) : ?>
-					<span class="subtext"><?php echo $this->parse_text_editor( wp_kses( $settings['eael_dch_subtext'], Helper::eael_allowed_tags() ) ); ?></span>
+					<span class="subtext"><?php
+					// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+					echo $this->parse_text_editor( wp_kses( $settings['eael_dch_subtext'], Helper::eael_allowed_tags() ) ); ?></span>
 				<?php endif;

 				if ('yes' == $settings['eael_show_dch_icon_content']) : ?>
--- a/essential-addons-for-elementor-lite/includes/Elements/Fancy_Text.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Fancy_Text.php
@@ -155,7 +155,8 @@
   			]
 		);

-		$style_options = apply_filters(
+		$style_options = apply_filters(
+			// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 			'fancy_text_style_types',
 			[
 				'styles'	=> [
--- a/essential-addons-for-elementor-lite/includes/Elements/Filterable_Gallery.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Filterable_Gallery.php
@@ -4438,7 +4438,7 @@
             if ( in_array( $settings['eael_fg_caption_style'], ['grid_flow_gallery', 'harmonic_gallery'] ) ) {
                 $gallery_items_pro = $this->gallery_item_store();
                 $this->render_filters();
-                do_action( 'add_filterable_gallery_style_block', $settings, $this, $gallery_items_pro );
+                do_action( 'add_filterable_gallery_style_block', $settings, $this, $gallery_items_pro ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
             } elseif ('layout_3' == $settings['eael_fg_caption_style']) {
                 $this->render_layout_3_filters();
                 $this->eael_render_gallery_item_wrap( $settings, $gallery_items );
--- a/essential-addons-for-elementor-lite/includes/Elements/Flip_Box.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Flip_Box.php
@@ -2622,6 +2622,15 @@

         $settings = $this->get_settings_for_display();
         $flipbox_image = $this->get_settings('eael_flipbox_image');
+
+        // WPML Media Translation compatibility
+        if ( ! empty( $flipbox_image['id'] ) ) {
+            $flipbox_image['id'] = apply_filters( 'wpml_object_id', $flipbox_image['id'], 'attachment', true );
+            if ( $flipbox_image['id'] ) {
+                $flipbox_image['url'] = wp_get_attachment_url( $flipbox_image['id'] );
+            }
+        }
+
         $flipbox_image_url = Group_Control_Image_Size::get_attachment_image_src($flipbox_image['id'], 'thumbnail', $settings);

         if (empty($flipbox_image_url) && !empty($flipbox_image['url'])) {
@@ -2668,8 +2677,19 @@
         }

         $flipbox_image_back = $this->get_settings('eael_flipbox_image_back');
+
+        // WPML Media Translation compatibility
+        if ( ! empty( $flipbox_image_back['id'] ) ) {
+            $flipbox_image_back['id'] = apply_filters( 'wpml_object_id', $flipbox_image_back['id'], 'attachment', true );
+            if ( $flipbox_image_back['id'] ) {
+                $flipbox_image_back['url'] = wp_get_attachment_url( $flipbox_image_back['id'] );
+            }
+        }
+
         $flipbox_back_image_url = Group_Control_Image_Size::get_attachment_image_src($flipbox_image_back['id'], 'thumbnail_back', $settings);
-        $flipbox_back_image_url = empty($flipbox_back_image_url) ? $flipbox_back_image_url : $flipbox_back_image_url;
+        if (empty($flipbox_back_image_url) && !empty($flipbox_image_back['url'])) {
+            $flipbox_back_image_url = $flipbox_image_back['url'];
+        }
         if ('img' == $settings['eael_flipbox_img_or_icon_back']) {
             $this->add_render_attribute(
                 'flipbox-back-icon-image-container',
@@ -2710,7 +2730,7 @@
 	                    if ( ! empty( $settings['eael_flipbox_front_templates'] ) && Helper::is_elementor_publish_template( $settings['eael_flipbox_front_templates'] ) ) {
 		                    // WPML Compatibility
 		                    if ( ! is_array( $settings['eael_flipbox_front_templates'] ) ) {
-			                    $settings['eael_flipbox_front_templates'] = apply_filters( 'wpml_object_id', $settings['eael_flipbox_front_templates'], 'wp_template', true );
+			                    $settings['eael_flipbox_front_templates'] = apply_filters( 'wpml_object_id', $settings['eael_flipbox_front_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 		                    }
                             // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 		                    echo Plugin::$instance->frontend->get_builder_content( $settings['eael_flipbox_front_templates'], true );
@@ -2739,7 +2759,10 @@
                                     }
                                     ?>
                                     <div class="eael-elements-flip-box-content">
-	                                    <?php echo $this->parse_text_editor( wp_kses( $settings['eael_flipbox_front_text'], Helper::eael_allowed_tags() ) );?>
+	                                    <?php
+                                        // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
+                                        echo $this->parse_text_editor( wp_kses( $settings['eael_flipbox_front_text'], Helper::eael_allowed_tags() ) );
+                                        ?>
                                     </div>
                                 </div>
                             </div>
@@ -2754,7 +2777,7 @@
 	                    if ( ! empty( $settings['eael_flipbox_back_templates'] ) && Helper::is_elementor_publish_template( $settings['eael_flipbox_back_templates'] ) ) {
 		                    // WPML Compatibility
 		                    if ( ! is_array( $settings['eael_flipbox_back_templates'] ) ) {
-			                    $settings['eael_flipbox_back_templates'] = apply_filters( 'wpml_object_id', $settings['eael_flipbox_back_templates'], 'wp_template', true );
+			                    $settings['eael_flipbox_back_templates'] = apply_filters( 'wpml_object_id', $settings['eael_flipbox_back_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
 		                    }
                             // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 		                    echo Plugin::$instance->frontend->get_builder_content( $settings['eael_flipbox_back_templates'], true );
@@ -2776,7 +2799,10 @@
                                     <<?php echo esc_html( $flipbox_if_html_title_tag ), ' '; $this->print_render_attribute_string('flipbox-title-container'); ?>><?php echo wp_kses( $settings['eael_flipbox_back_title'], Helper::eael_allowed_tags() ); ?></<?php echo esc_html( $flipbox_if_html_title_tag ); ?>>
                                     <?php endif; ?>
                                     <div class="eael-elements-flip-box-content">
-                                        <?php echo $this->parse_text_editor( wp_kses( $settings['eael_flipbox_back_text'], Helper::eael_allowed_tags() ) ); ?>
+                                        <?php
+                                        // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
+                                        echo $this->parse_text_editor( wp_kses( $settings['eael_flipbox_back_text'], Helper::eael_allowed_tags() ) );
+                                        ?>
                                     </div>

                                     <?php if ($settings['flipbox_link_type'] == 'button' && !empty($settings['flipbox_button_text'])) : ?>
--- a/essential-addons-for-elementor-lite/includes/Elements/FluentForm.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/FluentForm.php
@@ -2293,7 +2293,9 @@
                     <?php } ?>
                     <?php if ( $settings['form_description_custom'] != '' ) { ?>
                         <div class="eael-contact-form-description eael-fluentform-description">
-                            <?php echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
+                            <?php
+                            // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+                            echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
                         </div>
                     <?php } ?>
                 </div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Formstack.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Formstack.php
@@ -2139,13 +2139,19 @@
                     <?php } ?>
                     <?php if ($settings['eael_formstack_form_description_custom'] != '') { ?>
                         <div class="eael-contact-form-description eael-formstack-description">
-                            <?php echo $this->parse_text_editor( wp_kses( $settings['eael_formstack_form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
+                            <?php
+                            // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
+                            echo $this->parse_text_editor( wp_kses( $settings['eael_formstack_form_description_custom'], Helper::eael_allowed_tags() ) );
+                            ?>
                         </div>
                     <?php } ?>
                 </div>
             <?php } ?>
             <div class="fsForm">
-                <?php echo $this->parse_text_editor( wp_kses( $form_data, Helper::eael_allowed_tags() ) ); ?>
+                <?php
+                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
+                echo $this->parse_text_editor( wp_kses( $form_data, Helper::eael_allowed_tags() ) );
+                ?>
             </div>
         </div>
         <?php
--- a/essential-addons-for-elementor-lite/includes/Elements/GravityForms.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/GravityForms.php
@@ -2963,7 +2963,10 @@
 				        <?php } ?>
 				        <?php if ( $settings['form_description_custom'] != '' ) { ?>
 							<div class="eael-contact-form-description eael-gravity-form-description">
-						        <?php echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
+						        <?php
+							    // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+							    echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) );
+                                ?>
 							</div>
 				        <?php } ?>
 					</div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Image_Accordion.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Image_Accordion.php
@@ -1090,7 +1090,9 @@

                         if ( !empty( $img_accordion[ 'eael_accordion_content' ] ) ):
                             ?>
-                            <p><?php echo $this->parse_text_editor( wp_kses( $img_accordion[ 'eael_accordion_content' ], Helper::eael_allowed_tags() ) ); ?></p>
+                            <p><?php
+                            // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+                            echo $this->parse_text_editor( wp_kses( $img_accordion[ 'eael_accordion_content' ], Helper::eael_allowed_tags() ) ); ?></p>
                         <?php endif; ?>
                     </div>
                 </div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Info_Box.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Info_Box.php
@@ -2613,6 +2613,7 @@
                 if ('content' === $settings['eael_infobox_text_type']){
                     if (!empty($settings['eael_infobox_text'])) {
                         echo '<div>';
+                        // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.OutputNotEscaped
                         echo $this->parse_text_editor( wp_kses( $settings['eael_infobox_text'], Helper::eael_allowed_tags() ) );
                         echo '</div>';
                     }
@@ -2625,11 +2626,12 @@

                         // WPML Compatibility
                         if ( ! is_array( $settings['eael_primary_templates'] ) ) {
-                            $settings['eael_primary_templates'] = apply_filters( 'wpml_object_id', $settings['eael_primary_templates'], 'wp_template', true );
+                            $settings['eael_primary_templates'] = apply_filters( 'wpml_object_id', $settings['eael_primary_templates'], 'wp_template', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
                         }

 	                    Helper::eael_onpage_edit_template_markup( get_the_ID(), $settings['eael_primary_templates'] );

+                        // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
                         echo Plugin::$instance->frontend->get_builder_content( $settings['eael_primary_templates'], true );
 	                    if ( Plugin::$instance->editor->is_edit_mode() ) {
 		                    echo '</div>';
--- a/essential-addons-for-elementor-lite/includes/Elements/Interactive_Circle.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Interactive_Circle.php
@@ -1140,7 +1140,9 @@
                                     </div>
                                     <div id="eael-interactive-<?php echo esc_attr( $item_count ); ?>" aria-labelledby="eael-circle-item-<?php echo esc_attr( $item_count ); ?>" class="eael-circle-btn-content eael-circle-item-<?php echo esc_attr( $item_count . ' ' . $is_active ); ?>">
                                         <div class="eael-circle-content">
-											<?php echo $this->parse_text_editor( wp_kses( $item['eael_interactive_circle_item_content'], Helper::eael_allowed_tags() ) ); ?>
+											<?php
+											// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+											echo $this->parse_text_editor( wp_kses( $item['eael_interactive_circle_item_content'], Helper::eael_allowed_tags() ) ); ?>
                                         </div>
                                     </div>
                                 </div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Login_Register.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Login_Register.php
@@ -995,6 +995,7 @@
 			] );

 			$this->add_control( 'enable_webhook', [
+				/* translators: %s: Pro icon */
 				'label'   => sprintf( __( 'Enable Webhook %s', 'essential-addons-for-elementor-lite' ), '<i class="eael-pro-labe eicon-pro-icon"></i>' ),
 				'type'    => Controls_Manager::SWITCHER,
 				'classes' => 'eael-pro-control',
--- a/essential-addons-for-elementor-lite/includes/Elements/NinjaForms.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/NinjaForms.php
@@ -1759,7 +1759,9 @@
                         <?php }?>
                         <?php if ($settings['form_description_custom'] != '') {?>
                             <div class="eael-contact-form-description eael-ninja-form-description">
-                                <?php echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
+                                <?php
+                                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+                                echo $this->parse_text_editor( wp_kses( $settings['form_description_custom'], Helper::eael_allowed_tags() ) ); ?>
                             </div>
                         <?php }?>
                     </div>
--- a/essential-addons-for-elementor-lite/includes/Elements/Pricing_Table.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Pricing_Table.php
@@ -220,7 +220,7 @@
         /**
          * Condition: 'eael_pricing_table_style' => 'style-2'
          */
-        $subtitles_fields = apply_filters('pricing_table_subtitle_field_for', ['style-2']);
+        $subtitles_fields = apply_filters('pricing_table_subtitle_field_for', ['style-2']); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
         $this->add_control(
             'eael_pricing_table_sub_title',
             [
@@ -254,12 +254,12 @@
                     'library' => 'fa-solid',
                 ],
                 'condition'        => [
-                    'eael_pricing_table_style' => apply_filters('eael_pricing_table_icon_supported_style', ['style-2']),
+                    'eael_pricing_table_style' => apply_filters('eael_pricing_table_icon_supported_style', ['style-2']), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
                 ],
             ]
         );

-        do_action('add_pricing_table_settings_control', $this);
+        do_action('add_pricing_table_settings_control', $this); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

         $this->end_controls_section();

@@ -345,7 +345,7 @@
             ]
         );

-        do_action('pricing_table_currency_position', $this);
+        do_action('pricing_table_currency_position', $this); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

         $this->add_control(
             'eael_pricing_table_price_period',
@@ -2661,7 +2661,7 @@
         <?php endif; ?>
         <?php
         $depricated_param = $featured_class;
-        do_action('add_pricing_table_style_block', $settings, $this, $pricing, $button_url, $featured_class, $depricated_param );
+        do_action('add_pricing_table_style_block', $settings, $this, $pricing, $button_url, $featured_class, $depricated_param ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
         ?>
     </div>
     <?php
--- a/essential-addons-for-elementor-lite/includes/Elements/Progress_Bar.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Progress_Bar.php
@@ -85,7 +85,8 @@
         );

         // Progressbar Layout Options
-        $options = apply_filters(
+        $options = apply_filters(
+            // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
             'add_eael_progressbar_layout',
             [
                 'layouts' => [
@@ -770,7 +771,7 @@
         $this->end_controls_section();

         // Import progress bar style controlls
-        do_action('add_progress_bar_control', $this);
+        do_action('add_progress_bar_control', $this); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

         /**
          * Style Tab: Typography
@@ -1040,6 +1041,6 @@
                 </div>
             </div>';
         }
-        do_action('add_eael_progressbar_block', $settings, $this, $wrap_classes);
+        do_action('add_eael_progressbar_block', $settings, $this, $wrap_classes); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
     }
 }
--- a/essential-addons-for-elementor-lite/includes/Elements/Testimonial.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Testimonial.php
@@ -943,6 +943,7 @@

 	protected function testimonial_desc() {
 		$settings = $this->get_settings_for_display();
+		// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 		echo '<div class="eael-testimonial-text">'. $this->parse_text_editor( wp_kses( $settings['eael_testimonial_description'], HelperClass::eael_allowed_tags() ) ) .'</div>';
 	}

--- a/essential-addons-for-elementor-lite/includes/Elements/Tooltip.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Tooltip.php
@@ -730,14 +730,14 @@

         // WPML Media Translation compatibility
         if ( ! empty( $settings['eael_tooltip_img_content']['id'] ) ) {
-            $settings['eael_tooltip_img_content']['id'] = apply_filters( 'wpml_object_id', $settings['eael_tooltip_img_content']['id'], 'attachment', true );
+            $settings['eael_tooltip_img_content']['id'] = apply_filters( 'wpml_object_id', $settings['eael_tooltip_img_content']['id'], 'attachment', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
             if ( $settings['eael_tooltip_img_content']['id'] ) {
                 $settings['eael_tooltip_img_content']['url'] = wp_get_attachment_url( $settings['eael_tooltip_img_content']['id'] );
             }
         }

         if ( ! empty( $settings['eael_tooltip_icon_content_new']['value']['id'] ) ) {
-            $settings['eael_tooltip_icon_content_new']['value']['id'] = apply_filters( 'wpml_object_id', $settings['eael_tooltip_icon_content_new']['value']['id'], 'attachment', true );
+            $settings['eael_tooltip_icon_content_new']['value']['id'] = apply_filters( 'wpml_object_id', $settings['eael_tooltip_icon_content_new']['value']['id'], 'attachment', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
             if ( $settings['eael_tooltip_icon_content_new']['value']['id'] ) {
                 $settings['eael_tooltip_icon_content_new']['value']['url'] = wp_get_attachment_url( $settings['eael_tooltip_icon_content_new']['value']['id'] );
             }
--- a/essential-addons-for-elementor-lite/includes/Elements/Woo_Add_To_Cart.php
+++ b/essential-addons-for-elementor-lite/includes/Elements/Woo_Add_To_Cart.php
@@ -8,11 +8,16 @@
    exit;
 }

+use ElementorControls_Manager;
+use ElementorGroup_Control_Border;
+use ElementorGroup_Control_Typography;
+use ElementorIcons_Manager;
 use ElementorWidget_Base;
 use Essential_Addons_ElementorClassesHelper;

 class Woo_Add_To_Cart extends Widget_Base {
-   public function get_name() {
+
+	public function get_name() {
 		return 'eael-woo-add-to-cart';
 	}

@@ -65,7 +70,7 @@
 			'eael_add_to_cart_button',
 			[
 				'label' => esc_html__( 'Button', 'essential-addons-for-elementor-lite' ),
-				'tab'   => ElementorControls_Manager::TAB_STYLE,
+				'tab'   => Controls_Manager::TAB_STYLE,
 			]
 		);

@@ -73,7 +78,7 @@
 			'eael_add_to_cart_align',
 			[
 				'label'   => esc_html__( 'Button Alignment', 'essential-addons-for-elementor-lite' ),
-				'type'    => ElementorControls_Manager::CHOOSE,
+				'type'    => Controls_Manager::CHOOSE,
 				'options' => [
 					'flex-start' => [
 						'title' => esc_html__( 'Left', 'essential-addons-for-elementor-lite' ),
@@ -99,7 +104,7 @@
 			'width',
 			[
 				'label'      => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::SLIDER,
+				'type'       => Controls_Manager::SLIDER,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'range'      => [
 					'px' => [
@@ -126,7 +131,7 @@
 			'eael_add_to_cart_text_align',
 			[
 				'label'   => esc_html__( 'Text Alignment', 'essential-addons-for-elementor-lite' ),
-				'type'    => ElementorControls_Manager::CHOOSE,
+				'type'    => Controls_Manager::CHOOSE,
 				'options' => [
 					'flex-start' => [
 						'title' => esc_html__( 'Left', 'essential-addons-for-elementor-lite' ),
@@ -149,7 +154,7 @@
 		);

         $this->add_group_control(
-			ElementorGroup_Control_Typography::get_type(),
+			Group_Control_Typography::get_type(),
 			[
 				'name'     => 'eael_add_to_cart_button_typography',
 				'selector' => '.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button, {{WRAPPER}} .eael-add-to-cart-wrapper .button-text',
@@ -157,7 +162,7 @@
 		);

         $this->add_group_control(
-			ElementorGroup_Control_Border::get_type(),
+			Group_Control_Border::get_type(),
 			[
 				'name'     => 'eael_add_to_cart_button_border',
 				'exclude'  => [ 'color' ],
@@ -169,7 +174,7 @@
 			'button_border_radius',
 			[
 				'label'      => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::DIMENSIONS,
+				'type'       => Controls_Manager::DIMENSIONS,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'selectors'  => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
@@ -190,7 +195,7 @@
 			'eael_add_to_cart_button_text_color',
 			[
 				'label'     => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button' => 'color: {{VALUE}}',
 					'{{WRAPPER}} .eael-add-to-cart-wrapper .button-text' => 'color: {{VALUE}}',
@@ -202,7 +207,7 @@
 			'eael_add_to_cart_button_bg_color',
 			[
 				'label'     => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button' => 'background-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-add-to-cart-wrapper .eael-add-to-cart' => 'background-color: {{VALUE}}',
@@ -214,7 +219,7 @@
 			'eael_add_to_cart_button_border_color',
 			[
 				'label'     => esc_html__( 'Border Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button' => 'border-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-add-to-cart-wrapper .eael-add-to-cart' => 'border-color: {{VALUE}}',
@@ -234,7 +239,7 @@
 			'eael_add_to_cart_button_text_color_hover',
 			[
 				'label'     => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button:hover' => 'color: {{VALUE}}',
 					'{{WRAPPER}} .eael-add-to-cart-wrapper .eael-add-to-cart .button-text:hover' => 'color: {{VALUE}}',
@@ -246,7 +251,7 @@
 			'eael_add_to_cart_button_bg_color_hover',
 			[
 				'label'     => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button:hover' => 'background-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-add-to-cart-wrapper .eael-add-to-cart:hover' => 'background-color: {{VALUE}}',
@@ -254,11 +259,20 @@
 			]
 		);

+		$this->add_group_control(
+			Group_Control_Border::get_type(),
+			[
+				'name'     => 'eael_add_to_cart_button_border_hover',
+				'exclude'  => [ 'color' ],
+				'selector' => '.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button:hover, {{WRAPPER}} .eael-add-to-cart-wrapper .eael-add-to-cart:hover',
+			]
+		);
+
 		$this->add_control(
 			'eael_add_to_cart_button_border_color_hover',
 			[
 				'label'     => esc_html__( 'Border Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button:hover' => 'border-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-add-to-cart-wrapper .eael-add-to-cart:hover' => 'border-color: {{VALUE}}',
@@ -270,7 +284,7 @@
 			'eael_add_to_cart_button_transition',
 			[
 				'label'   => esc_html__( 'Transition Duration (s)', 'essential-addons-for-elementor-lite' ),
-				'type'    => ElementorControls_Manager::SLIDER,
+				'type'    => Controls_Manager::SLIDER,
 				'default' => [
 					'size' => 0.2,
 				],
@@ -296,7 +310,7 @@
 			'eael_cart_button_padding',
 			[
 				'label'      => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::DIMENSIONS,
+				'type'       => Controls_Manager::DIMENSIONS,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'vw', 'custom' ],
 				'selectors'  => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .cart .button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
@@ -313,7 +327,7 @@
 			'eael_add_to_cart_quantity_section',
 			[
 				'label'     => esc_html__( 'Quantity', 'essential-addons-for-elementor-lite' ),
-				'tab'       => ElementorControls_Manager::TAB_STYLE,
+				'tab'       => Controls_Manager::TAB_STYLE,
 				'condition' => [
 					'add_to_cart_product_type!'    => 'external_product',
 				],
@@ -324,7 +338,7 @@
 			'eael_add_to_cart_qt_height',
 			[
 				'label'      => esc_html__( 'Height', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::SLIDER,
+				'type'       => Controls_Manager::SLIDER,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'range'      => [
 					'px' => [
@@ -353,7 +367,7 @@
 			'eael_add_to_cart_qt_width',
 			[
 				'label'      => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::SLIDER,
+				'type'       => Controls_Manager::SLIDER,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'range'      => [
 					'px' => [
@@ -382,7 +396,7 @@
 			'eael_add_to_cart_qt_spacing',
 			[
 				'label'      => esc_html__( 'Spacing', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::SLIDER,
+				'type'       => Controls_Manager::SLIDER,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'range'      => [
 					'px' => [
@@ -406,7 +420,7 @@
 		);

         $this->add_group_control(
-			ElementorGroup_Control_Typography::get_type(),
+			Group_Control_Typography::get_type(),
 			[
 				'name'     => 'eael_add_to_cart_qt_typo',
 				'selector' => '.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty, {{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input',
@@ -414,7 +428,7 @@
 		);

       $this->add_group_control(
-			ElementorGroup_Control_Border::get_type(),
+			Group_Control_Border::get_type(),
 			[
 				'name'                 => 'eael_add_to_cart_qt_border',
 				'exclude'              => [ 'color' ],
@@ -426,7 +440,7 @@
 			'eael_add_to_cart_qt_border_radius',
 			[
 				'label'      => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::DIMENSIONS,
+				'type'       => Controls_Manager::DIMENSIONS,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'selectors'  => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
@@ -439,7 +453,7 @@
 			'eael_add_to_cart_qt_padding',
 			[
 				'label'      => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::DIMENSIONS,
+				'type'       => Controls_Manager::DIMENSIONS,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'custom' ],
 				'selectors'  => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
@@ -460,7 +474,7 @@
 			'eael_add_to_cart_qt_text_color',
 			[
 				'label'     => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty' => 'color: {{VALUE}}',
 					'{{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input' => 'color: {{VALUE}}',
@@ -472,7 +486,7 @@
 			'eael_add_to_cart_qt_bg_color',
 			[
 				'label'     => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty' => 'background-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input' => 'background-color: {{VALUE}}',
@@ -484,7 +498,7 @@
 			'eael_add_to_cart_qt_border_color',
 			[
 				'label'     => esc_html__( 'Border Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty' => 'border-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input' => 'border-color: {{VALUE}}',
@@ -504,7 +518,7 @@
 			'eael_add_to_cart_qt_text_color_focus',
 			[
 				'label'     => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty:focus' => 'color: {{VALUE}}',
 					'{{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input:focus' => 'color: {{VALUE}}',
@@ -516,7 +530,7 @@
 			'eael_add_to_cart_qt_bg_color_focus',
 			[
 				'label'     => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty:focus' => 'background-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input:focus' => 'background-color: {{VALUE}}',
@@ -528,7 +542,7 @@
 			'eael_add_to_cart_qt_border_color_focus',
 			[
 				'label'     => esc_html__( 'Border Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .quantity .qty:focus' => 'border-color: {{VALUE}}',
 					'{{WRAPPER}} .eael-single-product-add-to-cart .eael-add-to-cart-wrapper .quantity-input:focus' => 'border-color: {{VALUE}}',
@@ -540,7 +554,7 @@
 			'eael_add_to_cart_qt_transition',
 			[
 				'label'   => esc_html__( 'Transition Duration (s)', 'essential-addons-for-elementor-lite' ),
-				'type'    => ElementorControls_Manager::SLIDER,
+				'type'    => Controls_Manager::SLIDER,
 				'default' => [
 					'size' => 0.2,
 				],
@@ -569,7 +583,7 @@
 			'eael_add_to_cart_variations_style',
 			[
 				'label'     => esc_html__( 'Variations', 'essential-addons-for-elementor-lite' ),
-				'tab'       => ElementorControls_Manager::TAB_STYLE,
+				'tab'       => Controls_Manager::TAB_STYLE,
 				'condition' => [
 					'add_to_cart_product_type!'    => ['external_product', 'simple_product'],
 				],
@@ -580,7 +594,7 @@
 			'eael_add_to_variations_width',
 			[
 				'label'      => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::SLIDER,
+				'type'       => Controls_Manager::SLIDER,
 				'size_units' => [ 'px', '%', 'rem', 'em', 'vw', 'custom' ],
 				'default'    => [
 					'unit' => '%',
@@ -596,7 +610,7 @@
 			'eael_add_to_variations_spacing',
 			[
 				'label'      => esc_html__( 'Spacing Bottom', 'essential-addons-for-elementor-lite' ),
-				'type'       => ElementorControls_Manager::SLIDER,
+				'type'       => Controls_Manager::SLIDER,
 				'size_units' => [ 'px', 'em', 'rem', 'custom' ],
 				'range'      => [
 					'px' => [
@@ -620,7 +634,7 @@
 			'eael_add_to_cart_variations_select_bg_color',
 			[
 				'label'     => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::COLOR,
+				'type'      => Controls_Manager::COLOR,
 				'selectors' => [
 					'.woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .elementor-product-variable table tbody>tr:nth-child(odd)>td, .woocommerce {{WRAPPER}} .eael-single-product-add-to-cart .elementor-product-variable table tbody>tr:nth-child(odd)>th,
 					{{WRAPPER}} .eael-variable-product-edit .eael-variable-product' => 'background-color: {{VALUE}}',
@@ -632,7 +646,7 @@
 			'eael_add_to_cart_variations_label_style',
 			[
 				'label'     => esc_html__( 'Label', 'essential-addons-for-elementor-lite' ),
-				'type'      => ElementorControls_Manager::HEADING,
+				'type'      => Controls_Manager::HEADING,
 				'separator' => 'before',
 			]
 		);
@@ -641,7 +655,7 @@
 			'eael_add_to_cart_variations_label_color_focus',
 			[
 				'label'     => 

ModSecurity Protection Against This CVE

Here you will find our ModSecurity compatible rule to protect against this particular CVE.

ModSecurity
# Atomic Edge WAF Rule - CVE-2026-6459
# Detects XSS payloads in event title parameters, specifically targeting The Events Calendar integration with Essential Addons Event Calendar widget popups.
# Blocks event title values containing typical XSS patterns (script tags, event handlers) when submitted via wp-admin or frontend event creation.
SecRule REQUEST_URI "@rx ^/(wp-admin/post.php|wp-json/tribe/vd+/events)" "id:60264594,phase:2,deny,status:403,chain,msg:'CVE-2026-6459 XSS payload in Event Calendar event title',severity:'CRITICAL',tag:'CVE-2026-6459'"
  SecRule ARGS:post_title|ARGS:title|ARGS_POST:tribe_events_title|ARGS:tribe_events_title "@rx <script[s>]|<.*?onw+s*=" "t:none,chain"
    SecRule REQUEST_METHOD "@streq POST" "t:none"

Frequently Asked Questions

Atomic Edge WAF security layer inspecting website traffic.

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Black & McDonald logo representing Enterprise tier security and support for Atomic Edge WAF.Covenant House Toronto logo featuring a dove and text for Atomic Edge Enterprise planAlzheimer Society Canada logo representing trusted organizations and security partners.University of Toronto logo representing trusted organizations using Atomic Edge WAFSpecsavvers logo, trusted developers and organizations using Atomic Edge securityHarvard Medical School logo representing trusted organizations using Atomic Edge WAF.