register( new \Easyel\EasyElements\Utils\SearchSelect2() ); }); \Easyel\EasyElements\Extensions\WrapperLink\EasyelWrapperLink::get_instance(); } public static function easyel_maybe_upgrade() { $stored_version = get_option( 'easyel_plugin_version', '0' ); if ( version_compare( $stored_version, '1.3.1', '<' ) ) { self::easyel_upgrade_130(); update_option( 'easyel_plugin_version', '1.3.1' ); } } private static function easyel_upgrade_130() { $option_key_extension = 'easy_element_extensions'; $settings = get_option( $option_key_extension, [] ); $new_defaults = [ 'enable_wrapper_link' => 1, 'enable_post_duplicator' => 1, 'enable_dynamic_content' => 1, 'enable_megamenu_builder' => 1, ]; foreach ( $new_defaults as $key => $default ) { if ( ! isset( $settings[ $key ] ) ) { $settings[ $key ] = $default; } } update_option( $option_key_extension, $settings ); } public static function easy_elements_activate() { if ( class_exists( '\Easyel\EasyElements\Admin\Admin_Settings' ) ) { $option_key_extension = 'easy_element_extensions'; $settings = get_option( $option_key_extension, [] ); $include_extension = array( "enable_wrapper_link", "enable_post_duplicator", "enable_dynamic_content", "enable_megamenu_builder", ); $fields2 = []; if ( function_exists('easyel_get_extension_fields') ) { $fields2 = easyel_get_extension_fields(); } foreach ( $fields2 as $key => $data ) { if ( array_key_exists( $key, $settings ) ) { continue; } $settings[$key] = in_array( $key, $include_extension, true ) ? 1 : 0; } update_option( $option_key_extension, $settings ); $include_widget = array( "easy_table", "bmi_calculator", "single_navigation_menu", ); $available_elements = \Easyel\EasyElements\Admin\Admin_Settings::get_instance()->easyel_elements_get_available_widgets(); $tab = 'widget'; foreach ( $available_elements as $key => $widget ) { if ( isset( $widget['tab'] ) && $widget['tab'] === $tab ) { $option_name = 'easy_element_' . $tab . '_' . $key; $existing_value = get_option( $option_name, null ); if ( $existing_value !== null ) { continue; } if ( in_array( $key, $include_widget, true ) ) { add_option( $option_name, '0' ); } } } } flush_rewrite_rules(); } public function easyel_admin_promo_notice() { // Already dismissed if ( get_option( 'easyel_admin_promo_notice_dismissed2' ) ) { return; } $dismiss_url = wp_nonce_url( add_query_arg( [ 'easyel_promo_notice_dismiss' => '1' ], admin_url() ), 'easyel_promo_notice_dismiss_nonce' ); ?>
Exclusive Deals Available Discount Up To 60% OFF Grab the Deal →
' . esc_html__('Documentation', 'easy-elements' ) . ''; $meta[] = '' . esc_html__('Support', 'easy-elements') . ''; if ( !file_exists( WP_PLUGIN_DIR . '/' . 'easy-elements-pro/easy-elements-pro.php' ) ) { $meta[] = '' . esc_html__('Upgrade to Pro', 'easy-elements') . ''; } $meta[] = '' . esc_html__(' Rate the plugin ★★★★★', 'easy-elements' ) . ''; return $meta; } public function easyel_admin_promo_notice_dismiss_handler() { if ( ! is_admin() ) { return; } if ( empty( $_GET['easyel_promo_notice_dismiss'] ) ) { return; } $nonce = isset( $_GET['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_GET['_wpnonce'] ) ) : ''; if ( ! wp_verify_nonce( $nonce, 'easyel_promo_notice_dismiss_nonce' ) ) { return; } update_option( 'easyel_admin_promo_notice_dismissed2', 1 ); wp_safe_redirect( remove_query_arg( [ 'easyel_promo_notice_dismiss', '_wpnonce' ] ) ); exit; } public function init() { // Safety checks add_filter( 'body_class', [ $this, "easy_add_extra_body_class" ] ); add_action( 'easy_header', [ $this, 'easyel_before_content_container_hfe'], 20 ); add_action( 'easy_footer', [ $this, 'easyel_after_content_container_hfe' ], 5 ); add_action( 'admin_notices', [ $this, 'easyelements_admin_notice_missing_elementor' ] ); } public function easyel_plugin_loaded () { \Easyel\EasyElements\Utils\Enqueue::get_instance(); \Easyel\EasyElements\Utils\QueryHelper::get_instance(); if( is_admin() ) { \Easyel\EasyElements\Admin\Admin_Settings::get_instance(); } if ( did_action( 'elementor/loaded' ) ) { \Easyel\EasyElements\Template_Library\Easyel_Templates_Library::get_instance(); \Easyel\EasyElements\Header_Footer_Builder\Classes\Easy_Header_Footer_Elementor::get_instance(); } \Easyel\EasyElements\Starter_Template\Easyel_Starter_Template::get_instance(); \Easyel\EasyElements\Theme_Builder\Easyel_Theme_Builder_CPT::get_instance(); \Easyel\EasyElements\Theme_Builder\Easyel_Theme_Builder_Front::get_instance(); \Easyel\EasyElements\PostType\OffcanvasPostType::get_instance(); \Easyel\EasyElements\CustomCode\Easyel_Custom_Code::get_instance(); \Easyel\EasyElements\Popup_Builder\Easyel_Popup_Builder::get_instance(); \Easyel\EasyElements\Extensions\ExtensionHook\ExtensionModule::get_instance(); \Easyel\EasyElements\Extensions\CustomCss\EasyelCustomCss::get_instance()->init(); \Easyel\EasyElements\Extensions\Duplicator\EasyelDuplicator::get_instance(); \Easyel\EasyElements\Extensions\SettingExport\EasyelExport::get_instance(); \Easyel\EasyElements\Extensions\LiveCopy\CopyPaste::get_instance(); \Easyel\EasyElements\Extensions\VisibilityControl\VisibilityModule::get_instance(); \Easyel\EasyElements\Extensions\Jarallax\JaralaxControl::get_instance()->init(); \Easyel\EasyElements\Extensions\Jarallax\GlobalJarallax::get_instance(); \Easyel\EasyElements\Extensions\ProgressBar\ReadingProgressBar::get_instance(); \Easyel\EasyElements\Extensions\ScrollTop\ScrollTop::get_instance(); if ( function_exists( 'easyel_element_is_enabled' ) && easyel_element_is_enabled( 'enable_preloader' ) ) { require_once EASYELEMENTS_DIR_PATH . 'includes/Extensions/Preloader/preloader.php'; \Easyel\EasyElements\Extensions\Preloader\EasyelPreloader::get_instance(); } if ( ! class_exists( '\Easyel\Vendor\Appsero\Client' ) ) { return; } \Easyel\EasyElements\Tracking\Appsero_Tracker::instance(); } public function easyelements_admin_notice_missing_elementor() { $elementor = 'elementor/elementor.php'; if ( current_user_can( 'activate_plugins' ) && isset( $_GET['activate'], $_GET['_wpnonce'] ) ) { $nonce = isset( $_GET['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_GET['_wpnonce'] ) ) : ''; if ( wp_verify_nonce( $nonce, 'activate-plugin_' . $elementor ) ) { unset( $_GET['activate'] ); } } if ( ! current_user_can( 'install_plugins' ) ) { return; } $elementor = 'elementor/elementor.php'; $elementor_path = WP_PLUGIN_DIR . '/' . $elementor; $is_installed = file_exists( $elementor_path ); $is_active = function_exists( 'is_plugin_active' ) && is_plugin_active( $elementor ); if ( $is_active ) { return; } if ( $is_installed ) { $action_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $elementor ), 'activate-plugin_' . $elementor ); $button_label = esc_html__( 'Activate Elementor', 'easy-elements' ); } else { $action_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' ); $button_label = esc_html__( 'Install Elementor', 'easy-elements' ); } wp_enqueue_style( 'easyel-missing-elementor-notice', EASYELEMENTS_DIR_URL . 'assets/css/admin/missing-elementor-notice.css', [], self::VERSION ); ?> preview->is_preview() ) { return; } echo '
'; } /** * Close container before HFE Footer */ function easyel_after_content_container_hfe() { if ( is_admin() ) return; if ( function_exists( 'elementor_theme_do_location' ) && \Elementor\Plugin::$instance->preview->is_preview() ) { return; } echo '
'; } public function easy_add_extra_body_class( $classes ) { if ( is_plugin_active( 'easy-elements/easy-elements.php' ) ) { $classes[] = 'eel-easy-elements'; } return $classes; } public function add_elementor_categories( $elements_manager ) { $new_categories = [ 'easyelements_category' => [ 'title' => __( 'Easy Elements', 'easy-elements' ), 'icon' => 'fa fa-plug', ], 'easyelements_post_category' => [ 'title' => __( 'Easy Post Type Elements', 'easy-elements' ), 'icon' => 'fa fa-file-alt', ], 'easyelements_header_footer_category' => [ 'title' => __( 'Easy Header Footer Elements', 'easy-elements' ), 'icon' => 'fa fa-header', ], 'easyelements_category_form' => [ 'title' => __( 'Easy Elements Form', 'easy-elements' ), 'icon' => 'fa fa-plug', ], 'easyelements_category_pro' => [ 'title' => __( 'Easy Elements Pro', 'easy-elements' ), 'icon' => 'fa fa-plug', ], ]; $existing = $elements_manager->get_categories(); $final_list = []; foreach ( $existing as $key => $cat ) { $final_list[ $key ] = $cat; if ( $key === 'layout' ) { foreach ( $new_categories as $new_key => $new_cat ) { $final_list[ $new_key ] = $new_cat; } } } $apply_categories = function( $cats ) { $this->categories = $cats; }; $apply_categories->call( $elements_manager, $final_list ); } public function init_widgets() { $widgets_manager = \Elementor\Plugin::instance()->widgets_manager; $widgets = [ 'site_logo' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Site_Logo_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/site-logo/site-logo.php', 'tab' => 'widget' ], 'heading' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Heading_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/heading/heading.php', 'tab' => 'widget' ], 'clients_logo' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Clients_Logo__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/clients-logo-grid/logo.php', 'tab' => 'widget' ], 'icon_box' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Icon_Box__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/icon-box/icon.php', 'tab' => 'widget' ], 'simple_tab' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Tab_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/tab/tab.php', 'tab' => 'widget' ], 'testimonials' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Testimonials__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/testimonials-grid/testimonials.php', 'tab' => 'widget' ], 'team_grid' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Team_Grid__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/team-grid/team-grid.php', 'tab' => 'widget' ], 'search' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Search_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/search/search.php', 'tab' => 'widget' ], 'contact_box' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Contact_Box__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/contact-box/contact.php', 'tab' => 'widget' ], 'faq' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_FAQ_Accordion_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/faq/faq.php', 'tab' => 'widget' ], 'blog_grid' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Blog_Grid__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/blog-grid/blog-grid.php', 'tab' => 'widget' ], 'video' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Video_Popup_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/video/video.php', 'tab' => 'widget' ], 'pricing_table' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Pricing_Table_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/pricing-table/pricing.php', 'tab' => 'widget' ], 'service_list' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Service_List_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/service-list/service-list.php', 'tab' => 'widget' ], 'navigation_menu' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Navigation_Menu_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/navigation-menu/navigation-menu.php', 'tab' => 'widget' ], 'page_title' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Page_Title_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/page-title/page-title.php', 'tab' => 'widget' ], 'button' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Button_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/button/button.php', 'tab' => 'widget' ], 'copyright' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Copyright_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/copyright/copyright.php', 'tab' => 'widget' ], 'process_grid' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Process_Grid_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/process-grid/process-grid.php', 'tab' => 'widget' ], 'process_list' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Process_lists_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/process-list/process-list.php', 'tab' => 'widget' ], 'social_share' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Social_Share_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/social-share/social-share.php', 'tab' => 'widget' ], 'social_icon' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Social_Icon_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/social-icon/social.php', 'tab' => 'widget' ], 'breadcrumb' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Breadcrumb_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/breadcrumb/breadcrumb.php', 'tab' => 'widget' ], 'domain_search' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Domain_Search_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/domain-search/domain-search.php', 'tab' => 'widget' ], 'image_comparison' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Before_After_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/image-comparison/img-before-after.php', 'tab' => 'widget' ], 'easy_offcanvas' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Offcanvas_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/offcanvas/offcanvas.php', 'tab' => 'widget' ], 'easy_table' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Table_Elementor_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/table/table-normal.php', 'tab' => 'widget' ], 'easy_scroll_to_top' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Scroll_To_Top_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/scroll-to-top/scroll.php', 'tab' => 'widget' ], 'easy_cf7' => [ 'class' => '\Easyel\EasyElements\Widgets\easyel__CF7_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/cf7/contact-cf7.php', 'tab' => 'widget' ], 'easy_gallery' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel__Gallery_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/gallery/gallery.php', 'tab' => 'widget' ], 'easy_progress' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Progress_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/progress/progress.php', 'tab' => 'widget' ], 'counter' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Counter_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/counter/counter.php', 'tab' => 'widget' ], 'countdown' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Count_Down_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/countdown/countdown.php', 'tab' => 'widget' ], 'excerpt' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Excerpt_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/excerpt/excerpt.php', 'tab' => 'widget' ], 'post_title' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Title_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-title/post-title.php', 'tab' => 'widget' ], 'post_content' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_content_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-content/post-content.php', 'tab' => 'widget' ], 'featured_image' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_free_Featured_Image_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/featured-image/featured-image.php', 'tab' => 'widget' ], 'post_meta' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Meta_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-meta/post-meta.php', 'tab' => 'widget' ], 'post_pagination' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Pagination_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-pagination/post-pagination.php', 'tab' => 'widget' ], 'post_comments' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Comments_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-comments/post-comments.php', 'tab' => 'widget' ], 'post_tags' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Tags_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-tag/post-tag.php', 'tab' => 'widget' ], 'post_author' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Post_Author_Info_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/post-author/post-author.php', 'tab' => 'widget' ], 'archive_post' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Archive_Post__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/archive-post/archive-post.php', 'tab' => 'widget', ], 'login_register' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Login_Register_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/login-register/login-register.php', 'tab' => 'widget', ], 'feature_list' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Feature_List__Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/feature-list/feature-list.php', 'tab' => 'widget', ], 'single_navigation_menu' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Single_Nav_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/single-nav/single-nav.php', 'tab' => 'widget', ], 'vertical_navigation_menu' => [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_vertical_Menu_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/vertical-menu/vertical-menu-widget.php', 'tab' => 'widget', ] ]; // WooCommerce-dependent widgets — only register when WooCommerce is active. if ( class_exists( 'WooCommerce' ) ) { $widgets['product_grid_lite'] = [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Product_Grid_Lite_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/product-grid-lite/product-grid-lite.php', 'tab' => 'widget', ]; // Skip if an older version of Easy Elements Pro still bundles the Mini Cart widget. $legacy_pro_mini_cart = defined( 'EASYELEMENTS_PRO_PATH' ) && file_exists( rtrim( EASYELEMENTS_PRO_PATH, '/\\' ) . '/widgets/mini-cart/mini-cart.php' ); if ( ! $legacy_pro_mini_cart ) { $widgets['mini_cart'] = [ 'class' => '\Easyel\EasyElements\Widgets\Easyel_Free_Mini_Cart_Widget', 'file' => EASYELEMENTS_DIR_PATH . '/widgets/mini-cart/mini-cart.php', 'tab' => 'widget', ]; } } foreach ( $widgets as $key => $data ) { $option_name = 'easy_element_' . $data['tab'] . '_' . $key; $enabled = get_option( $option_name, '1' ); if ( 1 !== ( int ) $enabled ) { continue; // Skip disabled widgets } if ( file_exists( $data['file'] ) ) { require_once $data['file']; if ( class_exists( $data['class'] ) ) { $widgets_manager->register( new $data['class']() ); } } } } public function easyel_setting_page_link( $links ) { $action_link = sprintf( '%s', esc_url( admin_url( 'admin.php?page=easy-elements-dashboard' ) ), esc_html__( 'Settings', 'easy-elements' ) ); array_push( $links, $action_link ); return $links; } } Easyel_Elements_Elementor_Extension::instance();