PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.87
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.87
51.1.87 51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 All 41 releases
← All changes | includes/RegisterAssets.php +34 -17 51.1.63 → 51.1.87 View file →
@@ -50,9 +50,13 @@
50 50 {
51 51 foreach (ModulesMap::getModulesMapArray()['widgets'] as $widget_id => $widget_array) {
52 52 foreach ($widget_array['js'] as $js) {
53 53 $script_handle = KING_ADDONS_ASSETS_UNIQUE_KEY . '-' . $widget_id . '-' . $js;
54 - wp_register_script($script_handle, KING_ADDONS_URL . 'includes/widgets/' . $widget_array['php-class'] . '/' . $js . '.js', array('jquery'), KING_ADDONS_VERSION, true);
54 + $script_deps = array('jquery');
55 + if ('woo-product-variations' === $widget_id) {
56 + $script_deps[] = 'wc-add-to-cart-variation';
57 + }
58 + wp_register_script($script_handle, KING_ADDONS_URL . 'includes/widgets/' . $widget_array['php-class'] . '/' . $js . '.js', $script_deps, KING_ADDONS_VERSION, true);
55 59
56 60 // Localize script specifically for pricing-slider
57 61 if ($widget_id === 'pricing-slider' && $js === 'script') {
58 62 $localized_data = [
@@ -111,9 +115,9 @@
111 115
112 116 if(KING_ADDONS_WGT_FORM_BUILDER) {
113 117 wp_localize_script(KING_ADDONS_ASSETS_UNIQUE_KEY . '-form-builder-script', 'KingAddonsFormBuilderData', [
114 118 'ajaxurl' => admin_url('admin-ajax.php'),
115 - // Security fix: Remove public nonce exposure - generate dynamically in AJAX handlers
119 + 'nonce' => wp_create_nonce('king-addons-js'),
116 120 'input_empty' => esc_html__('Please fill out this field', 'king-addons'),
117 121 'select_empty' => esc_html__('Nothing selected', 'king-addons'),
118 122 'file_empty' => esc_html__('Please upload a file', 'king-addons'),
119 123 'recaptcha_v3_site_key' => get_option('king_addons_recaptcha_v3_site_key'),
@@ -120,22 +124,8 @@
120 124 'recaptcha_error' => esc_html__('Recaptcha Error', 'king-addons'),
121 125 ]);
122 126 }
123 127
124 - // Localize form builder script - Security fix: Remove public nonce exposure
125 - if (KING_ADDONS_WGT_FORM_BUILDER) {
126 - wp_localize_script(KING_ADDONS_ASSETS_UNIQUE_KEY . '-form-builder-script', 'king_addons_form_builder_vars', [
127 - 'ajax_url' => admin_url('admin-ajax.php'),
128 - // Security fix: Remove public nonce exposure - generate dynamically in AJAX handlers
129 - 'required_text' => esc_html__('This field is required', 'king-addons'),
130 - 'email_text' => esc_html__('Enter a valid email', 'king-addons'),
131 - 'select_empty' => esc_html__('Nothing selected', 'king-addons'),
132 - 'file_empty' => esc_html__('Please upload a file', 'king-addons'),
133 - 'recaptcha_v3_site_key' => get_option('king_addons_recaptcha_v3_site_key'),
134 - 'recaptcha_error' => esc_html__('Recaptcha Error', 'king-addons'),
135 - ]);
136 - }
137 -
138 128 foreach (ModulesMap::getModulesMapArray()['features'] as $feature_id => $feature_array) {
139 129 foreach ($feature_array['js'] as $js) {
140 130 wp_register_script(KING_ADDONS_ASSETS_UNIQUE_KEY . '-' . $feature_id . '-' . $js, KING_ADDONS_URL . 'includes/features/' . $feature_array['php-class'] . '/' . $js . '.js', null, KING_ADDONS_VERSION);
141 131 }
@@ -146,14 +136,41 @@
146 136 * Register libraries files
147 137 */
148 138 function registerLibrariesFiles(): void
149 139 {
140 + $jquery_libraries = [
141 + 'grid',
142 + 'isotope',
143 + 'slick',
144 + 'lightgallery',
145 + 'infinitescroll',
146 + 'imagesloaded',
147 + 'jqueryeventmove',
148 + 'jquerynumerator',
149 + 'jarallax',
150 + 'flipclock',
151 + 'fullpage',
152 + 'marquee',
153 + 'parallax',
154 + 'perfectscrollbar',
155 + 'wpcolorpicker',
156 + 'aos',
157 + ];
158 +
150 159 foreach (LibrariesMap::getLibrariesMapArray()['libraries'] as $library_id => $library_array) {
151 160 foreach ($library_array['css'] as $css) {
152 161 wp_register_style(KING_ADDONS_ASSETS_UNIQUE_KEY . '-' . $library_id . '-' . $css, KING_ADDONS_URL . 'includes/assets/libraries/' . $library_id . '/' . $css . '.css', null, KING_ADDONS_VERSION);
153 162 }
154 163 foreach ($library_array['js'] as $js) {
155 - wp_register_script(KING_ADDONS_ASSETS_UNIQUE_KEY . '-' . $library_id . '-' . $js, KING_ADDONS_URL . 'includes/assets/libraries/' . $library_id . '/' . $js . '.js', null, KING_ADDONS_VERSION);
164 + $dependencies = in_array($library_id, $jquery_libraries, true) ? ['jquery'] : [];
165 +
166 + wp_register_script(
167 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-' . $library_id . '-' . $js,
168 + KING_ADDONS_URL . 'includes/assets/libraries/' . $library_id . '/' . $js . '.js',
169 + $dependencies,
170 + KING_ADDONS_VERSION,
171 + true
172 + );
156 173 }
157 174 }
158 175
159 176 wp_localize_script(KING_ADDONS_ASSETS_UNIQUE_KEY . '-grid-grid', 'KingAddonsGridData', [