PluginProbe
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder / 1.5.1
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder v1.5.1
3.1.4 3.0.8 3.0.9 3.1.0 3.1.2 3.1.3 3.0.7 3.0.5 3.0.4 3.0.3 3.0.2 trunk 1.5.0 1.5.1 1.5.2 1.6.1 1.6.2 1.6.3 1.6.4 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 All 93 releases
ultimate-store-kit / admin / admin-settings.php

admin-settings.php in Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder 1.5.1, at admin/admin-settings.php

1,205 lines 45.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 use UltimateStoreKit\Classes\Utils;
4 use UltimateStoreKit\Admin\ModuleService;
5 use Elementor\Tracker;
6 use UltimateStoreKit\Notices;
7 use UltimateStoreKit\Base\Ultimate_Store_Kit_Module_Base;
8 use Elementor\Modules\Usage\Module;
9
10
11 /**
12 * Ultimate Store Kit Admin Settings Class
13 */
14 class UltimateStoreKit_Admin_Settings {
15 public static $modules_list = null;
16 public static $modules_names = null;
17
18 public static $modules_list_only_widgets = null;
19 public static $modules_names_only_widgets = null;
20
21 public static $modules_list_only_edd_widgets = null;
22 public static $modules_names_only_edd_widgets = null;
23
24 const PAGE_ID = 'ultimate_store_kit_options';
25
26 private $settings_api;
27
28 public $responseObj;
29 public $showMessage = false;
30 private $is_activated = false;
31
32 function __construct() {
33 $this->settings_api = new UltimateStoreKit_Settings_API;
34
35 if (!defined('BDTUSK_HIDE')) {
36 add_action('admin_init', [$this, 'admin_init']);
37 add_action('admin_menu', [$this, 'admin_menu'], 201);
38 }
39 }
40
41 public static function get_url() {
42 return admin_url('admin.php?page=' . self::PAGE_ID);
43 }
44
45 function admin_init() {
46
47 //set the settings
48 $this->settings_api->set_sections($this->get_settings_sections());
49 $this->settings_api->set_fields($this->ultimate_store_kit_admin_settings());
50
51 //initialize settings
52 $this->settings_api->admin_init();
53 }
54
55 function admin_menu() {
56 add_menu_page(
57 BDTUSK_TITLE . ' ' . esc_html__('Dashboard', 'ultimate-store-kit'),
58 BDTUSK_TITLE,
59 'manage_options',
60 self::PAGE_ID,
61 [$this, 'plugin_page'],
62 $this->ultimate_store_kit_icon(),
63 58.5
64 );
65
66 add_submenu_page(
67 self::PAGE_ID,
68 BDTUSK_TITLE,
69 esc_html__('WC Widgets', 'ultimate-store-kit'),
70 'manage_options',
71 self::PAGE_ID . '#ultimate_store_kit_active_modules',
72 [$this, 'display_page'],
73 );
74
75 add_submenu_page(
76 self::PAGE_ID,
77 BDTUSK_TITLE,
78 esc_html__('EDD Widgets', 'ultimate-store-kit'),
79 'manage_options',
80 self::PAGE_ID . '#ultimate_store_kit_edd_modules',
81 [$this, 'display_page'],
82 );
83
84 add_submenu_page(
85 self::PAGE_ID,
86 BDTUSK_TITLE,
87 esc_html__('Others Widgets', 'ultimate-store-kit'),
88 'manage_options',
89 self::PAGE_ID . '#ultimate_store_kit_general_modules',
90 [$this, 'display_page'],
91 );
92
93 if (true !== _is_usk_pro_activated()) {
94 add_submenu_page(
95 self::PAGE_ID,
96 BDTUSK_TITLE,
97 esc_html__('Get Pro', 'ultimate-store-kit'),
98 'manage_options',
99 self::PAGE_ID . '#ultimate_store_kit_get_pro',
100 [$this, 'display_page']
101 );
102 }
103 }
104
105 function ultimate_store_kit_icon() {
106 return 'data:image/svg+xml;base64,PCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMTAiIGhlaWdodD0iMTAyNCIgdmlld0JveD0iMCAwIDEwMTAgMTAyNCI+Cjx0aXRsZT48L3RpdGxlPgo8ZyBpZD0iaWNvbW9vbi1pZ25vcmUiPgo8L2c+CjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik05MTEuNjM4IDg3OS44NzhsLTUxLjQxNi01MDMuMzU3Yy01LjkzNS01Ni44NDMtNTMuNTk1LTEwMC43NzUtMTExLjUxNC0xMDAuNzc1LTAuMTExIDAtMC4yMjIgMC0wLjMzMiAwaC00NzIuNzQ4Yy0wLjE2MSAwLTAuMzUyLTAuMDAyLTAuNTQ1LTAuMDAyLTU4LjM2OSAwLTEwNi4yOTIgNDQuNzE3LTExMS4zODIgMTAxLjc2MWwtMC4wMzEgMC40MjktNDYuMDE3IDUwMy4zNTdjLTAuMjkzIDMuMDQzLTAuNDYgNi41OC0wLjQ2IDEwLjE1NCAwIDYyLjA5OCA1MC4zMjQgMTEyLjQ0MSAxMTIuNDEzIDExMi40NzJoNTcwLjIwMWM2Mi4xMDYtMC4xMDggMTEyLjQxMS01MC40NzggMTEyLjQxMS0xMTIuNiAwLTQuMDI5LTAuMjEyLTguMDA4LTAuNjI1LTExLjkyOGwwLjA0MiAwLjQ5ek0yMjkuNjExIDkwNS41ODVjLTAuMDE0IDAtMC4wMzMgMC0wLjA1MCAwLTcuNDU0IDAtMTMuNDk2LTYuMDQzLTEzLjQ5Ni0xMy40OTYgMC0wLjQwOCAwLjAxNy0wLjgxMSAwLjA1NC0xLjIwOGwtMC4wMDMgMC4wNTIgNDYuMDE3LTUwMy4zNTdjMC03LjA5OSA1Ljc1NS0xMi44NTQgMTIuODU0LTEyLjg1NHYwaDQ3Mi44OTRjNi45NjUgMC4wMjEgMTIuNjk3IDUuMjY1IDEzLjQ5MSAxMi4wMTlsMC4wMDcgMC4wNjQgMjEuNTk0IDIwOS4zODljLTczLjk4NCAzLjU5NC0xNDAuODE0IDMxLjU1OS0xOTMuMjggNzUuOTdsMC40NzItMC4zOTFjLTgwLjIwOCA2OC42MzktMTEzLjExNCAxNjcuMTAxLTEyNi40ODIgMjMzLjI5OHpNNzk5LjgwOCA5MDUuNTg1aC0yMzEuMzY5YzEyLjg1NC00OC45NzMgMzcuNjYxLTExMi4zNDMgODguNDM1LTE1NS41MzIgMzYuNzM0LTMwLjYyIDgzLjk4LTQ5Ljc2MyAxMzUuNjQzLTUxLjQwN2wwLjM1MS0wLjAwOSAxOS42NjYgMTkxLjM5M2MwLjEwNiAwLjYxOCAwLjE2NSAxLjMzIDAuMTY1IDIuMDU3IDAgNy4wOTktNS43NTUgMTIuODU0LTEyLjg1NCAxMi44NTQtMC4wMTQgMC0wLjAyNiAwLTAuMDQwIDBoMC4wMDJ6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0zNjIuNjQ5IDIzNWMwLjExNSAwLjAwMiAwLjI1IDAuMDAyIDAuMzg1IDAuMDAyIDI3LjI2MSAwIDQ5LjM1OS0yMi4wOTggNDkuMzU5LTQ5LjM1OSAwIDAgMC0wLjAwMiAwLTAuMDAydjBjMi4wMDMtNTQuNjQ3IDQ2Ljc4Ni05OC4xODYgMTAxLjczOC05OC4xODZzOTkuNzM1IDQzLjU0IDEwMS43MzMgOTguMDA0bDAuMDA1IDAuMTgyYzEuMzc4IDI2LjIyNCAyMi45NzggNDYuOTY2IDQ5LjQyMyA0Ni45NjZzNDguMDQ1LTIwLjc0MiA0OS40MTgtNDYuODQzbDAuMDA1LTAuMTIyYzAuMDQyLTEuNTEyIDAuMDY0LTMuMjkzIDAuMDY0LTUuMDc4IDAtMTEwLjgxNi04OS44MzQtMjAwLjY0OC0yMDAuNjQ4LTIwMC42NDhzLTIwMC42NDggODkuODM0LTIwMC42NDggMjAwLjY0OGMwIDEuNzg2IDAuMDIzIDMuNTY2IDAuMDY5IDUuMzRsLTAuMDA1LTAuMjYyYzAgMCAwIDAgMCAwIDAgMjcuMTcxIDIxLjk1MiA0OS4yMTMgNDkuMDg4IDQ5LjM1OWgwLjAxNHoiPjwvcGF0aD4KPC9zdmc+Cg==';
107 }
108
109 function get_settings_sections() {
110 $sections = [
111 [
112 'id' => 'ultimate_store_kit_active_modules',
113 'title' => esc_html__('WC Widgets', 'ultimate-store-kit'),
114 ],
115 [
116 'id' => 'ultimate_store_kit_edd_modules',
117 'title' => esc_html__('EDD Widgets', 'ultimate-store-kit'),
118 ],
119 [
120 'id' => 'ultimate_store_kit_general_modules',
121 'title' => esc_html__('Other Widgets', 'ultimate-store-kit'),
122 ],
123 ];
124 return $sections;
125 }
126
127 protected function ultimate_store_kit_admin_settings() {
128 return ModuleService::get_widget_settings(function ($settings) {
129 $settings_fields = $settings['settings_fields'];
130
131 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']);
132 self::$modules_list_only_widgets = $settings_fields['ultimate_store_kit_active_modules'];
133 self::$modules_list_only_edd_widgets = $settings_fields['ultimate_store_kit_edd_modules'];
134
135 return $settings_fields;
136 });
137 }
138
139
140
141 /**
142 * Get separate widgets name
143 *
144 * @access public
145 * @return array
146 * @since 6.0.0
147 *
148 */
149
150 public static function get_usk_only_widgets() {
151 $names = self::$modules_names_only_widgets;
152
153 if (null === $names) {
154 $names = array_map(
155 function ($item) {
156 return isset($item['name']) ? 'usk-' . str_replace('_', '-', $item['name']) : 'none';
157 },
158 self::$modules_list_only_widgets
159 );
160 }
161
162 return $names;
163 }
164
165 /**
166 * Get widgets name
167 *
168 * @access public
169 * @return array
170 * @since 6.0.0
171 *
172 */
173
174 public static function get_usk_widgets_names() {
175 $names = self::$modules_names;
176
177 if (null === $names) {
178 $names = array_map(
179 function ($item) {
180 return isset($item['name']) ? 'usk-' . str_replace('_', '-', $item['name']) : 'none';
181 },
182 self::$modules_list
183 );
184 }
185
186 return $names;
187 }
188 /**
189 * Get used widgets.
190 *
191 * @access public
192 * @return array
193 * @since 6.0.0
194 *
195 */
196 public static function get_used_widgets() {
197
198 $used_widgets = array();
199
200 if (class_exists('Elementor\Modules\Usage\Module')) {
201
202 $module = Module::instance();
203 $elements = $module->get_formatted_usage('raw');
204 $usk_widgets = self::get_usk_widgets_names();
205
206 if (is_array($elements) || is_object($elements)) {
207
208 foreach ($elements as $post_type => $data) {
209 foreach ($data['elements'] as $element => $count) {
210 if (in_array($element, $usk_widgets, true)) {
211 if (isset($used_widgets[$element])) {
212 $used_widgets[$element] += $count;
213 } else {
214 $used_widgets[$element] = $count;
215 }
216 }
217 }
218 }
219 }
220 }
221
222 return $used_widgets;
223 }
224
225 /**
226 * Get used separate widgets.
227 *
228 * @access public
229 * @return array
230 * @since 6.0.0
231 *
232 */
233
234 public static function get_used_only_widgets() {
235
236 $used_widgets = array();
237
238 if (class_exists('Elementor\Modules\Usage\Module')) {
239
240 $module = Module::instance();
241 $elements = $module->get_formatted_usage('raw');
242 $usk_widgets = self::get_usk_only_widgets();
243
244 if (is_array($elements) || is_object($elements)) {
245
246 foreach ($elements as $post_type => $data) {
247 foreach ($data['elements'] as $element => $count) {
248 if (in_array($element, $usk_widgets, true)) {
249 if (isset($used_widgets[$element])) {
250 $used_widgets[$element] += $count;
251 } else {
252 $used_widgets[$element] = $count;
253 }
254 }
255 }
256 }
257 }
258 }
259
260 return $used_widgets;
261 }
262
263 /**
264 * Get used only separate edd_widgets widgets.
265 *
266 * @access public
267 * @return array
268 * @since 6.0.0
269 *
270 */
271
272 public static function get_usk_only_edd_widgets_names() {
273 $names = self::$modules_names_only_edd_widgets;
274
275 if (null === $names) {
276 $names = array_map(
277 function ($item) {
278 return isset($item['name']) ? 'usk-' . str_replace('_', '-', $item['name']) : 'none';
279 },
280 self::$modules_list_only_edd_widgets
281 );
282 }
283
284 return $names;
285 }
286 public static function get_used_only_edd_widgets() {
287
288 $used_widgets = array();
289
290 if (class_exists('Elementor\Modules\Usage\Module')) {
291
292 $module = Module::instance();
293 $elements = $module->get_formatted_usage('raw');
294 $usk_widgets = self::get_usk_only_edd_widgets_names();
295
296 if (is_array($elements) || is_object($elements)) {
297
298 foreach ($elements as $post_type => $data) {
299 foreach ($data['elements'] as $element => $count) {
300 if (in_array($element, $usk_widgets, true)) {
301 if (isset($used_widgets[$element])) {
302 $used_widgets[$element] += $count;
303 } else {
304 $used_widgets[$element] = $count;
305 }
306 }
307 }
308 }
309 }
310 }
311
312 return $used_widgets;
313 }
314
315 /**
316 * Get unused widgets.
317 *
318 * @access public
319 * @return array
320 * @since 6.0.0
321 *
322 */
323
324 public static function get_unused_widgets() {
325
326 if (!current_user_can('install_plugins')) {
327 die();
328 }
329
330 $usk_widgets = self::get_usk_widgets_names();
331
332 $used_widgets = self::get_used_widgets();
333
334 $unused_widgets = array_diff($usk_widgets, array_keys($used_widgets));
335
336 return $unused_widgets;
337 }
338
339 /**
340 * Get unused separate widgets.
341 *
342 * @access public
343 * @return array
344 * @since 6.0.0
345 *
346 */
347
348 public static function get_unused_only_widgets() {
349
350 if (!current_user_can('install_plugins')) {
351 die();
352 }
353
354 $usk_widgets = self::get_usk_only_widgets();
355
356 $used_widgets = self::get_used_only_widgets();
357
358 $unused_widgets = array_diff($usk_widgets, array_keys($used_widgets));
359
360 return $unused_widgets;
361 }
362
363 /**
364 * Get unused separate edd_widgets widgets.
365 *
366 * @access public
367 * @return array
368 * @since 6.0.0
369 *
370 */
371
372 public static function get_unused_only_edd_widgets() {
373
374 if (!current_user_can('install_plugins')) {
375 die();
376 }
377
378 $usk_widgets = self::get_usk_only_edd_widgets_names();
379
380 $used_widgets = self::get_used_only_edd_widgets();
381
382 $unused_widgets = array_diff($usk_widgets, array_keys($used_widgets));
383
384 return $unused_widgets;
385 }
386
387 /**
388 * Get Welcome Panel
389 *
390 * @access public
391 * @return void
392 */
393
394 public function ultimate_store_kit_welcome() {
395 $track_nw_msg = '';
396 if (!Tracker::is_allow_track()) {
397 $track_nw = esc_html__('This feature is not working because the Elementor Usage Data Sharing feature is Not Enabled.', 'ultimate-store-kit');
398 $track_nw_msg = 'bdt-tooltip="' . $track_nw . '"';
399 }
400 ?>
401
402 <div class="bdt-dashboard-panel" bdt-scrollspy="target: > div > div > .bdt-card; cls: bdt-animation-slide-bottom-small; delay: 300">
403 <div class="bdt-grid" bdt-grid bdt-height-match="target: > div > .bdt-card">
404 <div class="bdt-width-1-2@m bdt-width-1-4@l">
405 <div class="bdt-widget-status bdt-card bdt-card-body" <?php echo $track_nw_msg; ?> <?php echo $track_nw_msg; ?>>
406
407 <?php
408 $used_widgets = count(self::get_used_widgets());
409 $un_used_widgets = count(self::get_unused_widgets());
410 ?>
411
412
413 <div class="bdt-count-canvas-wrap bdt-flex bdt-flex-between">
414 <div class="bdt-count-wrap">
415 <h1 class="bdt-feature-title">All Widgets</h1>
416 <div class="bdt-widget-count">Used: <b><?php echo $used_widgets; ?></b></div>
417 <div class="bdt-widget-count">Unused: <b><?php echo $un_used_widgets; ?></b></div>
418 <div class="bdt-widget-count">Total:
419 <b><?php echo $used_widgets + $un_used_widgets; ?></b>
420 </div>
421 </div>
422
423 <div class="bdt-canvas-wrap">
424 <canvas id="bdt-db-total-status" style="height: 120px; width: 120px;" data-label="Total Widgets Status - (<?php echo $used_widgets + $un_used_widgets; ?>)" data-labels="<?php echo esc_attr('Used, Unused'); ?>" data-value="<?php echo esc_attr($used_widgets) . ',' . esc_attr($un_used_widgets); ?>" data-bg="#FFD166, #fff4d9" data-bg-hover="#0673e1, #e71522"></canvas>
425 </div>
426 </div>
427
428 </div>
429 </div>
430 <div class="bdt-width-1-2@m bdt-width-1-4@l">
431 <div class="bdt-widget-status bdt-card bdt-card-body" <?php echo $track_nw_msg; ?>>
432
433 <?php
434 $used_only_widgets = count(self::get_used_only_widgets());
435 $unused_only_widgets = count(self::get_unused_only_widgets());
436 ?>
437
438
439 <div class="bdt-count-canvas-wrap bdt-flex bdt-flex-between">
440 <div class="bdt-count-wrap">
441 <h1 class="bdt-feature-title">WooCommerce</h1>
442 <div class="bdt-widget-count">Used: <b><?php echo $used_only_widgets; ?></b></div>
443 <div class="bdt-widget-count">Unused: <b><?php echo $unused_only_widgets; ?></b></div>
444 <div class="bdt-widget-count">Total:
445 <b><?php echo $used_only_widgets + $unused_only_widgets; ?></b>
446 </div>
447 </div>
448
449 <div class="bdt-canvas-wrap">
450 <canvas id="bdt-db-only-widget-status" style="height: 120px; width: 120px;" data-label="WooCommerce Widgets Status - (<?php echo $used_only_widgets + $unused_only_widgets; ?>)" data-labels="<?php echo esc_attr('Used, Unused'); ?>" data-value="<?php echo esc_attr($used_only_widgets) . ',' . esc_attr($unused_only_widgets); ?>" data-bg="#EF476F, #ffcdd9" data-bg-hover="#0673e1, #e71522"></canvas>
451 </div>
452 </div>
453
454 </div>
455 </div>
456 <div class="bdt-width-1-2@m bdt-width-1-4@l">
457 <div class="bdt-widget-status bdt-card bdt-card-body" <?php echo $track_nw_msg; ?>>
458
459 <?php
460 $used_only_edd_widgets = count(self::get_used_only_edd_widgets());
461 $unused_only_edd_widgets = count(self::get_unused_only_edd_widgets());
462 ?>
463
464
465 <div class="bdt-count-canvas-wrap bdt-flex bdt-flex-between">
466 <div class="bdt-count-wrap">
467 <h1 class="bdt-feature-title">EDD</h1>
468 <div class="bdt-widget-count">Used: <b><?php echo $used_only_edd_widgets; ?></b></div>
469 <div class="bdt-widget-count">Unused: <b><?php echo $unused_only_edd_widgets; ?></b></div>
470 <div class="bdt-widget-count">Total: <b><?php echo $used_only_edd_widgets + $unused_only_edd_widgets; ?></b>
471 </div>
472 </div>
473
474 <div class="bdt-canvas-wrap">
475 <canvas id="bdt-db-only-edd_widgets-status" style="height: 120px; width: 120px;" data-label="EDD Widgets Status - (<?php echo $used_only_edd_widgets + $unused_only_edd_widgets; ?>)" data-labels="<?php echo esc_attr('Used, Unused'); ?>" data-value="<?php echo esc_attr($used_only_edd_widgets) . ',' . esc_attr($unused_only_edd_widgets); ?>" data-bg="#06D6A0, #B6FFEC" data-bg-hover="#0673e1, #e71522"></canvas>
476 </div>
477 </div>
478
479 </div>
480 </div>
481
482 <div class="bdt-width-1-2@m bdt-width-1-4@l">
483 <div class="bdt-widget-status bdt-card bdt-card-body" <?php echo $track_nw_msg; ?>>
484
485 <div class="bdt-count-canvas-wrap bdt-flex bdt-flex-between">
486 <div class="bdt-count-wrap">
487 <h1 class="bdt-feature-title">Active</h1>
488 <div class="bdt-widget-count">WooCommerce: <b id="bdt-total-widgets-status-core"></b></div>
489 <div class="bdt-widget-count">EDD: <b id="bdt-total-widgets-status-3rd"></b></div>
490 <div class="bdt-widget-count">Total: <b id="bdt-total-widgets-status-heading"></b></div>
491 </div>
492
493 <div class="bdt-canvas-wrap">
494 <canvas id="bdt-total-widgets-status" style="height: 120px; width: 120px;" data-label="Total Active Widgets Status" data-labels="<?php echo esc_attr('WooCommerce, EDD'); ?>" data-bg="#0680d6, #B0EBFF" data-bg-hover="#0673e1, #B0EBFF">
495 </canvas>
496 </div>
497 </div>
498
499 </div>
500 </div>
501 </div>
502 <div class="bdt-grid" bdt-grid bdt-height-match="target: > div > .bdt-card">
503 <div class="bdt-width-1-3@m bdt-support-section">
504 <div class="bdt-support-content bdt-card bdt-card-body">
505 <h1 class="bdt-feature-title">Support And Feedback</h1>
506 <p>Feeling like to consult with an expert? Take live Chat support immediately from <a href="https://storekit.pro/" target="_blank" rel="">UltimteStoreKit</a>. We are always
507 ready to help
508 you 24/7.</p>
509 <p><strong>Or if you’re facing technical issues with our plugin, then please create a support
510 ticket</strong></p>
511 <a class="bdt-button bdt-btn-blue bdt-margin-small-top bdt-margin-small-right" target="_blank" rel="" href="https://bdthemes.com/all-knowledge-base-of-ultimate-store-kit/">Knowledge
512 Base</a>
513 <a class="bdt-button bdt-btn-grey bdt-margin-small-top" target="_blank" href="https://bdthemes.com/support/">Get Support</a>
514 </div>
515 </div>
516
517 <div class="bdt-width-2-3@m">
518 <div class="bdt-card bdt-card-body bdt-system-requirement">
519 <h1 class="bdt-feature-title bdt-margin-small-bottom">System Requirement</h1>
520 <?php $this->ultimate_store_kit_system_requirement(); ?>
521 </div>
522 </div>
523 </div>
524 <div class="bdt-grid" bdt-grid bdt-height-match="target: > div > .bdt-card">
525 <div class="bdt-width-1-2@m bdt-support-section">
526 <div class="bdt-card bdt-card-body bdt-feedback-bg">
527 <h1 class="bdt-feature-title">Missing Any Feature?</h1>
528 <p style="max-width: 520px;">Are you in need of a feature that’s not available in our plugin?
529 Feel free to do a feature request from here,</p>
530 <a class="bdt-button bdt-btn-grey bdt-margin-small-top" target="_blank" rel="" href="https://feedback.bdthemes.com/b/6vr2250l/feature-requests/">Request Feature</a>
531 </div>
532 </div>
533
534 <div class="bdt-width-1-2@m">
535 <div class="bdt-card bdt-card-body bdt-tryaddon-bg">
536 <h1 class="bdt-feature-title">Try Our Others Addons</h1>
537 <p style="max-width: 520px;">
538 <b>Element Pack, Prime Slider, Ultimate Post Kit, Pixel Gallery & Live Copy Paste </b> addons for <b>Elementor</b> is the best slider, blogs and eCommerce plugin for WordPress.
539 </p>
540 <div class="bdt-others-plugins-link">
541 <a class="bdt-button bdt-btn-ep bdt-margin-small-right" target="_blank" href="https://wordpress.org/plugins/bdthemes-element-pack-lite/" bdt-tooltip="Element Pack Lite provides more than 50+ essential elements for everyday applications to simplify the whole web building process. It's Free! Download it.">Element pack</a>
542 <a class="bdt-button bdt-btn-ps bdt-margin-small-right" target="_blank" rel="" href="https://wordpress.org/plugins/bdthemes-prime-slider-lite/" bdt-tooltip="">Prime Slider</a>
543 <a class="bdt-button bdt-btn-upk bdt-margin-small-right" target="_blank" rel="" href="https://wordpress.org/plugins/ultimate-post-kit/" bdt-tooltip="Best blogging addon for building quality blogging website with fine-tuned features and widgets. It's Free! Download it.">Ultimate Post Kit</a>
544 <a class="bdt-button bdt-btn-pg bdt-margin-small-right" target="_blank" href="https://wordpress.org/plugins/pixel-gallery/" bdt-tooltip="Pixel Gallery provides more than 30+ essential elements for everyday applications to simplify the whole web building process. It's Free! Download it.">Pixel Gallery</a>
545 <a class="bdt-button bdt-btn-live-copy bdt-margin-small-right" target="_blank" rel="" href="https://wordpress.org/plugins/live-copy-paste/" bdt-tooltip="Superfast cross-domain copy-paste mechanism for WordPress websites with true UI copy experience. It's Free! Download it.">Live Copy Paste</a>
546 </div>
547 </div>
548 </div>
549 </div>
550 </div>
551
552
553 <?php
554 }
555
556 /**
557 * Get Pro
558 *
559 * @access public
560 * @return void
561 */
562
563 function ultimate_store_kit_get_pro() {
564 ?>
565 <div class="bdt-dashboard-panel" bdt-scrollspy="target: > div > div > .bdt-card; cls: bdt-animation-slide-bottom-small; delay: 300">
566
567 <div class="bdt-grid" bdt-grid bdt-height-match="target: > div > .bdt-card" style="max-width: 800px; margin-left: auto; margin-right: auto;">
568 <div class="bdt-width-1-1@m bdt-comparision bdt-text-center">
569 <h1 class="bdt-text-bold">WHY GO WITH PRO?</h1>
570 <h2>Just Compare With Ultimate Store Kit Free Vs Pro</h2>
571
572
573 <div>
574
575 <ul class="bdt-list bdt-list-divider bdt-text-left bdt-text-normal" style="font-size: 16px;">
576
577
578 <li class="bdt-text-bold">
579 <div class="bdt-grid">
580 <div class="bdt-width-expand@m">Features</div>
581 <div class="bdt-width-auto@m">Free</div>
582 <div class="bdt-width-auto@m">Pro</div>
583 </div>
584 </li>
585 <li class="">
586 <div class="bdt-grid">
587 <div class="bdt-width-expand@m"><span bdt-tooltip="pos: top-left; title: Lite have 35+ Widgets but Pro have 100+ core widgets">Core Widgets</span></div>
588 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
589 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
590 </div>
591 </li>
592 <li class="">
593 <div class="bdt-grid">
594 <div class="bdt-width-expand@m">Theme Compatibility</div>
595 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
596 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
597 </div>
598 </li>
599 <li class="">
600 <div class="bdt-grid">
601 <div class="bdt-width-expand@m">Dynamic Content & Custom Fields Capabilities</div>
602 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
603 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
604 </div>
605 </li>
606 <li class="">
607 <div class="bdt-grid">
608 <div class="bdt-width-expand@m">Proper Documentation</div>
609 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
610 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
611 </div>
612 </li>
613 <li class="">
614 <div class="bdt-grid">
615 <div class="bdt-width-expand@m">Updates & Support</div>
616 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
617 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
618 </div>
619 </li>
620 <li class="">
621 <div class="bdt-grid">
622 <div class="bdt-width-expand@m">Rooten Theme Pro Features</div>
623 <div class="bdt-width-auto@m"><span class="dashicons dashicons-no"></span></div>
624 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
625 </div>
626 </li>
627 <li class="">
628 <div class="bdt-grid">
629 <div class="bdt-width-expand@m">Priority Support</div>
630 <div class="bdt-width-auto@m"><span class="dashicons dashicons-no"></span></div>
631 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
632 </div>
633 </li>
634 <li class="">
635 <div class="bdt-grid">
636 <div class="bdt-width-expand@m">Ready Made Pages</div>
637 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
638 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
639 </div>
640 </li>
641 <li class="">
642 <div class="bdt-grid">
643 <div class="bdt-width-expand@m">Ready Made Blocks</div>
644 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
645 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
646 </div>
647 </li>
648 <!-- <li class="">
649 <div class="bdt-grid">
650 <div class="bdt-width-expand@m">Elementor Extended Widgets</div>
651 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
652 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
653 </div>
654 </li>
655 <li class="">
656 <div class="bdt-grid">
657 <div class="bdt-width-expand@m">Live Copy or Paste</div>
658 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
659 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
660 </div>
661 </li>
662 <li class="">
663 <div class="bdt-grid">
664 <div class="bdt-width-expand@m">Duplicator</div>
665 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
666 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
667 </div>
668 </li>
669 <li class="">
670 <div class="bdt-grid">
671 <div class="bdt-width-expand@m">Video Link Meta</div>
672 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
673 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
674 </div>
675 </li>
676 <li class="">
677 <div class="bdt-grid">
678 <div class="bdt-width-expand@m">Category Image</div>
679 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
680 <div class="bdt-width-auto@m"><span class="dashicons dashicons-yes"></span></div>
681 </div>
682 </li> -->
683
684 </ul>
685
686
687 <div class="bdt-dashboard-divider"></div>
688
689
690 <div class="bdt-more-features">
691 <ul class="bdt-list bdt-list-divider bdt-text-left" style="font-size: 16px;">
692 <li>
693 <div class="bdt-grid">
694 <div class="bdt-width-1-3@m">
695 <span class="dashicons dashicons-heart"></span> Incredibly Advanced
696 </div>
697 <div class="bdt-width-1-3@m">
698 <span class="dashicons dashicons-heart"></span> Refund or Cancel Anytime
699 </div>
700 <div class="bdt-width-1-3@m">
701 <span class="dashicons dashicons-heart"></span> Dynamic Content
702 </div>
703 </div>
704 </li>
705
706 <li>
707 <div class="bdt-grid">
708 <div class="bdt-width-1-3@m">
709 <span class="dashicons dashicons-heart"></span> Super-Flexible Widgets
710 </div>
711 <div class="bdt-width-1-3@m">
712 <span class="dashicons dashicons-heart"></span> 24/7 Premium Support
713 </div>
714 <div class="bdt-width-1-3@m">
715 <span class="dashicons dashicons-heart"></span> Third Party Plugins
716 </div>
717 </div>
718 </li>
719
720 <li>
721 <div class="bdt-grid">
722 <div class="bdt-width-1-3@m">
723 <span class="dashicons dashicons-heart"></span> Special Discount!
724 </div>
725 <div class="bdt-width-1-3@m">
726 <span class="dashicons dashicons-heart"></span> Custom Field Integration
727 </div>
728 <div class="bdt-width-1-3@m">
729 <span class="dashicons dashicons-heart"></span> With Live Chat Support
730 </div>
731 </div>
732 </li>
733
734 <li>
735 <div class="bdt-grid">
736 <div class="bdt-width-1-3@m">
737 <span class="dashicons dashicons-heart"></span> Trusted Payment Methods
738 </div>
739 <div class="bdt-width-1-3@m">
740 <span class="dashicons dashicons-heart"></span> Interactive Effects
741 </div>
742 <div class="bdt-width-1-3@m">
743 <span class="dashicons dashicons-heart"></span> Video Tutorial
744 </div>
745 </div>
746 </li>
747 </ul>
748
749 <!-- <div class="bdt-dashboard-divider"></div> -->
750
751 <?php if (true !== _is_usk_pro_activated()) : ?>
752 <div class="bdt-purchase-button">
753 <a href="https://storekit.pro/pricing" target="_blank">Purchase Now</a>
754 </div>
755 <?php endif; ?>
756
757 </div>
758
759 </div>
760 </div>
761 </div>
762
763 </div>
764 <?php
765 }
766
767
768 function ultimate_store_kit_system_requirement() {
769 $php_version = phpversion();
770 $max_execution_time = ini_get('max_execution_time');
771 $memory_limit = ini_get('memory_limit');
772 $post_limit = ini_get('post_max_size');
773 $uploads = wp_upload_dir();
774 $upload_path = $uploads['basedir'];
775 $yes_icon = '<i class="dashicons-before dashicons-yes"></i>';
776 $no_icon = '<i class="dashicons-before dashicons-no-alt"></i>';
777 $icon_validation = [
778 'i' => [
779 'class' => []
780 ]
781 ];
782
783 $environment = Utils::get_environment_info();
784
785 ?>
786 <ul class="check-system-status bdt-grid bdt-child-width-1-2@m bdt-grid-small ">
787 <li>
788 <div>
789
790 <span class="label1"><?php esc_html_e('PHP Version:', 'ultimate-store-kit'); ?> </span>
791
792 <?php
793 if (version_compare($php_version, '7.0.0', '<')) {
794 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
795 printf('<span class="label2">Currently: %1$s (Min: 7.0 Recommended)</span>', esc_html($php_version));
796 } else {
797 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
798 printf('<span class="label2">Currently: %1$s</span>', esc_html($php_version));
799 }
800 ?>
801 </div>
802 </li>
803
804 <li>
805 <div>
806 <span class="label1"><?php esc_html_e('Maximum execution time:', 'ultimate-store-kit'); ?> </span>
807
808 <?php
809 if ($max_execution_time < '90') {
810 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
811 printf('<span class="label2">Currently: %1$s ( Min: 90 Recommended)</span>', esc_html($max_execution_time));
812 } else {
813 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
814 printf('<span class="label2">Currently: %1$s</span>', esc_html($max_execution_time));
815 }
816 ?>
817 </div>
818 </li>
819 <li>
820 <div>
821 <span class="label1"><?php esc_html_e('Memory Limit:', 'ultimate-store-kit'); ?> </span>
822
823 <?php
824 if (intval($memory_limit) < '256') {
825 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
826 printf('<span class="label2">Currently: %1$s (Min: 256M Recommended)</span>', esc_html($memory_limit));
827 } else {
828 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
829 printf('<span class="label2">Currently: %1$s</span>', esc_html($memory_limit));
830 }
831 ?>
832 </div>
833 </li>
834
835 <li>
836 <div>
837 <span class="label1"><?php esc_html_e('Max Post Limit:', 'ultimate-store-kit'); ?> </span>
838
839 <?php
840 if (intval($post_limit) < '32') {
841 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
842 printf('<span class="label2">Currently: %1$s (Min: 32M Recommended)</span>', esc_html($post_limit));
843 } else {
844 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
845 printf('<span class="label2">Currently: %1$s</span>', esc_html($post_limit));
846 }
847 ?>
848 </div>
849 </li>
850
851 <li>
852 <div>
853 <span class="label1"><?php esc_html_e('Uploads folder writable:', 'ultimate-store-kit'); ?></span>
854
855 <?php
856 if (!is_writable($upload_path)) {
857 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
858 } else {
859 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
860 }
861 ?>
862 </div>
863 </li>
864
865 <li>
866 <div>
867 <span class="label1"><?php esc_html_e('MultiSite: ', 'ultimate-store-kit'); ?></span>
868
869 <?php
870 if ($environment['wp_multisite']) {
871 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
872 echo '<span class="label2">MultiSite</span>';
873 } else {
874 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
875 echo '<span class="label2">No MultiSite </span>';
876 }
877 ?>
878 </div>
879 </li>
880
881 <li>
882 <div>
883 <span class="label1"><?php esc_html_e('GZip Enabled:', 'ultimate-store-kit'); ?></span>
884
885 <?php
886 if ($environment['gzip_enabled']) {
887 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
888 } else {
889 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
890 }
891 ?>
892 </div>
893 </li>
894
895 <li>
896 <div>
897 <span class="label1"><?php esc_html_e('Debug Mode: ', 'ultimate-store-kit'); ?></span>
898 <?php
899 if ($environment['wp_debug_mode']) {
900 printf('<span class="invalid">%1$s</span>', wp_kses($no_icon, $icon_validation));
901 echo '<span class="label2">Currently Turned On</span>';
902 } else {
903 printf('<span class="valid">%1$s</span>', wp_kses($yes_icon, $icon_validation));
904 echo '<span class="label2">Currently Turned Off</span>';
905 }
906 ?>
907 </div>
908 </li>
909
910 </ul>
911
912 <div class="bdt-admin-alert">
913 <strong><?php esc_html_e('Note:', 'ultimate-store-kit'); ?></strong> <?php esc_html_e('If you have multiple addons like'); ?> <b><?php esc_html_e('Ultimate Store Kit', 'ultimate-store-kit'); ?></b>
914 <?php esc_html_e('so you need some more requirement some
915 cases so make sure you added more memory for others addon too.', 'ultimate-store-kit'); ?>
916 </div>
917 <?php
918 }
919
920 function plugin_page() {
921
922 echo '<div class="wrap ultimate-store-kit-dashboard">';
923 printf('<h1>%1$s Settings</h1>', esc_html(BDTUSK_TITLE));
924
925 $this->settings_api->show_navigation();
926
927 ?>
928
929 <div class="bdt-switcher bdt-tab-container bdt-container-xlarge" style="touch-action: pan-y pinch-zoom;">
930 <!-- <div class="bdt-switcher"> -->
931 <div id="ultimate_store_kit_welcome_page" class="bdt-option-page group">
932 <?php $this->ultimate_store_kit_welcome(); ?>
933 </div>
934
935 <?php
936 $this->settings_api->show_forms();
937 ?>
938
939 <?php if (_is_usk_pro_activated() !== true) : ?>
940 <div id="ultimate_store_kit_get_pro" class="bdt-option-page group">
941 <?php $this->ultimate_store_kit_get_pro(); ?>
942 </div>
943 <?php endif; ?>
944
945 <div id="ultimate_store_kit_license_settings_page" class="bdt-option-page group">
946
947 <?php
948 if (_is_usk_pro_activated() == true) {
949 apply_filters('usk_license_page', '');
950 }
951
952 ?>
953
954 <?php if (!defined('BDTUSK_WL')) {
955 $this->footer_info();
956 } ?>
957 </div>
958
959 </div>
960
961 </div>
962
963 <?php if (!defined('BDTUSK_WL')) {
964 //$this->footer_info();
965 } ?>
966
967 <?php
968
969 $this->script();
970
971 ?>
972
973 <?php
974 }
975
976 /**
977 * Tabbable JavaScript codes & Initiate Color Picker
978 *
979 * This code uses localstorage for displaying active tabs
980 */
981 /**
982 * Tabbable JavaScript codes & Initiate Color Picker
983 *
984 * This code uses localstorage for displaying active tabs
985 */
986 function script() {
987 ?>
988 <script>
989 jQuery(document).ready(function() {
990 jQuery('.bdt-no-result').removeClass('bdt-animation-shake');
991 });
992
993 function filterSearch(e) {
994 var parentID = '#' + jQuery(e).data('id');
995 var search = jQuery(parentID).find('.bdt-search-input').val().toLowerCase();
996
997 jQuery(".bdt-options .usk-option-item").filter(function() {
998 jQuery(this).toggle(jQuery(this).attr('data-widget-name').toLowerCase().indexOf(search) > -1)
999 });
1000
1001 if (!search) {
1002 jQuery(parentID).find('.bdt-search-input').attr('bdt-filter-control', "");
1003 jQuery(parentID).find('.bdt-widget-all').trigger('click');
1004 } else {
1005 jQuery(parentID).find('.bdt-search-input').attr('bdt-filter-control', "filter: [data-widget-name*='" + search + "']");
1006 jQuery(parentID).find('.bdt-search-input').removeClass('bdt-active'); // Thanks to Bar-Rabbas
1007 jQuery(parentID).find('.bdt-search-input').trigger('click');
1008 }
1009 }
1010
1011 jQuery('.bdt-options-parent').each(function(e, item) {
1012 var eachItem = '#' + jQuery(item).attr('id');
1013 jQuery(eachItem).on("beforeFilter", function() {
1014 jQuery(eachItem).find('.bdt-no-result').removeClass('bdt-animation-shake');
1015 });
1016
1017 jQuery(eachItem).on("afterFilter", function() {
1018
1019 var isElementVisible = false;
1020 var i = 0;
1021
1022 if (jQuery(eachItem).closest(".usk-options-parent").eq(i).is(":visible")) {} else {
1023 isElementVisible = true;
1024 }
1025
1026 while (!isElementVisible && i < jQuery(eachItem).find(".bdt-option-item").length) {
1027 if (jQuery(eachItem).find(".bdt-option-item").eq(i).is(":visible")) {
1028 isElementVisible = true;
1029 }
1030 i++;
1031 }
1032
1033 if (isElementVisible === false) {
1034 jQuery(eachItem).find('.bdt-no-result').addClass('bdt-animation-shake');
1035 }
1036 });
1037
1038
1039 });
1040
1041
1042 jQuery('.bdt-widget-filter-nav li a').on('click', function(e) {
1043 jQuery(this).closest('.bdt-widget-filter-wrapper').find('.bdt-search-input').val('');
1044 jQuery(this).closest('.bdt-widget-filter-wrapper').find('.bdt-search-input').val('').attr('bdt-filter-control', '');
1045 });
1046
1047
1048 jQuery(document).ready(function($) {
1049 'use strict';
1050
1051 function hashHandler() {
1052 var $tab = jQuery('.ultimate-store-kit-dashboard .bdt-tab');
1053 if (window.location.hash) {
1054 var hash = window.location.hash.substring(1);
1055 bdtUIkit.tab($tab).show(jQuery('#bdt-' + hash).data('tab-index'));
1056 }
1057 }
1058
1059 jQuery(window).on('load', function() {
1060 hashHandler();
1061 });
1062
1063 window.addEventListener("hashchange", hashHandler, true);
1064
1065 jQuery('.toplevel_page_ultimate_store_kit_options > ul > li > a ').on('click', function(event) {
1066 jQuery(this).parent().siblings().removeClass('current');
1067 jQuery(this).parent().addClass('current');
1068 });
1069
1070 jQuery('#ultimate_store_kit_active_modules_page a.bdt-active-all-widget').click(function(e) {
1071 e.preventDefault();
1072 jQuery('#ultimate_store_kit_active_modules_page .usk-option-item:not(.usk-pro-inactive) .checkbox:visible').not("[disabled]").each(function() {
1073 jQuery(this).attr('checked', 'checked').prop("checked", true);
1074 });
1075
1076 jQuery(this).addClass('bdt-active');
1077 jQuery('a.bdt-deactive-all-widget').removeClass('bdt-active');
1078 });
1079
1080 jQuery('#ultimate_store_kit_active_modules_page a.bdt-deactive-all-widget').click(function(e) {
1081 e.preventDefault();
1082 jQuery('#ultimate_store_kit_active_modules_page .usk-option-item:not(.usk-pro-inactive) .checkbox:visible').not("[disabled]").each(function() {
1083 jQuery(this).removeAttr('checked');
1084 });
1085
1086 jQuery(this).addClass('bdt-active');
1087 jQuery('a.bdt-active-all-widget').removeClass('bdt-active');
1088 });
1089
1090 jQuery('#ultimate_store_kit_edd_modules_page a.bdt-active-all-widget').click(function() {
1091
1092 jQuery('#ultimate_store_kit_edd_modules_page .checkbox:visible').not("[disabled]").each(function() {
1093 jQuery(this).attr('checked', 'checked').prop("checked", true);
1094 });
1095
1096 jQuery(this).addClass('bdt-active');
1097 jQuery('a.bdt-deactive-all-widget').removeClass('bdt-active');
1098 });
1099
1100 jQuery('#ultimate_store_kit_edd_modules_page a.bdt-deactive-all-widget').click(function() {
1101
1102 jQuery('#ultimate_store_kit_edd_modules_page .checkbox:visible').not("[disabled]").each(function() {
1103 jQuery(this).removeAttr('checked');
1104 });
1105
1106 jQuery(this).addClass('bdt-active');
1107 jQuery('a.bdt-active-all-widget').removeClass('bdt-active');
1108 });
1109
1110 /**
1111 * Others Widget
1112 */
1113 jQuery('#ultimate_store_kit_general_modules_page a.bdt-active-all-widget').click(function() {
1114
1115 jQuery('#ultimate_store_kit_general_modules_page .checkbox:visible').not("[disabled]").each(function() {
1116 jQuery(this).attr('checked', 'checked').prop("checked", true);
1117 });
1118
1119 jQuery(this).addClass('bdt-active');
1120 jQuery('a.bdt-deactive-all-widget').removeClass('bdt-active');
1121 });
1122
1123 jQuery('#ultimate_store_kit_general_modules_page a.bdt-deactive-all-widget').click(function() {
1124
1125 jQuery('#ultimate_store_kit_general_modules_page .checkbox:visible').not("[disabled]").each(function() {
1126 jQuery(this).removeAttr('checked');
1127 });
1128
1129 jQuery(this).addClass('bdt-active');
1130 jQuery('a.bdt-active-all-widget').removeClass('bdt-active');
1131 });
1132
1133
1134 jQuery('form.settings-save').submit(function(event) {
1135 event.preventDefault();
1136
1137 bdtUIkit.notification({
1138 message: '<div bdt-spinner></div> <?php esc_html_e('Please wait, Saving settings...', 'ultimate-store-kit') ?>',
1139 timeout: false
1140 });
1141
1142 jQuery(this).ajaxSubmit({
1143 success: function() {
1144 bdtUIkit.notification.closeAll();
1145 bdtUIkit.notification({
1146 message: '<span class="dashicons dashicons-yes"></span> <?php esc_html_e('Settings Saved Successfully.', 'ultimate-store-kit') ?>',
1147 status: 'primary'
1148 });
1149 },
1150 error: function(data) {
1151 bdtUIkit.notification.closeAll();
1152 bdtUIkit.notification({
1153 message: '<span bdt-icon=\'icon: warning\'></span> <?php esc_html_e('Unknown error, make sure access is correct!', 'ultimate-store-kit') ?>',
1154 status: 'warning'
1155 });
1156 }
1157 });
1158
1159 return false;
1160 });
1161
1162 jQuery('#ultimate_store_kit_active_modules_page .usk-pro-inactive .checkbox').each(function() {
1163 jQuery(this).removeAttr('checked');
1164 jQuery(this).attr("disabled", true);
1165 });
1166 jQuery('#ultimate_store_kit_edd_modules_page .usk-pro-inactive .checkbox').each(function() {
1167 jQuery(this).removeAttr('checked');
1168 jQuery(this).attr("disabled", true);
1169 });
1170
1171
1172 });
1173 </script>
1174 <?php
1175 }
1176
1177 function footer_info() {
1178 ?>
1179 <div class="ultimate-store-kit-footer-info">
1180 <p><?php esc_html_e('Ultimate Store Kit Addon made with love by', 'ultimate-store-kit'); ?> <a target="_blank" href="https://bdthemes.com"><?php esc_html_e('BdThemes', 'ultimate-store-kit'); ?></a> <?php esc_html_e('Team.', 'ultimate-store-kit'); ?> <br><?php esc_html_e('All
1181 rights reserved by BdThemes.', 'ultimate-store-kit'); ?></p>
1182 </div>
1183 <?php
1184 }
1185
1186 /**
1187 * Get all the pages
1188 *
1189 * @return array page names with key value pairs
1190 */
1191 function get_pages() {
1192 $pages = get_pages();
1193 $pages_options = [];
1194 if ($pages) {
1195 foreach ($pages as $page) {
1196 $pages_options[$page->ID] = $page->post_title;
1197 }
1198 }
1199
1200 return $pages_options;
1201 }
1202 }
1203
1204 new UltimateStoreKit_Admin_Settings();
1205