settings_api = new UltimateStoreKit_Settings_API; if (!defined('BDTUSK_HIDE')) { add_action('admin_init', [$this, 'admin_init']); add_action('admin_menu', [$this, 'admin_menu'], 201); } } public static function get_url() { return admin_url('admin.php?page=' . self::PAGE_ID); } function admin_init() { //set the settings $this->settings_api->set_sections($this->get_settings_sections()); $this->settings_api->set_fields($this->ultimate_store_kit_admin_settings()); //initialize settings $this->settings_api->admin_init(); } function admin_menu() { add_menu_page( BDTUSK_TITLE . ' ' . esc_html__('Dashboard', 'ultimate-store-kit'), BDTUSK_TITLE, 'manage_options', self::PAGE_ID, [$this, 'plugin_page'], $this->ultimate_store_kit_icon(), 58.5 ); add_submenu_page( self::PAGE_ID, BDTUSK_TITLE, esc_html__('WC Widgets', 'ultimate-store-kit'), 'manage_options', self::PAGE_ID . '#ultimate_store_kit_active_modules', [$this, 'display_page'], ); add_submenu_page( self::PAGE_ID, BDTUSK_TITLE, esc_html__('EDD Widgets', 'ultimate-store-kit'), 'manage_options', self::PAGE_ID . '#ultimate_store_kit_edd_modules', [$this, 'display_page'], ); add_submenu_page( self::PAGE_ID, BDTUSK_TITLE, esc_html__('Others Widgets', 'ultimate-store-kit'), 'manage_options', self::PAGE_ID . '#ultimate_store_kit_general_modules', [$this, 'display_page'], ); if (true !== _is_usk_pro_activated()) { add_submenu_page( self::PAGE_ID, BDTUSK_TITLE, esc_html__('Get Pro', 'ultimate-store-kit'), 'manage_options', self::PAGE_ID . '#ultimate_store_kit_get_pro', [$this, 'display_page'] ); } } function ultimate_store_kit_icon() { return 'data:image/svg+xml;base64,PCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMTAiIGhlaWdodD0iMTAyNCIgdmlld0JveD0iMCAwIDEwMTAgMTAyNCI+Cjx0aXRsZT48L3RpdGxlPgo8ZyBpZD0iaWNvbW9vbi1pZ25vcmUiPgo8L2c+CjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik05MTEuNjM4IDg3OS44NzhsLTUxLjQxNi01MDMuMzU3Yy01LjkzNS01Ni44NDMtNTMuNTk1LTEwMC43NzUtMTExLjUxNC0xMDAuNzc1LTAuMTExIDAtMC4yMjIgMC0wLjMzMiAwaC00NzIuNzQ4Yy0wLjE2MSAwLTAuMzUyLTAuMDAyLTAuNTQ1LTAuMDAyLTU4LjM2OSAwLTEwNi4yOTIgNDQuNzE3LTExMS4zODIgMTAxLjc2MWwtMC4wMzEgMC40MjktNDYuMDE3IDUwMy4zNTdjLTAuMjkzIDMuMDQzLTAuNDYgNi41OC0wLjQ2IDEwLjE1NCAwIDYyLjA5OCA1MC4zMjQgMTEyLjQ0MSAxMTIuNDEzIDExMi40NzJoNTcwLjIwMWM2Mi4xMDYtMC4xMDggMTEyLjQxMS01MC40NzggMTEyLjQxMS0xMTIuNiAwLTQuMDI5LTAuMjEyLTguMDA4LTAuNjI1LTExLjkyOGwwLjA0MiAwLjQ5ek0yMjkuNjExIDkwNS41ODVjLTAuMDE0IDAtMC4wMzMgMC0wLjA1MCAwLTcuNDU0IDAtMTMuNDk2LTYuMDQzLTEzLjQ5Ni0xMy40OTYgMC0wLjQwOCAwLjAxNy0wLjgxMSAwLjA1NC0xLjIwOGwtMC4wMDMgMC4wNTIgNDYuMDE3LTUwMy4zNTdjMC03LjA5OSA1Ljc1NS0xMi44NTQgMTIuODU0LTEyLjg1NHYwaDQ3Mi44OTRjNi45NjUgMC4wMjEgMTIuNjk3IDUuMjY1IDEzLjQ5MSAxMi4wMTlsMC4wMDcgMC4wNjQgMjEuNTk0IDIwOS4zODljLTczLjk4NCAzLjU5NC0xNDAuODE0IDMxLjU1OS0xOTMuMjggNzUuOTdsMC40NzItMC4zOTFjLTgwLjIwOCA2OC42MzktMTEzLjExNCAxNjcuMTAxLTEyNi40ODIgMjMzLjI5OHpNNzk5LjgwOCA5MDUuNTg1aC0yMzEuMzY5YzEyLjg1NC00OC45NzMgMzcuNjYxLTExMi4zNDMgODguNDM1LTE1NS41MzIgMzYuNzM0LTMwLjYyIDgzLjk4LTQ5Ljc2MyAxMzUuNjQzLTUxLjQwN2wwLjM1MS0wLjAwOSAxOS42NjYgMTkxLjM5M2MwLjEwNiAwLjYxOCAwLjE2NSAxLjMzIDAuMTY1IDIuMDU3IDAgNy4wOTktNS43NTUgMTIuODU0LTEyLjg1NCAxMi44NTQtMC4wMTQgMC0wLjAyNiAwLTAuMDQwIDBoMC4wMDJ6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0zNjIuNjQ5IDIzNWMwLjExNSAwLjAwMiAwLjI1IDAuMDAyIDAuMzg1IDAuMDAyIDI3LjI2MSAwIDQ5LjM1OS0yMi4wOTggNDkuMzU5LTQ5LjM1OSAwIDAgMC0wLjAwMiAwLTAuMDAydjBjMi4wMDMtNTQuNjQ3IDQ2Ljc4Ni05OC4xODYgMTAxLjczOC05OC4xODZzOTkuNzM1IDQzLjU0IDEwMS43MzMgOTguMDA0bDAuMDA1IDAuMTgyYzEuMzc4IDI2LjIyNCAyMi45NzggNDYuOTY2IDQ5LjQyMyA0Ni45NjZzNDguMDQ1LTIwLjc0MiA0OS40MTgtNDYuODQzbDAuMDA1LTAuMTIyYzAuMDQyLTEuNTEyIDAuMDY0LTMuMjkzIDAuMDY0LTUuMDc4IDAtMTEwLjgxNi04OS44MzQtMjAwLjY0OC0yMDAuNjQ4LTIwMC42NDhzLTIwMC42NDggODkuODM0LTIwMC42NDggMjAwLjY0OGMwIDEuNzg2IDAuMDIzIDMuNTY2IDAuMDY5IDUuMzRsLTAuMDA1LTAuMjYyYzAgMCAwIDAgMCAwIDAgMjcuMTcxIDIxLjk1MiA0OS4yMTMgNDkuMDg4IDQ5LjM1OWgwLjAxNHoiPjwvcGF0aD4KPC9zdmc+Cg=='; } function get_settings_sections() { $sections = [ [ 'id' => 'ultimate_store_kit_active_modules', 'title' => esc_html__('WC Widgets', 'ultimate-store-kit'), ], [ 'id' => 'ultimate_store_kit_edd_modules', 'title' => esc_html__('EDD Widgets', 'ultimate-store-kit'), ], [ 'id' => 'ultimate_store_kit_general_modules', 'title' => esc_html__('Other Widgets', 'ultimate-store-kit'), ], ]; return $sections; } protected function ultimate_store_kit_admin_settings() { return ModuleService::get_widget_settings(function ($settings) { $settings_fields = $settings['settings_fields']; self::$modules_list = array_merge($settings_fields['ultimate_store_kit_active_modules'], $settings_fields['ultimate_store_kit_edd_modules'], $settings_fields['ultimate_store_kit_general_modules']); self::$modules_list_only_widgets = $settings_fields['ultimate_store_kit_active_modules']; self::$modules_list_only_edd_widgets = $settings_fields['ultimate_store_kit_edd_modules']; return $settings_fields; }); } /** * Get separate widgets name * * @access public * @return array * @since 6.0.0 * */ public static function get_usk_only_widgets() { $names = self::$modules_names_only_widgets; if (null === $names) { $names = array_map( function ($item) { return isset($item['name']) ? 'usk-' . str_replace('_', '-', $item['name']) : 'none'; }, self::$modules_list_only_widgets ); } return $names; } /** * Get widgets name * * @access public * @return array * @since 6.0.0 * */ public static function get_usk_widgets_names() { $names = self::$modules_names; if (null === $names) { $names = array_map( function ($item) { return isset($item['name']) ? 'usk-' . str_replace('_', '-', $item['name']) : 'none'; }, self::$modules_list ); } return $names; } /** * Get used widgets. * * @access public * @return array * @since 6.0.0 * */ public static function get_used_widgets() { $used_widgets = array(); if (class_exists('Elementor\Modules\Usage\Module')) { $module = Module::instance(); $elements = $module->get_formatted_usage('raw'); $usk_widgets = self::get_usk_widgets_names(); if (is_array($elements) || is_object($elements)) { foreach ($elements as $post_type => $data) { foreach ($data['elements'] as $element => $count) { if (in_array($element, $usk_widgets, true)) { if (isset($used_widgets[$element])) { $used_widgets[$element] += $count; } else { $used_widgets[$element] = $count; } } } } } } return $used_widgets; } /** * Get used separate widgets. * * @access public * @return array * @since 6.0.0 * */ public static function get_used_only_widgets() { $used_widgets = array(); if (class_exists('Elementor\Modules\Usage\Module')) { $module = Module::instance(); $elements = $module->get_formatted_usage('raw'); $usk_widgets = self::get_usk_only_widgets(); if (is_array($elements) || is_object($elements)) { foreach ($elements as $post_type => $data) { foreach ($data['elements'] as $element => $count) { if (in_array($element, $usk_widgets, true)) { if (isset($used_widgets[$element])) { $used_widgets[$element] += $count; } else { $used_widgets[$element] = $count; } } } } } } return $used_widgets; } /** * Get used only separate edd_widgets widgets. * * @access public * @return array * @since 6.0.0 * */ public static function get_usk_only_edd_widgets_names() { $names = self::$modules_names_only_edd_widgets; if (null === $names) { $names = array_map( function ($item) { return isset($item['name']) ? 'usk-' . str_replace('_', '-', $item['name']) : 'none'; }, self::$modules_list_only_edd_widgets ); } return $names; } public static function get_used_only_edd_widgets() { $used_widgets = array(); if (class_exists('Elementor\Modules\Usage\Module')) { $module = Module::instance(); $elements = $module->get_formatted_usage('raw'); $usk_widgets = self::get_usk_only_edd_widgets_names(); if (is_array($elements) || is_object($elements)) { foreach ($elements as $post_type => $data) { foreach ($data['elements'] as $element => $count) { if (in_array($element, $usk_widgets, true)) { if (isset($used_widgets[$element])) { $used_widgets[$element] += $count; } else { $used_widgets[$element] = $count; } } } } } } return $used_widgets; } /** * Get unused widgets. * * @access public * @return array * @since 6.0.0 * */ public static function get_unused_widgets() { if (!current_user_can('install_plugins')) { die(); } $usk_widgets = self::get_usk_widgets_names(); $used_widgets = self::get_used_widgets(); $unused_widgets = array_diff($usk_widgets, array_keys($used_widgets)); return $unused_widgets; } /** * Get unused separate widgets. * * @access public * @return array * @since 6.0.0 * */ public static function get_unused_only_widgets() { if (!current_user_can('install_plugins')) { die(); } $usk_widgets = self::get_usk_only_widgets(); $used_widgets = self::get_used_only_widgets(); $unused_widgets = array_diff($usk_widgets, array_keys($used_widgets)); return $unused_widgets; } /** * Get unused separate edd_widgets widgets. * * @access public * @return array * @since 6.0.0 * */ public static function get_unused_only_edd_widgets() { if (!current_user_can('install_plugins')) { die(); } $usk_widgets = self::get_usk_only_edd_widgets_names(); $used_widgets = self::get_used_only_edd_widgets(); $unused_widgets = array_diff($usk_widgets, array_keys($used_widgets)); return $unused_widgets; } /** * Get Welcome Panel * * @access public * @return void */ public function ultimate_store_kit_welcome() { $track_nw_msg = ''; if (!Tracker::is_allow_track()) { $track_nw = esc_html__('This feature is not working because the Elementor Usage Data Sharing feature is Not Enabled.', 'ultimate-store-kit'); $track_nw_msg = 'bdt-tooltip="' . $track_nw . '"'; } ?>
' . esc_html__('Feeling like to consult with an expert? Take live Chat support immediately from', 'ultimate-store-kit') . ' UltimteStoreKit. ' . esc_html__('We are always ready to help you 24/7.', 'ultimate-store-kit') . '
'; echo '' . esc_html__('Or if you’re facing technical issues with our plugin, then please create a support ticket', 'ultimate-store-kit') . '
'; echo '' . esc_html__('Knowledge Base', 'ultimate-store-kit') . ''; echo '' . esc_html__('Get Support', 'ultimate-store-kit') . ''; ?>' . esc_html__('We are always looking for feedback from our users. If you have any suggestions or feedback, please let us know.', 'ultimate-store-kit') . '
'; echo '' . esc_html__('Request Feature', 'ultimate-store-kit') . ''; ?>' . esc_html__('Element Pack, Prime Slider, Ultimate Post Kit, Pixel Gallery & Live Copy Paste addons for Elementor is the best slider, blogs and eCommerce plugin for WordPress. Also, try our new plugin ZoloBlocks for Gutenberg.', 'ultimate-store-kit') . '
'; echo '