PluginProbe
Easy Elements for Elementor – Addons & Website Templates / 1.5.0
Easy Elements for Elementor – Addons & Website Templates v1.5.0
1.5.3 1.5.2 1.5.1 1.5.0 1.4.9 1.4.6 1.4.7 1.4.8 1.4.5 1.4.4 1.4.3 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 All 47 releases
easy-elements / includes / Utils / Enqueue.php

Enqueue.php in Easy Elements for Elementor – Addons & Website Templates 1.5.0, at includes/Utils/Enqueue.php

416 lines 17.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Easyel\EasyElements\Utils;
3 if ( ! defined( 'ABSPATH' ) ) exit;
4
5 class Enqueue {
6
7 private static $instance = null;
8 const VERSION = EASYELEMENTS_VER;
9 public static function get_instance() {
10 if ( ! self::$instance ) self::$instance = new self();
11 return self::$instance;
12 }
13
14 private function __construct() {
15 // Assets
16 add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_frontend_assets' ], 99 );
17 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_styles' ] );
18 add_action( 'elementor/editor/after_enqueue_scripts', [ $this, 'enqueue_editor_scripts' ] );
19
20 add_filter( 'script_loader_tag', [ $this, 'easyel_add_defer_attribute_free' ], 10, 2 );
21
22 add_action( 'wp_enqueue_scripts', [ $this, 'easyel_register_free_all_widget_assets'] );
23 add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'easyel_register_free_all_widget_assets'] );
24
25 }
26
27
28 public function enqueue_frontend_assets() {
29 $dir = EASYELEMENTS_DIR_URL;
30 if ( is_admin() ) return;
31 if ( ! class_exists( 'Elementor\Plugin' ) ) return;
32 wp_enqueue_style( 'swiper', ELEMENTOR_ASSETS_URL . 'lib/swiper/css/swiper-bundle.min.css', [], '8.0.7' );
33 wp_enqueue_style( 'easy-hfe-elementor', EASYELEMENTS_ASSETS_URL . 'header-footer/css/easy-hfe-elementor.css', [], self::VERSION );
34 wp_enqueue_style( 'e-e-easy-custom-icons', $dir . 'assets/simplelineicons/css/simple-line-icons.css', [], self::VERSION );
35
36 wp_enqueue_style( 'eel-elements-plugins', $dir . 'assets/css/plugins.min.css', [], self::VERSION );
37 wp_enqueue_script( 'swiper', ELEMENTOR_ASSETS_URL . 'lib/swiper/swiper-bundle.min.js', [ 'jquery' ], '8.0.7', true );
38 wp_enqueue_script( 'jarallax', $dir . 'assets/js/jarallax.js', [ 'jquery' ], '2.2.1', true );
39 wp_enqueue_script( 'eel-custom-js', $dir . 'assets/js/custom.js', [ 'jquery' ], self::VERSION, true );
40 wp_enqueue_script( 'easy-wrapper-link', $dir . 'assets/js/easy-wrapper-link.js', [ 'jquery' ], self::VERSION, true );
41
42 /**
43 * Dynamic scrollbar CSS variables
44 */
45 $options = get_option( 'easyel_scroll_smoother_settings', [] );
46
47 $width = ! empty( $options['smooth_scroll_width'] ) ? intval( $options['smooth_scroll_width'] ) . 'px' : '3px';
48 $track = ! empty( $options['smooth_scroll_normal_color'] ) ? $options['smooth_scroll_normal_color'] : '#dddddd';
49 $thumb = ! empty( $options['smooth_scroll_highlight_color'] ) ? $options['smooth_scroll_highlight_color'] : 'var(--e-global-color-primary)';
50
51 $dynamic_css = "
52 :root {
53 --easyel-scrollbar-width: {$width};
54 --easyel-scrollbar-track: {$track};
55 --easyel-scrollbar-thumb: {$thumb};
56 }
57 ";
58
59 wp_add_inline_style( 'eel-elements-plugins', $dynamic_css );
60
61 }
62
63
64 public function enqueue_admin_styles() {
65 global $pagenow;
66 $screen = get_current_screen();
67 $dir = EASYELEMENTS_DIR_URL;
68 wp_enqueue_style( 'e-e-elements-admin', $dir . 'assets/css/admin/admin.min.css', [], self::VERSION );
69 wp_enqueue_style( 'e-e-easy-custom-icons', $dir . 'assets/simplelineicons/css/simple-line-icons.css', [], self::VERSION );
70 wp_enqueue_style( 'e-e-easy-icons-font', $dir . 'includes/Admin/icons/css/easy-icons.css', [], self::VERSION );
71 wp_enqueue_style('e-e-admin-fonts-inter','https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap',false, self::VERSION );
72
73 if ( ( 'ee-elementor-hf' == $screen->id && ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) ) || ( 'edit.php' == $pagenow && 'edit-ee-elementor-hf' == $screen->id ) ) {
74 wp_enqueue_script( 'easy-ehf-admin-script', $dir . 'assets/header-footer/js/ee-ehf-admin.js', [ 'jquery', 'updates' ], self::VERSION, true );
75
76 // The ee-ehf-admin.js script relies on the global easyel_hfe_admin_data
77 // object (ajax_url, nonce, UI strings). Without this localize the
78 // object is undefined and every nonce / AJAX call in the script breaks.
79 wp_localize_script(
80 'easy-ehf-admin-script',
81 'easyel_hfe_admin_data',
82 [
83 'ajax_url' => admin_url( 'admin-ajax.php' ),
84 'nonce' => wp_create_nonce( 'easy_ehf_admin_nonce' ),
85 'installer_nonce' => wp_create_nonce( 'updates' ),
86 'data_source' => 'EE',
87 'popup_dismiss' => [ '' ],
88 'addon_activate' => esc_html__( 'Activate', 'easy-elements' ),
89 'addon_activated' => esc_html__( 'Activated', 'easy-elements' ),
90 'addon_active' => esc_html__( 'Active', 'easy-elements' ),
91 'addon_deactivate' => esc_html__( 'Deactivate', 'easy-elements' ),
92 'addon_inactive' => esc_html__( 'Inactive', 'easy-elements' ),
93 'addon_install' => esc_html__( 'Install', 'easy-elements' ),
94 'addon_download' => esc_html__( 'Download', 'easy-elements' ),
95 'addon_exists' => esc_html__( 'Already Exists.', 'easy-elements' ),
96 'theme_installed' => esc_html__( 'Theme Installed', 'easy-elements' ),
97 'plugin_installed' => esc_html__( 'Plugin Installed', 'easy-elements' ),
98 'plugin_error' => esc_html__( 'Could not install. Please download from WordPress.org and install manually.', 'easy-elements' ),
99 'visit_site' => esc_html__( 'Visit Website', 'easy-elements' ),
100 'subscribe_success' => esc_html__( 'Your details are submitted successfully.', 'easy-elements' ),
101 'subscribe_error' => esc_html__( 'Encountered an error while performing your request.', 'easy-elements' ),
102 ]
103 );
104
105 }
106 }
107
108 public function enqueue_editor_scripts() {
109 wp_enqueue_style( 'eel-elements-editor', EASYELEMENTS_DIR_URL . 'assets/css/editor.min.css', [], self::VERSION );
110 wp_enqueue_style( 'e-e-easy-custom-icons', EASYELEMENTS_DIR_URL . 'includes/Admin/icons/css/easy-icons.css', [], self::VERSION );
111 }
112
113
114
115 /**
116 * ------------------------------------------------------------
117 * Add defer attribute
118 * ------------------------------------------------------------
119 */
120 function easyel_add_defer_attribute_free( $tag, $handle ) {
121
122 $defer_handles = [
123 'swiper',
124 'jarallax',
125 'eel-custom-js',
126 'easy-wrapper-link',
127 'eel-countdown-script',
128 'eel-counter-script',
129 'eel-faq-accordion-script',
130 'eel-gallery-script',
131 'eel-login-register-script',
132 'eel-navigation-menu-script',
133 'eel-offcanvas-script',
134 'eel-scroll-to-top-script',
135 'eel-search-script',
136 'eel-tab-script',
137 'eel-table-script',
138 'eel-team-grid-script',
139 'eel-testimonials-script',
140 'eel-image-before-after-script',
141 ];
142
143 if ( in_array( $handle, $defer_handles, true ) ) {
144 return str_replace( ' src', ' defer src', $tag );
145 }
146
147 return $tag;
148 }
149
150 public function easyel_register_free_all_widget_assets() {
151
152 $widgets_assets = $this->easyel_enqueue_widget_assets();
153
154 $single_archive_widget = array(
155 'eel-featured-image',
156 'eel-post-content',
157 'eel-excerpt',
158 "eel-post-author-info",
159 'eel-post-comments',
160 'eel-post-meta',
161 'eel-post-pagination',
162 'eel-post-tags',
163 'eel-post-title',
164 "eel-breadcrumb",
165 "eel-navigation-menu",
166 "eel-site-logo",
167 );
168
169 if( is_array( $widgets_assets ) || is_object( $widgets_assets ) ) {
170 foreach ( $widgets_assets as $widget => $assets ) {
171
172 /**
173 * CSS register
174 */
175 if ( ! empty( $assets['css'] ) ) {
176 foreach ( $assets['css'] as $css ) {
177
178 $handle = $widget;
179 $path = EASYELEMENTS_DIR_PATH . $css;
180 $url = EASYELEMENTS_DIR_URL . $css;
181
182 if ( ! file_exists( $path ) ) {
183 continue;
184 }
185
186 $version = filemtime( $path );
187
188 if ( is_singular( 'post' ) && in_array( $handle, $single_archive_widget, true ) ) {
189
190 wp_enqueue_style(
191 $handle,
192 $url,
193 [],
194 $version
195 );
196
197 } else {
198
199 wp_register_style(
200 $handle,
201 $url,
202 [],
203 $version
204 );
205 }
206 }
207 }
208
209 /**
210 * JS register
211 */
212 if ( ! empty( $assets['js'] ) ) {
213 foreach ( $assets['js'] as $js ) {
214
215 $handle = $widget;
216 $path = EASYELEMENTS_DIR_PATH . $js;
217
218 if ( file_exists( $path ) ) {
219 wp_register_script(
220 $handle,
221 EASYELEMENTS_DIR_URL . $js,
222 [ 'jquery' ],
223 filemtime( $path ),
224 true
225 );
226
227 if ( $handle === 'eel-login-register' ) {
228 wp_localize_script( $handle, 'eelLoginRegister', [
229 'ajaxurl' => admin_url( 'admin-ajax.php' ),
230 'nonce' => wp_create_nonce( 'easy_elements_nonce' ),
231 ] );
232 }
233 }
234 }
235 }
236 }
237 }
238
239
240
241 }
242
243 function easyel_enqueue_widget_assets() {
244 if ( ! class_exists( '\Elementor\Plugin' ) ) return;
245
246 $widgets_assets = [
247 'eel-archive-post' => [
248 'css' => ['widgets/archive-post/css/archive-post.min.css'],
249 ],
250 'eel-blog-grid' => [
251 'css' => ['widgets/blog-grid/css/blog-grid.min.css'],
252 ],
253 'eel-breadcrumb' => [
254 'css' => ['widgets/breadcrumb/css/breadcrumb.min.css'],
255 ],
256 'eel-button' => [
257 'css' => ['widgets/button/css/button.min.css'],
258 ],
259 'eel-copyright' => [
260 'css' => ['widgets/copyright/css/copyright.min.css'],
261 ],
262 'eel-cf7' => [
263 'css' => ['widgets/cf7/css/cf7.min.css'],
264 ],
265 'eel-clients-logo-grid' => [
266 'css' => ['widgets/clients-logo-grid/css/clients-logo.min.css'],
267 ],
268 'eel-contact-box' => [
269 'css' => ['widgets/contact-box/css/contact-box.min.css'],
270 ],
271 'eel-countdown' => [
272 'css' => ['widgets/countdown/css/countdown.min.css'],
273 'js' => ['widgets/countdown/js/countdown.js'],
274 ],
275 'eel-counter' => [
276 'css' => ['widgets/counter/css/counter.min.css'],
277 'js' => ['widgets/counter/js/counter.js'],
278 ],
279 'eel-domain-search' => [
280 'css' => ['widgets/domain-search/css/domain-search.min.css'],
281 ],
282 'eel-excerpt' => [
283 'css' => ['widgets/excerpt/css/excerpt.min.css'],
284 ],
285 'eel-faq-accordion' => [
286 'css' => ['widgets/faq/css/faq.min.css'],
287 'js' => ['widgets/faq/js/faq.js'],
288 ],
289 'eel-feature-list' => [
290 'css' => ['widgets/feature-list/css/feature-list.min.css'],
291 ],
292 'eel-featured-image' => [
293 'css' => ['widgets/featured-image/css/featured-image.min.css'],
294 ],
295 'eel-gallery' => [
296 'css' => ['widgets/gallery/css/gallery.min.css'],
297 'js' => ['widgets/gallery/js/simple-gallery.js'],
298 ],
299 'eel-heading' => [
300 'css' => ['widgets/heading/css/heading.min.css'],
301 ],
302 'eel-icon-box' => [
303 'css' => ['widgets/icon-box/css/icon-box.min.css'],
304 ],
305 'eel-login-register' => [
306 'css' => ['widgets/login-register/css/login-register.min.css'],
307 'js' => ['widgets/login-register/js/login-register.js'],
308 ],
309 'eel-navigation-menu' => [
310 'css' => ['widgets/navigation-menu/css/navigation-menu.min.css'],
311 'js' => [
312 'widgets/navigation-menu/js/navigation-menu.min.js',
313 ],
314 ],
315 'eel-offcanvas' => [
316 'css' => ['widgets/offcanvas/css/offcanvas.min.css'],
317 'js' => ['widgets/offcanvas/js/offcanvas.js'],
318 ],
319 'eel-page-title' => [
320 'css' => ['widgets/page-title/css/page-title.min.css'],
321 ],
322 'eel-post-author-info' => [
323 'css' => ['widgets/post-author/css/post-author.min.css'],
324 ],
325 'eel-post-comments' => [
326 'css' => ['widgets/post-comments/css/post-comments.min.css'],
327 ],
328 'eel-post-content' => [
329 'css' => ['widgets/post-content/css/post-content.min.css'],
330 ],
331 'eel-post-meta' => [
332 'css' => ['widgets/post-meta/css/post-meta.min.css'],
333 ],
334 'eel-post-pagination' => [
335 'css' => ['widgets/post-pagination/css/post-pagination.min.css'],
336 ],
337 'eel-post-tags' => [
338 'css' => ['widgets/post-tag/css/post-tag.min.css'],
339 ],
340 'eel-post-title' => [
341 'css' => ['widgets/post-title/css/post-title.min.css'],
342 ],
343 'eel-pricing' => [
344 'css' => ['widgets/pricing-table/css/pricing.min.css'],
345 ],
346 'eel-process' => [
347 'css' => ['widgets/process-grid/css/process.min.css'],
348 ],
349 'eel-process-list' => [
350 'css' => ['widgets/process-list/css/process-list.min.css'],
351 ],
352 'easyel-progress-bar' => [
353 'css' => ['widgets/progress/css/progress.min.css'],
354 ],
355 'eel-scroll-to-top' => [
356 'css' => ['widgets/scroll-to-top/css/scroll.min.css'],
357 'js' => ['widgets/scroll-to-top/js/scroll.js'],
358 ],
359 'eel-category-list' => [
360 'css' => ['widgets/category-list/css/category-list.min.css'],
361 ],
362 'eel-search' => [
363 'css' => ['widgets/search/css/search.min.css'],
364 'js' => ['widgets/search/js/search.js'],
365 ],
366 'eel-service-list' => [
367 'css' => ['widgets/service-list/css/service-list.min.css'],
368 ],
369 'eel-site-logo' => [
370 'css' => ['widgets/site-logo/css/logo.min.css'],
371 ],
372 'eel-social-icon' => [
373 'css' => ['widgets/social-icon/css/social.min.css'],
374 ],
375 'eel-social-share' => [
376 'css' => ['widgets/social-share/css/social-share.min.css'],
377 ],
378 'eel-tab' => [
379 'css' => ['widgets/tab/css/tab.min.css'],
380 'js' => ['widgets/tab/js/tab.js'],
381 ],
382 'eel-table' => [
383 'css' => ['widgets/table/css/table.min.css'],
384 'js' => ['widgets/table/js/table.js'],
385 ],
386 'eel-team-grid' => [
387 'css' => ['widgets/team-grid/css/team-grid.min.css'],
388 'js' => ['widgets/team-grid/js/team.js'],
389 ],
390 'eel-testimonials' => [
391 'css' => ['widgets/testimonials-grid/css/testimonials.min.css'],
392 'js' => ['widgets/testimonials-grid/js/testimonial.js'],
393 ],
394 'eel-video-popup' => [
395 'css' => ['widgets/video/css/video.min.css'],
396 ],
397 'eel-single-nav' => [
398 'css' => ['widgets/single-nav/css/single-nav.min.css'],
399 ],
400 'eel-vertical-navigation' => [
401 'css' => ['widgets/vertical-menu/css/vertical-menu.min.css'],
402 ],
403 'eel-image-before-after' => [
404 'css' => ['widgets/image-comparison/css/image-before-after.min.css'],
405 'js' => ['widgets/image-comparison/js/event.move.js'],
406 ],
407 'eel-product-grid-lite' => [
408 'css' => ['widgets/product-grid-lite/css/product-grid-lite.min.css'],
409 ],
410 'eel-mini-cart' => [
411 'css' => ['widgets/mini-cart/css/mini-cart.min.css'],
412 ],
413 ];
414 return $widgets_assets;
415 }
416 }