' => [ 'slug' => 'uael-woo-checkout', 'title' => __( 'Woo - Checkout', 'header-footer-elementor' ), 'description' => __( 'Simplify checkout with beautifully styled forms that match your brand identity.', 'header-footer-elementor' ), 'keywords' => [ 'uael', 'woo', 'checkout', 'page', 'check' ], 'icon' => 'hfe-icon-woo-checkout-1', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/woo-checkout/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'woo', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/woo-checkout/', ], 'Woo_Mini_Cart' => [ 'slug' => 'uael-mini-cart', 'title' => __( 'Woo - Mini Cart', 'header-footer-elementor' ), 'description' => __( 'Show a quick mini cart with product previews and controls in a sleek dropdown.', 'header-footer-elementor' ), 'keywords' => [ 'woo', 'woocommerce', 'cart', 'mini', 'minicart' ], 'icon' => 'hfe-icon-woo-mini-cart', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/woo-mini-cart/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'woo', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/woo-mini-cart/', ], 'Woo_Products' => [ 'slug' => 'uael-woo-products', 'title' => __( 'Woo - Products', 'header-footer-elementor' ), 'description' => __( 'Display WooCommerce products in customizable grids, sliders, or catalog layouts.', 'header-footer-elementor' ), 'keywords' => [ 'uael', 'woo', 'products' ], 'icon' => 'hfe-icon-woo-product', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/woo-products/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'woo', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/woo-products/', ], 'FfStyler' => [ 'slug' => 'uael-ff-styler', 'title' => __( 'WP Fluent Forms Styler', 'header-footer-elementor' ), 'description' => __( 'Easily design and style Fluent Forms to perfectly align with your website branding.', 'header-footer-elementor' ), 'keywords' => [ 'uael', 'fluent', 'forms', 'wp' ], 'icon' => 'hfe-icon-fluent-form-styler', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/wp-fluent-forms-styler/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'form', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/wp-fluent-forms-styler/', ], 'WpfStyler' => [ 'slug' => 'uael-wpf-styler', 'title' => __( 'WPForms Styler', 'header-footer-elementor' ), 'description' => __( 'Customize WPForms with advanced styling controls for a seamless brand experience.', 'header-footer-elementor' ), 'keywords' => [ 'uael', 'form', 'wp', 'wpform', 'styler' ], 'icon' => 'hfe-icon-wp-form-styler', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/wpforms-styler/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'form', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/wpforms-styler/', ], 'DisplayConditions' => [ 'slug' => 'uael-display-conditions', 'title' => __( 'Display Conditions', 'header-footer-elementor' ), 'description' => __( 'Control widget visibility with display rules based on users, devices, and pages.', 'header-footer-elementor' ), 'keywords' => [], 'icon' => 'hfe-icon-display-conditions', 'title_url' => '#', 'default' => true, 'setting_text' => __( 'Settings', 'header-footer-elementor' ), 'setting_url' => $integration_url, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/display-conditions/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'extension', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/display-conditions/', ], 'Particles' => [ 'slug' => 'uael-particles', 'title' => __( 'Particle Backgrounds', 'header-footer-elementor' ), 'description' => __( 'Add dynamic, animated backgrounds to sections and columns.', 'header-footer-elementor' ), 'keywords' => [], 'icon' => 'hfe-icon-particles', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/particles-background-extension/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'extension', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/particle-backgrounds/', ], 'PartyPropzExtension' => [ 'slug' => 'uael-party-propz-extension', 'title' => __( 'Party Propz', 'header-footer-elementor' ), 'description' => __( 'Decorate your site with festive seasonal elements easily.', 'header-footer-elementor' ), 'keywords' => [], 'icon' => 'hfe-icon-party-propz', 'title_url' => '#', 'default' => false, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/party-propz-extensions/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'extension', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/party-propz/', ], 'SectionDivider' => [ 'slug' => 'uael-section-divider', 'title' => __( 'Shape Divider', 'header-footer-elementor' ), 'description' => __( 'Add new attractive shape dividers to Elementor sections.', 'header-footer-elementor' ), 'keywords' => [], 'icon' => 'hfe-icon-shape-divider', 'title_url' => '#', 'default' => false, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/uae-shape-dividers/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'extension', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/uae-shape-dividers/', ], 'Cross_Domain' => [ 'slug' => 'uael-cross-domain-copy-paste', 'title' => __( 'Cross-Site Copy Paste', 'header-footer-elementor' ), 'description' => __( 'Easily copy and paste styled sections or widgets across multiple websites.', 'header-footer-elementor' ), 'keywords' => [], 'icon' => 'hfe-icon-cdcp', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/features/cross-site-copy-paste/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'feature', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/cross-site-copy-paste/', ], 'Presets' => [ 'slug' => 'uael-presets', 'title' => __( 'Presets', 'header-footer-elementor' ), 'description' => __( 'Save time with ready-made design presets that give widgets a quick, professional look.', 'header-footer-elementor' ), 'keywords' => [], 'icon' => 'hfe-icon-presets', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/features/presets/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'feature', 'is_pro' => true, 'demo_url' => HFE_DOMAIN . 'widgets/presets/', ], ]; if ( class_exists( 'Caldera_Forms' ) || class_exists( 'Caldera_Forms_Forms' ) ) { $forms = \Caldera_Forms_Forms::get_forms( true ); if ( ! empty( $forms ) ) { $caldera = [ 'CafStyler' => [ 'slug' => 'uael-caf-styler', 'title' => __( 'Caldera Form Styler', 'header-footer-elementor' ), 'description' => __( 'Style and enhance Caldera Forms to fit your site.', 'header-footer-elementor' ), 'keywords' => [ 'uael', 'caldera', 'form', 'styler' ], 'icon' => 'hfe-icon-wp-form-styler', 'title_url' => '#', 'default' => true, 'doc_url' => HFE_DOMAIN . 'docs-category/widgets/caldera-form-styler/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin', 'category' => 'form', 'is_pro' => true, ], ]; self::$pro_widget_list = array_merge_recursive( self::$pro_widget_list, $caldera ); } } } return self::$pro_widget_list; } /** * Get All Widgets. * * @since 0.0.1 * * @return array The combined Widget List. */ public static function get_all_widgets() { return self::get_widget_list() + self::get_pro_widget_list(); // Use + operator to merge associative arrays. } /** * Function for Astra Pro white labels with defaults. * * @since 2.2.1 * @return array */ public static function get_white_label() { $white_labels = is_callable( 'Astra_Admin_Helper::get_admin_settings_option' ) ? \Astra_Admin_Helper::get_admin_settings_option( '_astra_ext_white_label', true ) : []; $theme_name = ! empty( $white_labels['astra']['name'] ) ? $white_labels['astra']['name'] : 'Astra Theme'; return [ 'theme_name' => $theme_name, /* translators: %s: theme name */ 'description' => ! empty( $white_labels['astra']['description'] ) ? $white_labels['astra']['description'] : esc_html( sprintf( __( 'Free & Fastest WordPress Theme.', 'header-footer-elementor' ), esc_html( $theme_name ) ) ), 'theme_icon' => ! empty( $white_labels['astra']['icon'] ) ? $white_labels['astra']['icon'] : '', 'author_url' => ! empty( $white_labels['astra']['author_url'] ) ? $white_labels['astra']['author_url'] : 'https://wpastra.com/', ]; } /** * List of plugins that we propose to install. * * @since 1.6.0 * * @return array */ public static function get_bsf_plugins() { $white_labels = self::get_white_label(); $images_url = HFE_URL . 'assets/images/settings/'; $plugins = [ 'surerank/surerank.php' => [ 'icon' => $images_url . 'surerank.svg', 'type' => 'plugin', 'name' => esc_html__( 'Boost Your Traffic with Easy SEO Optimization!', 'header-footer-elementor' ), 'desc' => esc_html__( 'Rank higher with effortless SEO optimization. SureRank offers a simple, clutter-free interface with lightweight code, minimal setup, clear meta and schema settings, and smart content optimization that actually makes sense, helping you grow your traffic easily.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/surerank/', 'url' => 'https://downloads.wordpress.org/plugin/surerank.zip', 'siteurl' => 'https://surerank.com/', 'isFree' => true, 'slug' => 'surerank', 'status' => self::get_plugin_status( 'surerank/surerank.php' ), 'settings_url' => admin_url( 'admin.php?page=surerank_onboarding' ), ], 'surecart/surecart.php' => [ 'icon' => $images_url . 'surecart.svg', 'type' => 'plugin', 'name' => esc_html__( 'Sell Products Effortlessly with SureCart!', 'header-footer-elementor' ), 'desc' => esc_html__( 'Sell your products effortlessly with a modern, flexible eCommerce system. SureCart makes it easy to set up one-click checkout, manage subscriptions, recover abandoned carts, and collect secure payments, helping you launch and grow your online store confidently.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/surecart/', 'url' => 'https://downloads.wordpress.org/plugin/surecart.zip', 'siteurl' => 'https://surecart.com/', 'isFree' => true, 'slug' => 'surecart', 'status' => self::get_plugin_status( 'surecart/surecart.php' ), 'settings_url' => admin_url( 'admin.php?page=sc-getting-started' ), ], 'sureforms/sureforms.php' => [ 'icon' => $images_url . 'sureforms.svg', 'type' => 'plugin', 'name' => esc_html__( 'Build Powerful Forms in Minutes with SureForms!', 'header-footer-elementor' ), 'desc' => esc_html__( 'Build powerful forms in minutes without complexity. SureForms lets you create contact forms, payment forms, and surveys using an AI-assisted, clean interface with conversational layouts, conditional logic, payment collection, and mobile optimization for a seamless experience.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/sureforms/', 'url' => 'https://downloads.wordpress.org/plugin/sureforms.zip', 'siteurl' => 'https://sureforms.com/', 'slug' => 'sureforms', 'isFree' => true, 'status' => self::get_plugin_status( 'sureforms/sureforms.php' ), 'settings_url' => admin_url( 'admin.php?page=sureforms_menu' ), ], 'presto-player/presto-player.php' => [ 'icon' => $images_url . 'pplayer.svg', 'type' => 'plugin', 'name' => esc_html__( 'Add Engaging Videos Seamlessly with Presto Player!', 'header-footer-elementor' ), 'desc' => html_entity_decode( esc_html__( 'Add engaging videos seamlessly in minutes without complexity. Presto Player lets you enhance your website with videos using branding, chapters, and call-to-actions while providing fast load times, detailed analytics, and user-friendly controls for a seamless viewing experience.', 'header-footer-elementor' ) ), 'wporg' => 'https://wordpress.org/plugins/presto-player/', 'url' => 'https://downloads.wordpress.org/plugin/presto-player.zip', 'siteurl' => 'https://prestoplayer.com/', 'slug' => 'presto-player', 'isFree' => true, 'status' => self::get_plugin_status( 'presto-player/presto-player.php' ), 'settings_url' => admin_url( 'edit.php?post_type=pp_video_block' ), ], 'suretriggers/suretriggers.php' => [ 'icon' => $images_url . 'OttoKit-Symbol-Primary.svg', 'type' => 'plugin', 'name' => esc_html__( 'Automate Your Workflows Easily with Ottokit!', 'header-footer-elementor' ), 'desc' => esc_html__( 'Automate workflows effortlessly in minutes without complexity. Ottokit lets you connect your WordPress site with web apps to automate tasks, sync data, and run actions using a clean visual builder with scheduling, filters, conditions, and webhooks for a seamless experience.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/suretriggers/', 'url' => 'https://downloads.wordpress.org/plugin/suretriggers.zip', 'siteurl' => 'https://ottokit.com/', 'slug' => 'suretriggers', 'isFree' => true, 'status' => self::get_plugin_status( 'suretriggers/suretriggers.php' ), 'settings_url' => admin_url( 'admin.php?page=suretriggers' ), ], ]; foreach ( $plugins as $key => $plugin ) { // Check if it's a plugin and is active. if ( 'plugin' === $plugin['type'] && is_plugin_active( $key ) ) { unset( $plugins[ $key ] ); } if ( 'plugin' === $plugin['type'] && 'astra-sites/astra-sites.php' === $key ) { $st_pro_status = self::get_plugin_status( 'astra-pro-sites/astra-pro-sites.php' ); if ( 'Installed' === $st_pro_status || 'Activated' === $st_pro_status ) { unset( $plugins[ $key ] ); } } if ( 'theme' === $plugin['type'] ) { $current_theme = wp_get_theme(); if ( $current_theme->get_stylesheet() === $plugin['slug'] ) { unset( $plugins[ $key ] ); } } } return $plugins; } /** * List of plugins that we propose to install. * * @since 1.6.0 * * @return array */ public static function get_recommended_bsf_plugins() { $white_labels = self::get_white_label(); $images_url = HFE_URL . 'assets/images/settings/'; $recommended_plugins = [ 'astra-sites/astra-sites.php' => [ 'icon' => $images_url . 'stemplates.svg', 'type' => 'plugin', 'name' => esc_html__( 'Starter Templates', 'header-footer-elementor' ), 'desc' => esc_html__( 'Quickly launch websites with 300+ professionally designed Elementor templates.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/astra-sites/', 'url' => 'https://downloads.wordpress.org/plugin/astra-sites.zip', 'siteurl' => 'https://startertemplates.com/', 'slug' => 'astra-sites', 'isFree' => true, 'status' => self::get_plugin_status( 'astra-sites/astra-sites.php' ), 'settings_url' => admin_url( 'admin.php?page=starter-templates' ), ], 'surerank/surerank.php' => [ 'icon' => $images_url . 'surerank_extend.svg', 'type' => 'plugin', 'name' => esc_html__( 'SureRank', 'header-footer-elementor' ), 'desc' => esc_html__( 'Powerful, lightweight SEO plugin to manage search and social previews', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/surerank/', 'url' => 'https://downloads.wordpress.org/plugin/surerank.zip', 'siteurl' => 'https://surerank.com/', 'isFree' => true, 'slug' => 'surerank', 'status' => self::get_plugin_status( 'surerank/surerank.php' ), 'settings_url' => admin_url( 'admin.php?page=surerank_onboarding' ), ], 'sureforms/sureforms.php' => [ 'icon' => $images_url . 'sureforms_extend.svg', 'type' => 'plugin', 'name' => esc_html__( 'SureForms', 'header-footer-elementor' ), 'desc' => esc_html__( 'Create high-converting forms with ease.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/sureforms/', 'url' => 'https://downloads.wordpress.org/plugin/sureforms.zip', 'siteurl' => 'https://sureforms.com/', 'slug' => 'sureforms', 'isFree' => true, 'status' => self::get_plugin_status( 'sureforms/sureforms.php' ), 'settings_url' => admin_url( 'admin.php?page=sureforms_menu' ), ], 'suretriggers/suretriggers.php' => [ 'icon' => $images_url . 'ottokit.svg', 'type' => 'plugin', 'name' => esc_html__( 'OttoKit', 'header-footer-elementor' ), 'desc' => esc_html__( 'Automate WordPress tasks effortlessly.', 'header-footer-elementor' ), 'wporg' => 'https://wordpress.org/plugins/suretriggers/', 'url' => 'https://downloads.wordpress.org/plugin/suretriggers.zip', 'siteurl' => 'https://ottokit.com/', 'slug' => 'suretriggers', 'isFree' => true, 'status' => self::get_plugin_status( 'suretriggers/suretriggers.php' ), 'settings_url' => admin_url( 'admin.php?page=suretriggers' ), ], ]; foreach ( $recommended_plugins as $key => $plugin ) { // Check if it's a plugin and is active. if ( 'plugin' === $plugin['type'] && is_plugin_active( $key ) ) { unset( $recommended_plugins[ $key ] ); } if ( 'plugin' === $plugin['type'] && 'astra-sites/astra-sites.php' === $key ) { $st_pro_status = self::get_plugin_status( 'astra-pro-sites/astra-pro-sites.php' ); if ( 'Installed' === $st_pro_status || 'Activated' === $st_pro_status ) { unset( $recommended_plugins[ $key ] ); } } if ( 'theme' === $plugin['type'] ) { $current_theme = wp_get_theme(); if ( $current_theme->get_stylesheet() === $plugin['slug'] ) { unset( $recommended_plugins[ $key ] ); } } } return $recommended_plugins; } /** * Get plugin status * * @since 0.0.1 * * @param string $plugin_init_file Plugin init file. * @return string */ public static function get_plugin_status( $plugin_init_file ) { $installed_plugins = get_plugins(); if ( ! isset( $installed_plugins[ $plugin_init_file ] ) ) { return 'Install'; } elseif ( is_plugin_active( $plugin_init_file ) ) { return 'Activated'; } else { return 'Installed'; } } /** * Get the status of a theme. * * @param string $theme_slug The slug of the theme. * @return string The theme status: 'Activated', 'Installed', or 'Install'. * * @since 0.0.1 */ public static function get_theme_status( $theme_slug ) { $installed_themes = wp_get_themes(); // Check if the theme is installed. if ( isset( $installed_themes[ $theme_slug ] ) ) { $current_theme = wp_get_theme(); // Check if the current theme slug matches the provided theme slug. if ( $current_theme->get_stylesheet() === $theme_slug ) { return 'Activated'; // Theme is active. } else { return 'Installed'; // Theme is installed but not active. } } else { return 'Install'; // Theme is not installed at all. } } }