PluginProbe
Easy Elements for Elementor – Addons & Website Templates / 1.3.4
Easy Elements for Elementor – Addons & Website Templates v1.3.4
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 / base.php

base.php in Easy Elements for Elementor – Addons & Website Templates 1.3.4, at base.php

653 lines 21.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5
6 final class Easyel_Elements_Elementor_Extension {
7
8 const VERSION = EASYELEMENTS_VER;
9
10 private static $_instance = null;
11
12 public static function instance() {
13 if ( is_null( self::$_instance ) ) {
14 self::$_instance = new self();
15 }
16 return self::$_instance;
17 }
18
19 public function __construct() {
20
21 add_action( 'init', [ $this, 'init' ] );
22 add_action( 'elementor/widgets/register', [ $this, 'init_widgets' ] );
23 add_action( 'elementor/elements/categories_registered', [ $this, 'add_elementor_categories' ] );
24
25 add_action( 'admin_notices', [ $this, 'easyel_admin_promo_notice' ] , 0 );
26 add_action( 'admin_init', [ $this, 'easyel_admin_promo_notice_dismiss_handler' ] );
27
28 add_filter( 'plugin_row_meta', [ $this, 'easyel_plugin_row_meta' ], 10, 2 );
29
30 add_filter('plugin_action_links_'.EASYELEMENTS_PATH,[ $this,'easyel_setting_page_link' ] );
31
32 add_action( 'plugins_loaded', [ $this, "easyel_plugin_loaded" ] );
33
34 register_activation_hook( EASYELEMENTS_PATH, [ __CLASS__, 'easy_elements_activate' ] );
35
36 add_action( 'admin_init', [ __CLASS__, 'easyel_maybe_upgrade' ] );
37
38 add_action('elementor/controls/register', function( $controls_manager ) {
39 $controls_manager->register(
40 new \Easyel\EasyElements\Utils\SearchSelect2()
41 );
42 });
43
44 \Easyel\EasyElements\Extensions\WrapperLink\EasyelWrapperLink::get_instance();
45
46 }
47
48 public static function easyel_maybe_upgrade() {
49
50 $stored_version = get_option( 'easyel_plugin_version', '0' );
51
52 if ( version_compare( $stored_version, '1.3.1', '<' ) ) {
53
54 self::easyel_upgrade_130();
55
56 update_option( 'easyel_plugin_version', '1.3.1' );
57 }
58 }
59
60 private static function easyel_upgrade_130() {
61
62 $option_key_extension = 'easy_element_extensions';
63 $settings = get_option( $option_key_extension, [] );
64
65 $new_defaults = [
66 'enable_wrapper_link' => 1,
67 'enable_post_duplicator' => 1,
68 'enable_dynamic_content' => 1,
69 'enable_megamenu_builder' => 1,
70 ];
71
72 foreach ( $new_defaults as $key => $default ) {
73 if ( ! isset( $settings[ $key ] ) ) {
74 $settings[ $key ] = $default;
75 }
76 }
77
78 update_option( $option_key_extension, $settings );
79 }
80
81 public static function easy_elements_activate() {
82
83 if ( class_exists( '\Easyel\EasyElements\Admin\Admin_Settings' ) ) {
84
85 $option_key_extension = 'easy_element_extensions';
86 $settings = get_option( $option_key_extension, [] );
87
88 $include_extension = array(
89 "enable_wrapper_link",
90 "enable_post_duplicator",
91 "enable_dynamic_content",
92 "enable_megamenu_builder",
93 );
94
95 $fields2 = [];
96
97 if ( function_exists('easyel_get_extension_fields') ) {
98 $fields2 = easyel_get_extension_fields();
99 }
100
101 foreach ( $fields2 as $key => $data ) {
102
103 if ( array_key_exists( $key, $settings ) ) {
104 continue;
105 }
106
107 $settings[$key] = in_array( $key, $include_extension, true ) ? 1 : 0;
108 }
109
110 update_option( $option_key_extension, $settings );
111
112 $include_widget = array(
113 "easy_table",
114 "bmi_calculator",
115 "single_navigation_menu",
116 );
117
118 $available_elements = \Easyel\EasyElements\Admin\Admin_Settings::get_instance()->easyel_elements_get_available_widgets();
119 $tab = 'widget';
120
121 foreach ( $available_elements as $key => $widget ) {
122
123 if ( isset( $widget['tab'] ) && $widget['tab'] === $tab ) {
124
125 $option_name = 'easy_element_' . $tab . '_' . $key;
126
127 $existing_value = get_option( $option_name, null );
128
129 if ( $existing_value !== null ) {
130 continue;
131 }
132
133 if ( in_array( $key, $include_widget, true ) ) {
134 add_option( $option_name, '0' );
135 }
136 }
137 }
138 }
139
140 flush_rewrite_rules();
141 }
142
143 public function easyel_admin_promo_notice() {
144
145 // Already dismissed
146 if ( get_option( 'easyel_admin_promo_notice_dismissed2' ) ) {
147 return;
148 }
149
150 $dismiss_url = wp_nonce_url(
151 add_query_arg(
152 [ 'easyel_promo_notice_dismiss' => '1' ],
153 admin_url()
154 ),
155 'easyel_promo_notice_dismiss_nonce'
156 );
157 ?>
158
159 <div class="notice notice-info easyel-promo-notice">
160 <div class="easyel-promo-content">
161 <div class="easyel-promo-left">
162 <span class="orange">Holiday & New Year Sale</span> <span></span> Discount Up To
163 <span style="color:#ff7dcb;">65%</span> OFF
164 <a class="easyel-promo-btn" href="https://wpeasyelements.com/pricing/" target="_blank">
165 Grab the Deal
166 </a>
167
168 </div>
169 <div class="easyel-promo-right">
170 <a href="<?php echo esc_url( $dismiss_url ); ?>" style="text-decoration:none;">
171 Dismiss
172 </a>
173 </div>
174 </div>
175 </div>
176
177 <?php
178 }
179
180 function easyel_plugin_row_meta( $meta, $plugin_file ) {
181 if ( basename( EASYELEMENTS_PATH) !== basename( $plugin_file ) ) {
182 return $meta;
183 }
184
185 $meta[] = '<a href="https://wpeasyelements.com/docs/" target="_blank">' . esc_html__('Documentation', 'easy-elements' ) . '</a>';
186 $meta[] = '<a href="https://themewant.com/support/" target="_blank">' . esc_html__('Support', 'easy-elements') . '</a>';
187 if ( !file_exists( WP_PLUGIN_DIR . '/' . 'easy-elements-pro/easy-elements-pro.php' ) ) {
188 $meta[] = '<a href="https://wpeasyelements.com/" style="color:#ff7a00; font-weight: bold;" target="_blank">' . esc_html__('Upgrade to Pro', 'easy-elements') . '</a>';
189 }
190 $meta[] = '<a href="https://wordpress.org/support/plugin/easy-elements/reviews/#new-post" target="_blank">' . esc_html__(' Rate the plugin �
191
192
193
194
195 ', 'easy-elements' ) . '</a>';
196 return $meta;
197 }
198
199 public function easyel_admin_promo_notice_dismiss_handler() {
200
201 if ( ! is_admin() ) {
202 return;
203 }
204
205 if ( empty( $_GET['easyel_promo_notice_dismiss'] ) ) {
206 return;
207 }
208
209 $nonce = isset( $_GET['_wpnonce'] )
210 ? sanitize_text_field( wp_unslash( $_GET['_wpnonce'] ) )
211 : '';
212
213 if ( ! wp_verify_nonce( $nonce, 'easyel_promo_notice_dismiss_nonce' ) ) {
214 return;
215 }
216
217 update_option( 'easyel_admin_promo_notice_dismissed2', 1 );
218
219 wp_safe_redirect(
220 remove_query_arg( [ 'easyel_promo_notice_dismiss', '_wpnonce' ] )
221 );
222 exit;
223 }
224
225 public function init() {
226 // Safety checks
227
228 add_filter( 'body_class', [ $this, "easy_add_extra_body_class" ] );
229 add_action( 'easy_header', [ $this, 'easyel_before_content_container_hfe'], 20 );
230 add_action( 'easy_footer', [ $this, 'easyel_after_content_container_hfe' ], 5 );
231
232 add_action( 'admin_notices', [ $this, 'easyelements_admin_notice_missing_elementor' ] );
233 }
234
235 public function easyel_plugin_loaded () {
236
237 \Easyel\EasyElements\Utils\Enqueue::get_instance();
238 \Easyel\EasyElements\Utils\QueryHelper::get_instance();
239
240 if( is_admin() ) {
241 \Easyel\EasyElements\Admin\Admin_Settings::get_instance();
242 }
243
244 if ( did_action( 'elementor/loaded' ) ) {
245 \Easyel\EasyElements\Template_Library\Easyel_Templates_Library::get_instance();
246 \Easyel\EasyElements\Header_Footer_Builder\Classes\Easy_Header_Footer_Elementor::get_instance();
247 }
248
249 \Easyel\EasyElements\Theme_Builder\Easyel_Theme_Builder_CPT::get_instance();
250
251 \Easyel\EasyElements\Theme_Builder\Easyel_Theme_Builder_Front::get_instance();
252
253 \Easyel\EasyElements\PostType\OffcanvasPostType::get_instance();
254 \Easyel\EasyElements\CustomCode\Easyel_Custom_Code::get_instance();
255 \Easyel\EasyElements\Extensions\ExtensionHook\ExtensionModule::get_instance();
256 \Easyel\EasyElements\Extensions\CustomCss\EasyelCustomCss::get_instance()->init();
257 \Easyel\EasyElements\Extensions\Duplicator\EasyelDuplicator::get_instance();
258 \Easyel\EasyElements\Extensions\SettingExport\EasyelExport::get_instance();
259 \Easyel\EasyElements\Extensions\LiveCopy\CopyPaste::get_instance();
260 \Easyel\EasyElements\Extensions\VisibilityControl\VisibilityModule::get_instance();
261 \Easyel\EasyElements\Extensions\Jarallax\JaralaxControl::get_instance()->init();
262 \Easyel\EasyElements\Extensions\Jarallax\GlobalJarallax::get_instance();
263 \Easyel\EasyElements\Extensions\ProgressBar\ReadingProgressBar::get_instance();
264
265
266 if ( ! class_exists( '\Appsero\Client' ) ) {
267 return;
268 }
269
270 \Easyel\EasyElements\Tracking\Appsero_Tracker::instance();
271 }
272
273 public function easyelements_admin_notice_missing_elementor() {
274
275 $elementor = 'elementor/elementor.php';
276
277 if ( current_user_can( 'activate_plugins' ) && isset( $_GET['activate'], $_GET['_wpnonce'] ) ) {
278
279 $nonce = isset( $_GET['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_GET['_wpnonce'] ) ) : '';
280
281 if ( wp_verify_nonce( $nonce, 'activate-plugin_' . $elementor ) ) {
282 unset( $_GET['activate'] );
283 }
284 }
285
286 if ( ! current_user_can( 'install_plugins' ) ) {
287 return;
288 }
289
290 $elementor = 'elementor/elementor.php';
291 $elementor_path = WP_PLUGIN_DIR . '/' . $elementor;
292
293 $is_installed = file_exists( $elementor_path );
294 $is_active = function_exists( 'is_plugin_active' ) && is_plugin_active( $elementor );
295
296 if ( $is_active ) {
297 return;
298 }
299
300 if ( $is_installed ) {
301 $action_url = wp_nonce_url(
302 self_admin_url( 'plugins.php?action=activate&plugin=' . $elementor ),
303 'activate-plugin_' . $elementor
304 );
305
306 $button_label = esc_html__( 'Activate Elementor', 'easy-elements' );
307 $notice_text = esc_html__( 'Easy Elements is not working because the Elementor plugin is inactive.', 'easy-elements' );
308
309 } else {
310 $action_url = wp_nonce_url(
311 self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ),
312 'install-plugin_elementor'
313 );
314
315 $button_label = esc_html__( 'Install Elementor', 'easy-elements' );
316 $notice_text = esc_html__( 'Easy Elements requires the Elementor plugin to be installed.', 'easy-elements' );
317 }
318
319 $message = '<p>' . $notice_text . '</p>';
320 $message .= '<p><a href="' . esc_url( $action_url ) . '" class="button-primary">' . $button_label . '</a></p>';
321
322 printf(
323 '<div class="notice notice-error is-dismissible">%s</div>',
324 wp_kses_post( $message )
325 );
326 }
327
328 // Container Full site
329 public function easyel_before_content_container_hfe() {
330 if ( is_admin() ) return;
331 if ( function_exists( 'elementor_theme_do_location' ) && \Elementor\Plugin::$instance->preview->is_preview() ) {
332 return;
333 }
334 echo '<div class="easyel-content-container">';
335 }
336
337 /**
338 * Close container before HFE Footer
339 */
340 function easyel_after_content_container_hfe() {
341 if ( is_admin() ) return;
342 if ( function_exists( 'elementor_theme_do_location' ) && \Elementor\Plugin::$instance->preview->is_preview() ) {
343 return;
344 }
345 echo '</div>';
346 }
347
348 public function easy_add_extra_body_class( $classes ) {
349 if ( is_plugin_active( 'easy-elements/easy-elements.php' ) ) {
350 $classes[] = 'eel-easy-elements';
351 }
352
353 return $classes;
354 }
355
356 public function add_elementor_categories( $elements_manager ) {
357
358 $new_categories = [
359 'easyelements_category' => [
360 'title' => __( 'Easy Elements', 'easy-elements' ),
361 'icon' => 'fa fa-plug',
362 ],
363 'easyelements_post_category' => [
364 'title' => __( 'Easy Post Type Elements', 'easy-elements' ),
365 'icon' => 'fa fa-file-alt',
366 ],
367 'easyelements_header_footer_category' => [
368 'title' => __( 'Easy Header Footer Elements', 'easy-elements' ),
369 'icon' => 'fa fa-header',
370 ],
371 'easyelements_category_form' => [
372 'title' => __( 'Easy Elements Form', 'easy-elements' ),
373 'icon' => 'fa fa-plug',
374 ],
375 'easyelements_category_pro' => [
376 'title' => __( 'Easy Elements Pro', 'easy-elements' ),
377 'icon' => 'fa fa-plug',
378 ],
379 ];
380
381 $existing = $elements_manager->get_categories();
382 $final_list = [];
383
384 foreach ( $existing as $key => $cat ) {
385 $final_list[ $key ] = $cat;
386
387 if ( $key === 'layout' ) {
388 foreach ( $new_categories as $new_key => $new_cat ) {
389 $final_list[ $new_key ] = $new_cat;
390 }
391 }
392 }
393
394 $apply_categories = function( $cats ) {
395 $this->categories = $cats;
396 };
397
398 $apply_categories->call( $elements_manager, $final_list );
399 }
400
401 public function init_widgets() {
402 $widgets_manager = \Elementor\Plugin::instance()->widgets_manager;
403
404 $widgets = [
405 'site_logo' => [
406 'class' => '\Easyel\EasyElements\Widgets\Easyel_Site_Logo_Widget',
407 'file' => EASYELEMENTS_DIR_PATH . '/widgets/site-logo/site-logo.php',
408 'tab' => 'widget'
409 ],
410 'heading' => [
411 'class' => '\Easyel\EasyElements\Widgets\Easyel_Heading_Widget',
412 'file' => EASYELEMENTS_DIR_PATH . '/widgets/heading/heading.php',
413 'tab' => 'widget'
414 ],
415 'clients_logo' => [
416 'class' => '\Easyel\EasyElements\Widgets\Easyel_Clients_Logo__Widget',
417 'file' => EASYELEMENTS_DIR_PATH . '/widgets/clients-logo-grid/logo.php',
418 'tab' => 'widget'
419 ],
420 'icon_box' => [
421 'class' => '\Easyel\EasyElements\Widgets\Easyel_Icon_Box__Widget',
422 'file' => EASYELEMENTS_DIR_PATH . '/widgets/icon-box/icon.php',
423 'tab' => 'widget'
424 ],
425 'simple_tab' => [
426 'class' => '\Easyel\EasyElements\Widgets\Easyel_Tab_Widget',
427 'file' => EASYELEMENTS_DIR_PATH . '/widgets/tab/tab.php',
428 'tab' => 'widget'
429 ],
430 'testimonials' => [
431 'class' => '\Easyel\EasyElements\Widgets\Easyel_Testimonials__Widget',
432 'file' => EASYELEMENTS_DIR_PATH . '/widgets/testimonials-grid/testimonials.php',
433 'tab' => 'widget'
434 ],
435 'team_grid' => [
436 'class' => '\Easyel\EasyElements\Widgets\Easyel_Team_Grid__Widget',
437 'file' => EASYELEMENTS_DIR_PATH . '/widgets/team-grid/team-grid.php',
438 'tab' => 'widget'
439 ],
440 'search' => [
441 'class' => '\Easyel\EasyElements\Widgets\Easyel_Search_Widget',
442 'file' => EASYELEMENTS_DIR_PATH . '/widgets/search/search.php',
443 'tab' => 'widget'
444 ],
445 'contact_box' => [
446 'class' => '\Easyel\EasyElements\Widgets\Easyel_Contact_Box__Widget',
447 'file' => EASYELEMENTS_DIR_PATH . '/widgets/contact-box/contact.php',
448 'tab' => 'widget'
449 ],
450 'faq' => [
451 'class' => '\Easyel\EasyElements\Widgets\Easyel_FAQ_Accordion_Widget',
452 'file' => EASYELEMENTS_DIR_PATH . '/widgets/faq/faq.php',
453 'tab' => 'widget'
454 ],
455 'blog_grid' => [
456 'class' => '\Easyel\EasyElements\Widgets\Easyel_Blog_Grid__Widget',
457 'file' => EASYELEMENTS_DIR_PATH . '/widgets/blog-grid/blog-grid.php',
458 'tab' => 'widget'
459 ],
460 'video' => [
461 'class' => '\Easyel\EasyElements\Widgets\Easyel_Video_Popup_Widget',
462 'file' => EASYELEMENTS_DIR_PATH . '/widgets/video/video.php',
463 'tab' => 'widget'
464 ],
465 'pricing_table' => [
466 'class' => '\Easyel\EasyElements\Widgets\Easyel_Pricing_Table_Widget',
467 'file' => EASYELEMENTS_DIR_PATH . '/widgets/pricing-table/pricing.php',
468 'tab' => 'widget'
469 ],
470 'service_list' => [
471 'class' => '\Easyel\EasyElements\Widgets\Easyel_Service_List_Widget',
472 'file' => EASYELEMENTS_DIR_PATH . '/widgets/service-list/service-list.php',
473 'tab' => 'widget'
474 ],
475 'navigation_menu' => [
476 'class' => '\Easyel\EasyElements\Widgets\Easyel_Navigation_Menu_Widget',
477 'file' => EASYELEMENTS_DIR_PATH . '/widgets/navigation-menu/navigation-menu.php',
478 'tab' => 'widget'
479 ],
480 'page_title' => [
481 'class' => '\Easyel\EasyElements\Widgets\Easyel_Page_Title_Widget',
482 'file' => EASYELEMENTS_DIR_PATH . '/widgets/page-title/page-title.php',
483 'tab' => 'widget'
484 ],
485 'button' => [
486 'class' => '\Easyel\EasyElements\Widgets\Easyel_Button_Widget',
487 'file' => EASYELEMENTS_DIR_PATH . '/widgets/button/button.php',
488 'tab' => 'widget'
489 ],
490 'process_grid' => [
491 'class' => '\Easyel\EasyElements\Widgets\Easyel_Process_Grid_Widget',
492 'file' => EASYELEMENTS_DIR_PATH . '/widgets/process-grid/process-grid.php',
493 'tab' => 'widget'
494 ],
495 'process_list' => [
496 'class' => '\Easyel\EasyElements\Widgets\Easyel_Process_lists_Widget',
497 'file' => EASYELEMENTS_DIR_PATH . '/widgets/process-list/process-list.php',
498 'tab' => 'widget'
499 ],
500 'social_share' => [
501 'class' => '\Easyel\EasyElements\Widgets\Easyel_Social_Share_Widget',
502 'file' => EASYELEMENTS_DIR_PATH . '/widgets/social-share/social-share.php',
503 'tab' => 'widget'
504 ],
505 'social_icon' => [
506 'class' => '\Easyel\EasyElements\Widgets\Easyel_Social_Icon_Widget',
507 'file' => EASYELEMENTS_DIR_PATH . '/widgets/social-icon/social.php',
508 'tab' => 'widget'
509 ],
510 'breadcrumb' => [
511 'class' => '\Easyel\EasyElements\Widgets\Easyel_Breadcrumb_Widget',
512 'file' => EASYELEMENTS_DIR_PATH . '/widgets/breadcrumb/breadcrumb.php',
513 'tab' => 'widget'
514 ],
515 'domain_search' => [
516 'class' => '\Easyel\EasyElements\Widgets\Easyel_Domain_Search_Widget',
517 'file' => EASYELEMENTS_DIR_PATH . '/widgets/domain-search/domain-search.php',
518 'tab' => 'widget'
519 ],
520 'easy_offcanvas' => [
521 'class' => '\Easyel\EasyElements\Widgets\Easyel_Offcanvas_Widget',
522 'file' => EASYELEMENTS_DIR_PATH . '/widgets/offcanvas/offcanvas.php',
523 'tab' => 'widget'
524 ],
525 'easy_table' => [
526 'class' => '\Easyel\EasyElements\Widgets\Easyel_Table_Elementor_Widget',
527 'file' => EASYELEMENTS_DIR_PATH . '/widgets/table/table-normal.php',
528 'tab' => 'widget'
529 ],
530 'easy_scroll_to_top' => [
531 'class' => '\Easyel\EasyElements\Widgets\Easyel_Scroll_To_Top_Widget',
532 'file' => EASYELEMENTS_DIR_PATH . '/widgets/scroll-to-top/scroll.php',
533 'tab' => 'widget'
534 ],
535 'easy_cf7' => [
536 'class' => '\Easyel\EasyElements\Widgets\easyel__CF7_Widget',
537 'file' => EASYELEMENTS_DIR_PATH . '/widgets/cf7/contact-cf7.php',
538 'tab' => 'widget'
539 ],
540 'easy_gallery' => [
541 'class' => '\Easyel\EasyElements\Widgets\Easyel__Gallery_Widget',
542 'file' => EASYELEMENTS_DIR_PATH . '/widgets/gallery/gallery.php',
543 'tab' => 'widget'
544 ],
545 'easy_progress' => [
546 'class' => '\Easyel\EasyElements\Widgets\Easyel_Progress_Widget',
547 'file' => EASYELEMENTS_DIR_PATH . '/widgets/progress/progress.php',
548 'tab' => 'widget'
549 ],
550 'counter' => [
551 'class' => '\Easyel\EasyElements\Widgets\Easyel_Counter_Widget',
552 'file' => EASYELEMENTS_DIR_PATH . '/widgets/counter/counter.php',
553 'tab' => 'widget'
554 ],
555 'countdown' => [
556 'class' => '\Easyel\EasyElements\Widgets\Easyel_Count_Down_Widget',
557 'file' => EASYELEMENTS_DIR_PATH . '/widgets/countdown/countdown.php',
558 'tab' => 'widget'
559 ],
560 'excerpt' => [
561 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Excerpt_Widget',
562 'file' => EASYELEMENTS_DIR_PATH . '/widgets/excerpt/excerpt.php',
563 'tab' => 'widget'
564 ],
565 'post_title' => [
566 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Title_Widget',
567 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-title/post-title.php',
568 'tab' => 'widget'
569 ],
570 'post_content' => [
571 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_content_Widget',
572 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-content/post-content.php',
573 'tab' => 'widget'
574 ],
575 'featured_image' => [
576 'class' => '\Easyel\EasyElements\Widgets\Easyel_free_Featured_Image_Widget',
577 'file' => EASYELEMENTS_DIR_PATH . '/widgets/featured-image/featured-image.php',
578 'tab' => 'widget'
579 ],
580 'post_meta' => [
581 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Meta_Widget',
582 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-meta/post-meta.php',
583 'tab' => 'widget'
584 ],
585 'post_pagination' => [
586 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Pagination_Widget',
587 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-pagination/post-pagination.php',
588 'tab' => 'widget'
589 ],
590 'post_comments' => [
591 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Comments_Widget',
592 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-comments/post-comments.php',
593 'tab' => 'widget'
594 ],
595 'post_tags' => [
596 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Tags_Widget',
597 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-tag/post-tag.php',
598 'tab' => 'widget'
599 ],
600 'post_author' => [
601 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Author_Info_Widget',
602 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-author/post-author.php',
603 'tab' => 'widget'
604 ],
605 'archive_post' => [
606 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Archive_Post__Widget',
607 'file' => EASYELEMENTS_DIR_PATH . '/widgets/archive-post/archive-post.php',
608 'tab' => 'widget',
609 ],
610 'login_register' => [
611 'class' => '\Easyel\EasyElements\Widgets\Easyel_Login_Register_Widget',
612 'file' => EASYELEMENTS_DIR_PATH . '/widgets/login-register/login-register.php',
613 'tab' => 'widget',
614 ],
615 'feature_list' => [
616 'class' => '\Easyel\EasyElements\Widgets\Easyel_Feature_List__Widget',
617 'file' => EASYELEMENTS_DIR_PATH . '/widgets/feature-list/feature-list.php',
618 'tab' => 'widget',
619 ],
620 'single_navigation_menu' => [
621 'class' => '\Easyel\EasyElements\Widgets\Easyel_Single_Nav_Widget',
622 'file' => EASYELEMENTS_DIR_PATH . '/widgets/single-nav/single-nav.php',
623 'tab' => 'widget',
624 ]
625 ];
626
627 foreach ( $widgets as $key => $data ) {
628 $option_name = 'easy_element_' . $data['tab'] . '_' . $key;
629 $enabled = get_option( $option_name, '1' );
630
631 if ( 1 !== ( int ) $enabled ) {
632 continue; // Skip disabled widgets
633 }
634
635 if ( file_exists( $data['file'] ) ) {
636 require_once $data['file'];
637
638 if ( class_exists( $data['class'] ) ) {
639 $widgets_manager->register( new $data['class']() );
640 }
641 }
642 }
643 }
644
645 public function easyel_setting_page_link( $links ) {
646 $action_link = sprintf("<a href='%s'>%s</a>",admin_url('admin.php?page=easy-elements-dashboard'),__('Settings','easy-elements'));
647 array_push( $links,$action_link );
648 return $links;
649 }
650
651 }
652
653 Easyel_Elements_Elementor_Extension::instance();