easyel_settings_ajax(); } public function easyel_settings_ajax( ) { // AJAX handler for saving minify js option add_action('wp_ajax_easy_elements_save_widget_setting', array( $this, "easy_elements_save_widget_setting" ) ); add_action('wp_ajax_easy_elements_bulk_action', array( $this, 'easy_elements_bulk_action') ); add_action('wp_ajax_easy_elements_save_global_extensions', array( $this, 'easy_elements_save_global_extensions') ) ; add_action('wp_ajax_easy_elements_save_global_extensions_bulk', array( $this, 'easy_elements_save_global_extensions_bulk') ) ; add_action('wp_ajax_easy_elements_bulk_group_action', [$this, 'easy_elements_bulk_group_action']); add_action('admin_enqueue_scripts', array( $this, 'easyel_elements_enqueue_admin_assets') ); add_action( 'admin_head', array( $this, 'easyel_hide_admin_notices' ) ); add_action('wp_ajax_easyel_save_user_data', array( $this, 'easyel_save_user_data_callback') ); add_action('wp_ajax_save_smooth_scroll_settings', array( $this, 'save_smooth_scroll_settings')); add_action('wp_ajax_nopriv_save_smooth_scroll_settings', array( $this, 'save_smooth_scroll_settings') ); add_action('wp_ajax_save_reading_progressbar_settings', array( $this, 'save_reading_progressbar_settings')); add_action('wp_ajax_nopriv_save_reading_progressbar_settings', array( $this, 'save_reading_progressbar_settings') ); add_action('wp_ajax_save_scroll_top_settings', array( $this, 'save_scroll_top_settings')); add_action('wp_ajax_nopriv_save_scroll_top_settings', array( $this, 'save_scroll_top_settings') ); add_action('wp_ajax_easyel_save_preloader_settings', array( $this, 'easyel_save_preloader_settings' ) ); } // Singleton get_instance public static function get_instance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } public function easyel_save_user_data_callback() { if ( ! current_user_can( 'manage_options' ) ) { wp_send_json_error( ['msg' => 'Unauthorized'], 403 ); } check_ajax_referer('easy_elements_nonce', 'security'); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $posted = $_POST['settings'] ?? []; $settings = map_deep( wp_unslash( $posted ), 'sanitize_text_field' ); update_option( 'easy_element_user_data', $settings ); wp_send_json_success(['message' => 'Saved successfully!']); } public function easyel_elements_settings_menu() { // Main Menu add_menu_page( __('Easy Elements', 'easy-elements'), __('Easy Elements', 'easy-elements'), 'manage_options', 'easy-elements-dashboard', array( $this, 'easyel_elements_settings_callback' ), 'dashicons-admin-generic', 59 ); global $submenu; // Main slug $slug = 'easy-elements-dashboard'; $submenu[$slug][] = [ __('Overview', 'easy-elements'), 'manage_options', 'admin.php?page='.$slug.'#overview' ]; $submenu[$slug][] = [ __('Widgets', 'easy-elements'), 'manage_options', 'admin.php?page='.$slug.'#widget' ]; $submenu[$slug][] = [ __('All Extensions', 'easy-elements'), 'manage_options', 'admin.php?page='.$slug.'#extensions' ]; if ( ! function_exists( 'is_plugin_active' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } if ( did_action( 'elementor/loaded' ) || is_plugin_active( 'elementor/elementor.php' ) ) { add_submenu_page( 'easy-elements-dashboard', __('Header & Footer', 'easy-elements'), __('Header & Footer', 'easy-elements'), 'manage_options', 'edit.php?post_type=ee-elementor-hf' ); } // Upload Custom Fonts Submenu add_submenu_page( 'easy-elements-dashboard', __('Upload Custom Fonts', 'easy-elements'), __('Upload Custom Fonts', 'easy-elements'), 'manage_options', 'easyel-custom-fonts', array( $this, 'easyel_custom_fonts_page_html' ) ); // Off Canvas Submenu add_submenu_page( 'easy-elements-dashboard', __('Off Canvas', 'easy-elements'), __('Off Canvas', 'easy-elements'), 'manage_options', 'edit.php?post_type=easy-offcanvas' ); $flush_needed = get_option( 'easyel_flush_rewrite_rules', true ); if ( $flush_needed ) { flush_rewrite_rules(); // Flush permalink update_option( 'easyel_flush_rewrite_rules', false ); // Mark as flushed } } public function easyel_settings_toggle_popup_modal( ) { ?>
'absint', 'default' => 0, ] ); // Cursor setting register register_setting( 'easyel_elements_extensions_group', 'easyel_enable_cursor', [ 'sanitize_callback' => 'absint', 'default' => 0, ] ); } public function easy_elements_bulk_group_action() { if (!current_user_can('manage_options')) { wp_send_json_error(__('Unauthorized', 'easy-elements')); } check_ajax_referer('easy_elements_bulk_action_nonce', 'nonce'); $group = isset($_POST['group']) ? sanitize_text_field(wp_unslash($_POST['group'])) : ''; $tab = isset($_POST['tab']) ? sanitize_text_field(wp_unslash($_POST['tab'])) : 'widget'; $status = isset($_POST['status']) && $_POST['status'] == 1 ? '1' : '0'; $available_elements = $this->easyel_elements_get_available_widgets(); $updated_count = 0; $is_pro_active = easyel_premium_addon_active(); foreach ($available_elements as $key => $widget) { if (!isset($widget['tab']) || $widget['tab'] !== $tab) { continue; } $group_slug = strtolower(trim($group)); $widget_group = isset( $widget['group'] ) ? $widget['group'] : 'General Widgets'; $widget_group_slug = strtolower(trim(str_replace(' ', '-', $widget_group ) ) ); if ($widget_group_slug !== $group_slug) { continue; } $option_name = 'easy_element_' . $tab . '_' . $key; if (!$is_pro_active && isset($widget['is_pro']) && $widget['is_pro']) { update_option($option_name, '0'); } else { update_option($option_name, $status); } $updated_count++; } wp_send_json_success([ 'message' => sprintf('%d widgets %s successfully', $updated_count, $status ? 'activated' : 'deactivated'), 'count' => $updated_count, 'is_pro_active' => $is_pro_active, 'status' => $status ]); } public function easy_elements_save_global_extensions_bulk() { if ( ! current_user_can( 'manage_options' ) ) { wp_send_json_error( __( 'Unauthorized', 'easy-elements' ) ); } check_ajax_referer( 'easy_elements_widget_settings_nonce', 'nonce' ); $tab = isset( $_POST['tab'] ) ? sanitize_text_field( wp_unslash( $_POST['tab'] ) ) : 'extensions'; $keys = isset( $_POST['keys'] ) ? array_map( 'sanitize_text_field', (array) wp_unslash( $_POST['keys'] ) ) : []; $status = isset( $_POST['status'] ) ? intval( wp_unslash( $_POST['status'] ) ) : 0; $group_slug = isset( $_POST['group'] ) ? sanitize_text_field( wp_unslash( $_POST['group'] ) ) : ''; if ( empty( $keys ) ) { wp_send_json_error( [ 'message' => __( 'No keys provided', 'easy-elements' ) ] ); } $settings = get_option( 'easy_element_' . $tab, [] ); foreach ( $keys as $key ) { $key = sanitize_text_field( $key ); $settings[ $key ] = $status; } update_option( 'easy_element_' . $tab, $settings ); if ( $group_slug ) { update_option( 'easy_element_group_' . $group_slug, $status ); } wp_send_json_success( [ 'message' => __( 'Bulk settings updated', 'easy-elements' ) ] ); } public function easy_elements_save_global_extensions() { if (!current_user_can('manage_options')) { wp_send_json_error(__('Unauthorized', 'easy-elements')); } check_ajax_referer('easy_elements_widget_settings_nonce', 'nonce'); $tab = isset( $_POST['tab'] ) ? sanitize_text_field( wp_unslash( $_POST['tab'] ) ) : 'extensions'; $key = isset($_POST['key']) ? sanitize_text_field( wp_unslash( $_POST['key'] )) : ''; $status = isset( $_POST['status'] ) ? intval( wp_unslash( $_POST['status'] ) ) : 0; if (!$key) { wp_send_json_error(['message' => __('Invalid key', 'easy-elements')]); } if ( function_exists( 'easyel_get_extension_fields' ) ) { $extension_fields = easyel_get_extension_fields(); if ( isset( $extension_fields[ $key ] ) && ! empty( $extension_fields[ $key ]['is_pro'] ) && ! easyel_premium_addon_active() ) { wp_send_json_error( [ 'message' => '', 'requires_addon' => true, ] ); } } $settings = get_option('easy_element_' . $tab, []); $settings[$key] = $status; update_option('easy_element_' . $tab, $settings); wp_send_json_success(['message' => __('Settings updated', 'easy-elements')]); } // AJAX handler for saving individual widget settings public function easy_elements_save_widget_setting() { if (!current_user_can('manage_options')) { wp_send_json_error(__('Unauthorized', 'easy-elements')); } check_ajax_referer('easy_elements_widget_settings_nonce', 'nonce'); $widget_key = isset($_POST['widget_key']) ? sanitize_text_field( wp_unslash($_POST['widget_key'] ) ) : ''; $status = isset($_POST['status']) && $_POST['status'] === '1' ? '1' : '0'; $tab_slug = isset($_POST['tab']) ? sanitize_text_field( wp_unslash( $_POST['tab'] ) ) : 'widget'; if ( empty( $widget_key ) ) { wp_send_json_error(['message' => __('Invalid widget key', 'easy-elements')]); } $available_elements = $this->easyel_elements_get_available_widgets(); if ( isset( $available_elements[ $widget_key ] ) && ! empty( $available_elements[ $widget_key ]['is_pro'] ) && ! easyel_premium_addon_active() ) { wp_send_json_error( [ 'message' => '', 'requires_addon' => true, ] ); } $option_name = 'easy_element_' . $tab_slug . '_' . $widget_key; update_option($option_name, $status); wp_send_json_success([ 'message' => __('Widget setting updated successfully', 'easy-elements'), 'status' => $status, ]); } // AJAX handler for bulk actions public function easy_elements_bulk_action() { if (!current_user_can('manage_options')) { wp_send_json_error(__('Unauthorized', 'easy-elements')); } check_ajax_referer('easy_elements_bulk_action_nonce', 'nonce'); $bulk_action = isset($_POST['bulk_action']) ? sanitize_text_field(wp_unslash($_POST['bulk_action'])) : ''; $tab = isset($_POST['tab']) ? sanitize_text_field( wp_unslash( $_POST['tab'] ) ) : 'widget'; $status = $bulk_action === 'activate_all' ? '1' : '0'; $available_elements = $this->easyel_elements_get_available_widgets(); $updated_count = 0; $is_pro_active = easyel_premium_addon_active(); foreach ($available_elements as $key => $widget) { if (isset($widget['tab']) && $widget['tab'] === $tab) { $option_name = 'easy_element_' . $tab . '_' . $key; if (!$is_pro_active && isset($widget['is_pro']) && $widget['is_pro']) { update_option($option_name, '0'); } else { $status = $bulk_action === 'activate_all' ? '1' : '0'; update_option($option_name, $status); } } } wp_send_json_success([ 'message' => sprintf('%d widgets %s successfully', $updated_count, $status ? 'activated' : 'deactivated'), 'count' => $updated_count, 'is_pro_active' => $is_pro_active ]); } public function easyel_elements_settings_callback() { $available_elements = $this->easyel_elements_get_available_widgets(); $easyel_tabs = [ 'overview' => __('Overview', 'easy-elements'), 'widget' => __('All Widgets', 'easy-elements'), 'extensions' => __('All Extensions', 'easy-elements'), 'advsettings' => __('Advanced Settings', 'easy-elements'), 'userData' => __('API Settings', 'easy-elements'), ]; // Extensions (e.g. the companion Pro plugin) can append tabs here. $easyel_tabs = (array) apply_filters( 'easyel_all_tab_list', $easyel_tabs ); ?> admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('easy_elements_nonce'), 'widget_settings_nonce' => wp_create_nonce('easy_elements_widget_settings_nonce'), 'bulk_action_nonce' => wp_create_nonce('easy_elements_bulk_action_nonce'), 'advance_settings_nonce' => wp_create_nonce('easy_elements_save_advance_settings_nonce'), 'js_animation_nonce' => wp_create_nonce('easyel_js_animation_nonce'), 'strings' => [ 'confirm_activate_all' => __('Are you sure you want to activate all widgets?', 'easy-elements'), 'confirm_deactivate_all' => __('Are you sure you want to deactivate all widgets?', 'easy-elements'), 'processing' => __('Processing...', 'easy-elements'), 'saving' => __('Saving...', 'easy-elements'), 'saved' => __('Saved!', 'easy-elements'), 'error' => __('Error!', 'easy-elements'), 'updated' => __('Updated!', 'easy-elements'), ] ]); } function easyel_elements_get_available_widgets() { $widgets = [ 'heading' => [ 'icon' => 'easyelIcon-heading', 'title' => 'Heading', 'description' => 'Add customizable headings with style options.', 'demo_url' => 'https://wpeasyelements.com/heading/', 'docx_url' => 'https://wpeasyelements.com/docs/heading/', 'is_pro' => false, 'tab' => 'widget', ], 'clients_logo' => [ 'icon' => 'easyelIcon-clients-logo-grid', 'title' => 'Clients Logo Grid', 'description' => 'Showcase client logos in a neat grid layout.', 'demo_url' => 'https://wpeasyelements.com/clients-logo-grid/', 'docx_url' => 'https://wpeasyelements.com/docs/clients-logo-grid', 'is_pro' => false, 'tab' => 'widget', ], 'clients_logo_slider' => [ 'icon' => 'easyelIcon-clients-logo-slider', 'title' => 'Clients Logo Slider', 'description' => 'Display client logos in a slider format.', 'demo_url' => 'https://wpeasyelements.com/clients-logo-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/clients-logo-slider/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'simple_tab' => [ 'icon' => 'easyelIcon-tab', 'title' => 'Tab', 'description' => 'Add simple tab content.', 'demo_url' => 'https://wpeasyelements.com/tab', 'docx_url' => 'https://wpeasyelements.com/docs/tab', 'is_pro' => false, 'tab' => 'widget', ], 'tab_advance' => [ 'icon' => 'easyelIcon-tab', 'title' => 'Advanced Tab', 'description' => 'Create advanced tab content.', 'demo_url' => 'https://wpeasyelements.com/advanced-tab/', 'docx_url' => 'https://wpeasyelements.com/docs/advanced-tab/', 'is_pro' => true, 'tab' => 'widget', ], 'testimonials' => [ 'icon' => 'easyelIcon-testimonials-grid', 'title' => 'Testimonials Grid', 'description' => 'Show testimonials in a grid format.', 'demo_url' => 'https://wpeasyelements.com/testimonials-grid', 'docx_url' => 'https://wpeasyelements.com/docs/testimonials-grid', 'is_pro' => false, 'tab' => 'widget', ], 'testimonials_slider' => [ 'icon' => 'easyelIcon-testimonials-slider', 'title' => 'Testimonials Slider', 'description' => 'Display testimonials in a slider format.', 'demo_url' => 'https://wpeasyelements.com/testimonials-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/testimonials-slider/', 'is_pro' => true, 'tab' => 'widget', ], 'image_carousel' => [ 'icon' => 'easyelIcon-image-carousel', 'title' => 'Image Carousel', 'description' => 'Create an image slider with multiple images.', 'demo_url' => 'https://wpeasyelements.com/image-carousel/', 'docx_url' => 'https://wpeasyelements.com/docs/image-carousel', 'is_pro' => true, 'tab' => 'widget', ], 'image_reveal' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Reveal Image', 'description' => 'reveal Image Here', 'demo_url' => 'https://wpeasyelements.com/reveal-image/', 'docx_url' => 'https://wpeasyelements.com/docs/reveal-image/', 'is_pro' => true, 'tab' => 'widget', ], 'rotate_text' => [ 'icon' => 'easyelIcon-heading', 'title' => 'Rotate Text', 'description' => 'rotate text here', 'demo_url' => 'https://wpeasyelements.com/rotate-text/', 'docx_url' => 'https://wpeasyelements.com/docs/rotate-text/', 'is_pro' => true, 'tab' => 'widget', ], 'icon_box' => [ 'icon' => 'easyelIcon-iconbox', 'title' => 'Info Box', 'description' => 'Display content with an icon.', 'demo_url' => 'https://wpeasyelements.com/info-box', 'docx_url' => 'https://wpeasyelements.com/docs/info-box', 'is_pro' => false, 'tab' => 'widget', ], 'process_grid' => [ 'icon' => 'easyelIcon-process-grid', 'title' => 'Process Grid', 'description' => 'Show process steps in a grid format.', 'demo_url' => 'https://wpeasyelements.com/process-grid', 'docx_url' => 'https://wpeasyelements.com/docs/process-grid', 'is_pro' => false, 'tab' => 'widget', ], 'process_slider' => [ 'icon' => 'easyelIcon-process-slider', 'title' => 'Process Slider', 'description' => 'Show process steps in a slider.', 'demo_url' => 'https://wpeasyelements.com/process-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/process-slider/', 'is_pro' => true, 'tab' => 'widget', ], 'team_grid' => [ 'icon' => 'easyelIcon-team-grid', 'title' => 'Team Grid', 'description' => 'Display team members in a grid format.', 'demo_url' => 'https://wpeasyelements.com/team-grid', 'docx_url' => 'https://wpeasyelements.com/docs/team-grid', 'is_pro' => false, 'tab' => 'widget', ], 'team_slider' => [ 'icon' => 'easyelIcon-team-slider', 'title' => 'Team Slider', 'description' => 'Showcase team members in a slider format.', 'demo_url' => 'https://wpeasyelements.com/team-slider', 'docx_url' => 'https://wpeasyelements.com/docs/team-slider', 'is_pro' => true, 'tab' => 'widget', ], 'image_comparison' => [ 'icon' => 'easyelIcon-image-carousel', 'title' => 'Image Comparison', 'description' => 'Create an Image Comparison.', 'demo_url' => 'https://wpeasyelements.com/image-comparison/', 'docx_url' => 'https://wpeasyelements.com/docs/image-comparison/', 'is_pro' => false, 'tab' => 'widget', ], 'contact_box' => [ 'icon' => 'easyelIcon-contact-box', 'title' => 'Contact Box', 'description' => 'Contact Box.', 'demo_url' => 'https://wpeasyelements.com/contact-box', 'docx_url' => 'https://wpeasyelements.com/docs/contact-box', 'is_pro' => false, 'tab' => 'widget', ], 'icon_box_slider' => [ 'icon' => 'easyelIcon-icon-box-slider', 'title' => 'Info Box Slider', 'description' => 'Info Box Slider.', 'demo_url' => 'https://wpeasyelements.com/info-box-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/info-box-slider/', 'is_pro' => true, 'tab' => 'widget', ], 'timeline_slider' => [ 'icon' => 'easyelIcon-timeline-slider', 'title' => 'Timeline Slider', 'description' => 'Timeline Slider.', 'demo_url' => 'https://wpeasyelements.com/timeline-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/timeline-slider', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'faq' => [ 'icon' => 'easyelIcon-faq-1', 'title' => 'FAQ', 'description' => 'FAQ.', 'demo_url' => 'https://wpeasyelements.com/faq', 'docx_url' => 'https://wpeasyelements.com/docs/faq', 'is_pro' => false, 'tab' => 'widget', ], 'blog_grid' => [ 'icon' => 'easyelIcon-post-grid', 'title' => 'Post Grid', 'description' => 'Post.', 'demo_url' => 'https://wpeasyelements.com/post-grid', 'docx_url' => 'https://wpeasyelements.com/docs/post-grid', 'is_pro' => false, 'tab' => 'widget', ], 'post_slider' => [ 'icon' => 'easyelIcon-post-slider', 'title' => 'Post Slider', 'description' => 'Post Slider.', 'demo_url' => 'https://wpeasyelements.com/post-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/post-slider/', 'is_pro' => true, 'tab' => 'widget', ], 'post_list' => [ 'icon' => 'easyelIcon-post-grid', 'title' => 'Post List', 'description' => 'Post List.', 'demo_url' => 'https://wpeasyelements.com/post-list/', 'docx_url' => 'https://wpeasyelements.com/docs/post-list/', 'is_pro' => true, 'tab' => 'widget', ], 'easy_cf7' => [ 'icon' => 'easyelIcon-contact-form', 'title' => 'Contact Form 7', 'description' => 'Contact form 7.', 'demo_url' => 'https://wpeasyelements.com/contact-form-7', 'docx_url' => 'https://wpeasyelements.com/docs/contact-form-7', 'is_pro' => false, 'group' => 'Form Widgets', 'tab' => 'widget', ], 'video' => [ 'icon' => 'easyelIcon-video', 'title' => 'Video', 'description' => 'Video.', 'demo_url' => 'https://wpeasyelements.com/video', 'docx_url' => 'https://wpeasyelements.com/docs/video', 'is_pro' => false, 'tab' => 'widget', ], 'pricing_table' => [ 'icon' => 'easyelIcon-pricing-table', 'title' => 'Pricing Table', 'description' => 'Pricing Table.', 'demo_url' => 'https://wpeasyelements.com/pricing-table', 'docx_url' => 'https://wpeasyelements.com/docs/pricing-table', 'is_pro' => false, 'group' => 'Marketing Widgets', 'tab' => 'widget', ], 'pricing_list' => [ 'icon' => 'easyelIcon-pricing-list', 'title' => 'Pricing List', 'description' => 'Pricing List.', 'demo_url' => 'https://wpeasyelements.com/pricing-list/', 'docx_url' => 'https://wpeasyelements.com/docs/pricing-list/', 'is_pro' => true, 'group' => 'Marketing Widgets', 'tab' => 'widget', ], 'pricing_tab' => [ 'icon' => 'easyelIcon-pricing-table', 'title' => 'Pricing Tab', 'description' => 'Pricing Tab.', 'demo_url' => 'https://wpeasyelements.com/pricing-tab/', 'docx_url' => 'https://wpeasyelements.com/docs/pricing-tab/', 'is_pro' => true, 'group' => 'Marketing Widgets', 'tab' => 'widget', ], 'service_list' => [ 'icon' => 'easyelIcon-service-list', 'title' => 'Service List', 'description' => 'Service List.', 'demo_url' => 'https://wpeasyelements.com/service-list', 'docx_url' => 'https://wpeasyelements.com/docs/service-list/', 'is_pro' => false, 'tab' => 'widget', ], 'advance_service' => [ 'icon' => 'easyelIcon-service-list', 'title' => 'Advance Service', 'description' => 'Advance Service.', 'demo_url' => 'https://wpeasyelements.com/advance-service', 'docx_url' => 'https://wpeasyelements.com/docs/advance-service/', 'is_pro' => true, 'tab' => 'widget', ], 'service_card' => [ 'icon' => 'easyelIcon-service-list', 'title' => 'Service Card', 'description' => 'Service Card.', 'demo_url' => 'https://wpeasyelements.com/service-card', 'docx_url' => 'https://wpeasyelements.com/docs/service-card/', 'is_pro' => true, 'tab' => 'widget', ], 'feature_list' => [ 'icon' => 'easyelIcon-service-list', 'title' => 'Feature List', 'description' => 'Feature List.', 'demo_url' => 'https://wpeasyelements.com/features-list', 'docx_url' => 'https://wpeasyelements.com/docs/features-list/', 'is_pro' => false, 'tab' => 'widget', ], 'process_list' => [ 'icon' => 'easyelIcon-process-list', 'title' => 'Process List', 'description' => 'Process List.', 'demo_url' => 'https://wpeasyelements.com/process-list/', 'docx_url' => 'https://wpeasyelements.com/docs/process-list/', 'is_pro' => false, 'tab' => 'widget', ], 'marquee_logo' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Marquee', 'description' => 'Marquee.', 'demo_url' => 'https://wpeasyelements.com/marquee/', 'docx_url' => 'https://wpeasyelements.com/docs/marquee/', 'is_pro' => true, 'tab' => 'widget', ], 'button' => [ 'icon' => 'easyelIcon-button', 'title' => 'Button', 'description' => 'Button.', 'demo_url' => 'https://wpeasyelements.com/button/', 'docx_url' => 'https://wpeasyelements.com/docs/button', 'is_pro' => false, 'tab' => 'widget', ], 'copyright' => [ 'icon' => 'easyelIcon-copyright', 'title' => 'Copyright', 'description' => 'Display copyright text with auto-updating year for the footer.', 'demo_url' => 'https://wpeasyelements.com/copyright/', 'docx_url' => 'https://wpeasyelements.com/docs/copyright', 'is_pro' => false, 'tab' => 'widget', ], 'social_share' => [ 'icon' => 'easyelIcon-social-share', 'title' => 'Social Share', 'description' => 'Social Share.', 'demo_url' => 'https://wpeasyelements.com/docs/social-share/', 'docx_url' => 'https://wpeasyelements.com/docs/social-share/', 'is_pro' => false, 'tab' => 'widget', ], 'social_icon' => [ 'icon' => 'easyelIcon-social-icons', 'title' => 'Social Icon', 'description' => 'Social Icon.', 'demo_url' => 'https://wpeasyelements.com/social-icon', 'docx_url' => 'https://wpeasyelements.com/docs/social-icon', 'is_pro' => false, 'tab' => 'widget', ], 'breadcrumb' => [ 'icon' => 'easyelIcon-breadcumb', 'title' => 'Breadcrumb', 'description' => 'Breadcrumb.', 'demo_url' => 'https://wpeasyelements.com/breadcrumb', 'docx_url' => 'https://wpeasyelements.com/docs/breadcrumb', 'is_pro' => false, 'tab' => 'widget', ], 'easy_slider' => [ 'icon' => 'easyelIcon-slider', 'title' => 'Slider', 'description' => 'Slider.', 'demo_url' => 'https://wpeasyelements.com/slider', 'docx_url' => 'https://wpeasyelements.com/docs/slider', 'is_pro' => true, 'tab' => 'widget', ], 'image_accordion' => [ 'icon' => 'easyelIcon-image-accordion', 'title' => 'Image Accordion', 'description' => 'Image Accordion', 'demo_url' => 'https://wpeasyelements.com/image-accordion/', 'docx_url' => 'https://wpeasyelements.com/docs/image-accordion/', 'is_pro' => true, 'tab' => 'widget', ], 'domain_search' => [ 'icon' => 'easyelIcon-domain-search', 'title' => 'Domain Search', 'description' => 'Domain Search.', 'demo_url' => 'https://wpeasyelements.com/domain-search/', 'docx_url' => 'https://wpeasyelements.com/docs/domain-search/', 'is_pro' => false, 'group' => 'Form Widgets', 'tab' => 'widget', ], 'featured_project' => [ 'icon' => 'easyelIcon-custom-projects', 'title' => 'Custom Projects', 'description' => 'Custom Projects.', 'demo_url' => '#', 'docx_url' => '#', 'is_pro' => true, 'tab' => 'widget', ], 'advance_button' => [ 'icon' => 'easyelIcon-button', 'title' => 'Advance Button', 'description' => 'Advance Button.', 'demo_url' => 'https://wpeasyelements.com/advance-button/', 'docx_url' => 'https://wpeasyelements.com/docs/advance-button', 'is_pro' => true, 'tab' => 'widget', ], 'hr_image_scroll' => [ 'icon' => 'easyelIcon-image-horizontal-scroll', 'title' => 'Horizontal Scroll', 'description' => 'Horizontal Scroll.', 'demo_url' => 'https://wpeasyelements.com/horizontal-scroll/', 'docx_url' => 'https://wpeasyelements.com/docs/horizontal-scroll/', 'is_pro' => true, 'tab' => 'widget', ], 'scrolltrigger_title' => [ 'icon' => 'easyelIcon-title-scrolltrigger', 'title' => 'Content ScrollTrigger', 'description' => 'Content ScrollTrigger.', 'demo_url' => 'https://wpeasyelements.com/horizontal-scroll/', 'docx_url' => 'https://wpeasyelements.com/horizontal-scroll/', 'is_pro' => true, 'tab' => 'widget', ], 'Flip_Box' => [ 'icon' => 'easyelIcon-flip-box', 'title' => 'Flip Box', 'description' => 'Flip Box.', 'demo_url' => 'https://wpeasyelements.com/flip-box', 'docx_url' => 'https://wpeasyelements.com/docs/flip-box', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'easy_offcanvas' => [ 'icon' => 'easyelIcon-canvas', 'title' => 'Offcanvas', 'description' => 'Offcanvas.', 'demo_url' => 'https://wpeasyelements.com/offcanvas', 'docx_url' => 'https://wpeasyelements.com/docs/offcanvas', 'is_pro' => false, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'site_logo' => [ 'icon' => 'easyelIcon-site-logo', 'title' => 'Site Logo', 'description' => 'Display your website logo easily with this widget.', 'demo_url' => 'https://wpeasyelements.com/site-logo/', 'docx_url' => 'https://wpeasyelements.com/docs/site-logo/', 'is_pro' => false, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'search' => [ 'icon' => 'easyelIcon-search', 'title' => 'Simple Search', 'description' => 'Search All Content.', 'demo_url' => 'https://wpeasyelements.com/search', 'docx_url' => 'https://wpeasyelements.com/docs/search', 'is_pro' => false, 'group' => 'Form Widgets', 'tab' => 'widget', ], 'navigation_menu' => [ 'icon' => 'easyelIcon-navigation', 'title' => 'Navigation Menu', 'description' => 'Navigation Menu.', 'demo_url' => 'https://wpeasyelements.com/', 'docx_url' => '#', 'is_pro' => false, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'single_navigation_menu' => [ 'icon' => 'easyelIcon-navigation', 'title' => 'Single Navigation Menu', 'description' => 'SingleNavigation Menu.', 'demo_url' => 'https://wpeasyelements.com/single-navigation/', 'docx_url' => 'https://www.youtube.com/watch?v=d-lz-EfK9eA', 'is_pro' => false, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'mega_menu_widget' => [ 'icon' => 'easyelIcon-navigation', 'title' => 'Mega Menu', 'description' => 'Mega Menu.', 'demo_url' => 'https://wpeasyelements.com/megamenu-builder/', 'docx_url' => 'https://wpeasyelements.com/docs/megamenu-builder/', 'is_pro' => true, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'vertical_navigation_menu' => [ 'icon' => 'easyelIcon-navigation', 'title' => 'Vertical Menu', 'description' => 'Vertical Menu.', 'demo_url' => 'https://wpeasyelements.com/vertical-menu/', 'docx_url' => 'https://wpeasyelements.com/docs/vertical-menu/', 'is_pro' => false, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'page_title' => [ 'icon' => 'easyelIcon-page-title', 'title' => 'Page Title', 'description' => 'Page Title.', 'demo_url' => 'https://wpeasyelements.com/docs/page-title/', 'docx_url' => 'https://wpeasyelements.com/docs/page-title/', 'is_pro' => false, 'group' => 'Header & Footer Widget', 'tab' => 'widget', ], 'post_tags' => [ 'icon' => 'easyelIcon-post-tag', 'title' => 'Current Post Tags', 'description' => 'Current Post Tags.', 'demo_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/#single__link', 'docx_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'post_author' => [ 'icon' => 'easyelIcon-author', 'title' => 'Post Author Info', 'description' => 'Post Author Info.', 'demo_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/#single__link', 'docx_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'post_title' => [ 'icon' => 'easyelIcon-post-title', 'title' => 'Post Title', 'description' => 'Post Title.', 'demo_url' => 'https://wpeasyelements.com/docs/post-title/', 'docx_url' => 'https://wpeasyelements.com/docs/post-title/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'post_content' => [ 'icon' => 'easyelIcon-post-content', 'title' => 'Post Content', 'description' => 'Post Content.', 'demo_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/', 'docx_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'excerpt' => [ 'icon' => 'easyelIcon-post-excerpt', 'title' => 'Post Excerpt', 'description' => 'Post Excerpt.', 'demo_url' => 'https://wpeasyelements.com/docs/post-excerpt/', 'docx_url' => 'https://wpeasyelements.com/docs/post-excerpt/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'related_post' => [ 'icon' => 'easyelIcon-related-post', 'title' => 'Related Post', 'description' => 'Related Post.', 'demo_url' => 'https://wpeasyelements.com/docs/related-post/', 'docx_url' => 'https://wpeasyelements.com/docs/related-post/', 'is_pro' => true, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'post_pagination' => [ 'icon' => 'easyelIcon-pagination', 'title' => 'Post Pagination', 'description' => 'Post Pagination.', 'demo_url' => 'https://wpeasyelements.com/docs/post-pagination/', 'docx_url' => 'https://wpeasyelements.com/docs/post-pagination/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'post_meta' => [ 'icon' => 'easyelIcon-meta', 'title' => 'Post Meta', 'description' => 'Post Meta.', 'demo_url' => 'https://wpeasyelements.com/docs/post-meta/', 'docx_url' => 'https://wpeasyelements.com/docs/post-meta/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'post_comments' => [ 'icon' => 'easyelIcon-comments', 'title' => 'Post Comments', 'description' => 'Post Comments.', 'demo_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/#single__link', 'docx_url' => 'https://wpeasyelements.com/maximize-value-from-your-marketing-subscription/#single__link', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'featured_image' => [ 'icon' => 'easyelIcon-image-carousel', 'title' => 'Featured Image', 'description' => 'Featured Image.', 'demo_url' => 'https://wpeasyelements.com/docs/featured-image/', 'docx_url' => 'https://wpeasyelements.com/docs/featured-image/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'easy_scroll_to_top' => [ 'icon' => 'easyelIcon-scroll-top', 'title' => 'Scroll Top', 'description' => 'Scroll Top.', 'demo_url' => 'https://wpeasyelements.com/docs/scroll-to-top/', 'docx_url' => 'https://wpeasyelements.com/docs/scroll-to-top/', 'is_pro' => false, 'group' => 'Theme Builder Widget', 'tab' => 'widget', ], 'easy_table' => [ 'icon' => 'easyelIcon-clients-logo-grid', 'title' => 'Table', 'description' => 'Table.', 'demo_url' => 'https://wpeasyelements.com/table', 'docx_url' => 'https://wpeasyelements.com/docs/table', 'is_pro' => false, 'tab' => 'widget', ], 'advance_image' => [ 'icon' => 'easyelIcon-image-carousel', 'title' => 'Advance Image', 'description' => 'Advance Image Here.', 'demo_url' => 'https://wpeasyelements.com/advance-image/', 'docx_url' => 'https://wpeasyelements.com/docs/advance-image/', 'is_pro' => true, 'group' => 'Animations', 'tab' => 'widget', ], 'bmi_calculator' => [ 'icon' => 'easyelIcon-calculator', 'title' => 'BMI Calculator', 'description' => 'BMI Calculator.', 'demo_url' => 'https://wpeasyelements.com/bmi-calculator/', 'docx_url' => 'https://wpeasyelements.com/docs/bmi-calculator/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'typewriter' => [ 'icon' => 'easyelIcon-heading', 'title' => 'Typewriter', 'description' => 'Animated typewriter text effect.', 'demo_url' => 'https://wpeasyelements.com/typewriter/', 'docx_url' => 'https://wpeasyelements.com/docs/typewriter/', 'is_pro' => true, 'group' => 'Animations', 'tab' => 'widget', ], 'animated_title' => [ 'icon' => 'easyelIcon-animated-title', 'title' => 'Animated Title', 'description' => 'Animated title text effect.', 'demo_url' => 'https://wpeasyelements.com/animated-title/', 'docx_url' => 'https://wpeasyelements.com/docs/', 'is_pro' => true, 'group' => 'Animations', 'tab' => 'widget', ], 'easytext_animation' => [ 'icon' => 'easyelIcon-heading', 'title' => 'Animated Text', 'description' => 'Animated text animation effect.', 'demo_url' => 'https://wpeasyelements.com/text-animation/', 'docx_url' => 'https://wpeasyelements.com/docs/text-animation/', 'is_pro' => true, 'group' => 'Animations', 'tab' => 'widget', ], 'easy_feature' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Hover Image Box', 'description' => 'Hover image box content.', 'demo_url' => 'https://wpeasyelements.com/hover-image-box/', 'docx_url' => 'https://wpeasyelements.com/docs/hover-image-box/', 'is_pro' => true, 'tab' => 'widget', ], 'easy_gallery' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Simple Gallery', 'description' => 'Gallery', 'demo_url' => 'https://wpeasyelements.com/simple-gallery/', 'docx_url' => 'https://wpeasyelements.com/docs/simple-gallery/', 'is_pro' => false, 'tab' => 'widget', ], 'image_gallery_filter' => [ 'icon' => 'easyelIcon-filterable-gallery', 'title' => 'Filterable Gallery', 'description' => 'filterable Gallery', 'demo_url' => 'https://wpeasyelements.com/gallery-filter/', 'docx_url' => 'https://wpeasyelements.com/gallery-filter/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'masonry_gallery' => [ 'icon' => 'easyelIcon-filterable-gallery', 'title' => 'Masonry Gallery', 'description' => 'Masonry Gallery', 'demo_url' => 'https://wpeasyelements.com/masonry-gallery/', 'docx_url' => 'https://wpeasyelements.com/masonry-gallery/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'portfolio_pro' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Portfolio', 'description' => 'Portfolio', 'demo_url' => 'https://wpeasyelements.com/portfolio/', 'docx_url' => 'https://wpeasyelements.com/docs/portfolio/', 'is_pro' => true, 'tab' => 'widget', ], 'portfolio_filter' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Portfolio Filter', 'description' => 'Portfolio filter', 'demo_url' => 'https://wpeasyelements.com/portfolio-filter/', 'docx_url' => 'https://wpeasyelements.com/docs/portfolio-filter/', 'is_pro' => true, 'tab' => 'widget', ], 'protected_content' => [ 'icon' => 'easyelIcon-protected-content', 'title' => 'Protected Content', 'description' => 'This Widget is protected content', 'demo_url' => 'https://wpeasyelements.com/protected-contents/', 'docx_url' => 'https://wpeasyelements.com/docs/protected-contents/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'advanced_search' => [ 'icon' => 'easyelIcon-advance-search', 'title' => 'Advanced Search', 'description' => 'This Widget is advanced search', 'demo_url' => 'https://wpeasyelements.com/advanced-search/', 'docx_url' => 'https://wpeasyelements.com/docs/advanced-search/', 'is_pro' => true, 'tab' => 'widget', ], 'enable_image_hover_effect' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'Image Hover Effect', 'description' => 'This Widget is image hover effect', 'demo_url' => 'https://wpeasyelements.com/image-hover-effect/', 'docx_url' => 'https://wpeasyelements.com/docs/image-hover-effect/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'image_hotspot' => [ 'icon' => 'easyelIcon-marquee-logo', 'title' => 'image Hotspot', 'description' => 'This Widget is Image Hotspot', 'demo_url' => 'https://wpeasyelements.com/image-hotspot/', 'docx_url' => 'https://wpeasyelements.com/docs/image-hotspot/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'hr_image_scroll' => [ 'icon' => 'easyelIcon-image-horizontal-scroll', 'title' => 'ScrollTrigger', 'description' => 'This Widget is image hover effect', 'demo_url' => 'https://wpeasyelements.com/horizontal-scroll/', 'docx_url' => 'https://wpeasyelements.com/docs/horizontal-scroll/', 'is_pro' => true, 'group' => 'Animations', 'tab' => 'widget', ], 'archive_post' => [ 'icon' => 'easyelIcon-post-grid', 'title' => 'Archive Post', 'description' => 'This Widget is archive post widget', 'demo_url' => 'https://wpeasyelements.com/post-grid/', 'docx_url' => 'https://wpeasyelements.com/docs/post-grid/', 'is_pro' => false, 'tab' => 'widget', ], 'category_list' => [ 'icon' => 'easyelIcon-post-grid', 'title' => 'Category List', 'description' => 'Show categories or any taxonomy in a list or grid layout.', 'demo_url' => 'https://wpeasyelements.com/', 'docx_url' => 'https://wpeasyelements.com/docs/', 'is_pro' => false, 'tab' => 'widget', ], 'counter' => [ 'icon' => 'easyelIcon-counter', 'title' => 'Counter', 'description' => 'This is a widget that counts up.', 'demo_url' => 'https://wpeasyelements.com/counter/', 'docx_url' => 'https://wpeasyelements.com/docs/counter/', 'is_pro' => false, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'countdown' => [ 'icon' => 'easyelIcon-countdown', 'title' => 'Countdown', 'description' => 'This is a countdown widget.', 'demo_url' => 'https://wpeasyelements.com/countdown/', 'docx_url' => 'https://wpeasyelements.com/docs/countdown/', 'is_pro' => false, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'easy_progress' => [ 'icon' => 'easyelIcon-progress-bar', 'title' => 'Progress Bar', 'description' => 'This is a Progress bar widget.', 'demo_url' => 'https://wpeasyelements.com/progressbar/', 'docx_url' => 'https://wpeasyelements.com/docs/progressbar/', 'is_pro' => false, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'facebook_feed' => [ 'icon' => 'easyelIcon-facebook-feed', 'title' => 'Facebook Feed', 'description' => 'This Widget is facebook feeds', 'demo_url' => 'https://wpeasyelements.com/facebook-feed/', 'docx_url' => 'https://wpeasyelements.com/docs/facebook-feed/', 'is_pro' => true, 'group' => 'Social Media Feeds', 'tab' => 'widget', ], 'instagram_feed' => [ 'icon' => 'easyelIcon-instagram-feed', 'title' => 'Instagram Feed', 'description' => 'This Widget is instagram feeds', 'demo_url' => 'https://wpeasyelements.com/instagram-feed/', 'docx_url' => 'https://wpeasyelements.com/docs/instagram-feed/', 'is_pro' => true, 'group' => 'Social Media Feeds', 'tab' => 'widget', ], 'login_register' => [ 'icon' => 'easyelIcon-login', 'title' => 'Login / Register', 'description' => 'This Widget is login and register form', 'demo_url' => 'https://wpeasyelements.com/register/', 'docx_url' => 'https://wpeasyelements.com/docs/login-register/', 'is_pro' => false, 'group' => 'Form Widgets', 'tab' => 'widget', ], 'table_of_content' => [ 'icon' => 'easyelIcon-pricing-list', 'title' => 'Table Of Content', 'description' => 'This is a widget that creates a table of content.', 'demo_url' => 'https://wpeasyelements.com/table-of-content/', 'docx_url' => 'https://wpeasyelements.com/docs/table-of-content/', 'is_pro' => true, 'group' => 'Creative Widgets', 'tab' => 'widget', ], 'product_grid_lite' => [ 'icon' => 'easyelIcon-process-grid', 'title' => 'Product Grid Lite', 'description' => 'Display WooCommerce products in a responsive grid (lite version).', 'demo_url' => 'https://wpeasyelements.com/product-grid-lite/', 'docx_url' => 'https://wpeasyelements.com/docs/product-grid-lite/', 'is_pro' => false, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_grid' => [ 'icon' => 'easyelIcon-process-grid', 'title' => 'Product Grid', 'description' => 'Advanced WooCommerce product grid with filter tabs, quick view, compare and wishlist.', 'demo_url' => 'https://wpeasyelements.com/product-grid/', 'docx_url' => 'https://wpeasyelements.com/docs/product-grid/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_list' => [ 'icon' => 'easyelIcon-process-list', 'title' => 'Product List', 'description' => 'Display WooCommerce products in a list layout with details and actions.', 'demo_url' => 'https://wpeasyelements.com/product-list/', 'docx_url' => 'https://wpeasyelements.com/docs/product-list/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_slider' => [ 'icon' => 'easyelIcon-process-slider', 'title' => 'Product Slider', 'description' => 'Showcase WooCommerce products in a responsive slider/carousel.', 'demo_url' => 'https://wpeasyelements.com/product-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/product-slider/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_categories' => [ 'icon' => 'easyelIcon-filterable-gallery', 'title' => 'Product Categories', 'description' => 'Display WooCommerce product categories in a clean grid.', 'demo_url' => 'https://wpeasyelements.com/product-categories/', 'docx_url' => 'https://wpeasyelements.com/docs/product-categories/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_categories_slider' => [ 'icon' => 'easyelIcon-filterable-gallery', 'title' => 'Product Categories Slider', 'description' => 'Showcase WooCommerce product categories in a slider.', 'demo_url' => 'https://wpeasyelements.com/product-categories-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/product-categories-slider/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_category_tab' => [ 'icon' => 'easyelIcon-process-grid', 'title' => 'Product Category Tab', 'description' => 'Tabbed WooCommerce categories with a banner and product cards per tab.', 'demo_url' => 'https://wpeasyelements.com/product-category-tab/', 'docx_url' => 'https://wpeasyelements.com/docs/product-category-tab/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_collections' => [ 'icon' => 'easyelIcon-process-grid', 'title' => 'Product Collection', 'description' => 'Curate WooCommerce product collections as a grid.', 'demo_url' => 'https://wpeasyelements.com/product-collections/', 'docx_url' => 'https://wpeasyelements.com/docs/product-collections/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'product_collections_slider' => [ 'icon' => 'easyelIcon-process-slider', 'title' => 'Product Collections Slider', 'description' => 'Curate WooCommerce product collections as a slider.', 'demo_url' => 'https://wpeasyelements.com/product-collections-slider/', 'docx_url' => 'https://wpeasyelements.com/docs/product-collections-slider/', 'is_pro' => true, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], 'mini_cart' => [ 'icon' => 'easyelIcon-canvas', 'title' => 'Mini Cart', 'description' => 'Compact WooCommerce mini cart with dropdown preview.', 'demo_url' => 'https://wpeasyelements.com/mini-cart/', 'docx_url' => 'https://wpeasyelements.com/docs/mini-cart/', 'is_pro' => false, 'group' => 'WooCommerce Widgets', 'tab' => 'widget', ], ]; $feature_widget_map = [ 'enable_megamenu_builder' => 'mega_menu_widget', ]; // Condition apply if ( function_exists( 'easyel_element_is_enabled' ) ) { foreach ( $feature_widget_map as $feature => $widget_key ) { if ( ! easyel_element_is_enabled( $feature ) ) { unset( $widgets[ $widget_key ] ); } } } return apply_filters( 'easyel_available_widgets', $widgets ); } /** * Admin page HTML */ function easyel_custom_fonts_page_html() { if ( ! current_user_can( 'manage_options' ) ) return; if ( ! defined( 'EASY_ELEMENTS_PRO_ACTIVE' ) || ! EASY_ELEMENTS_PRO_ACTIVE ) { ?>