PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.44
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.44
51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 All 40 releases
king-addons / includes / extensions / Maintenance_Mode / templates / admin-page.php

admin-page.php in King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder 51.1.44, at includes/extensions/Maintenance_Mode/templates/admin-page.php

151 lines 6.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Maintenance Mode admin page.
4 *
5 * @package King_Addons
6 */
7
8 if (!defined('ABSPATH')) {
9 exit;
10 }
11
12 $theme_mode = get_user_meta(get_current_user_id(), 'king_addons_theme_mode', true);
13 $allowed_theme_modes = ['dark', 'light', 'auto'];
14 if (!in_array($theme_mode, $allowed_theme_modes, true)) {
15 $theme_mode = 'dark';
16 }
17
18 $tabs = [
19 'dashboard' => [
20 'label' => esc_html__('Dashboard', 'king-addons'),
21 'icon' => 'dashicons-chart-line',
22 ],
23 'mode' => [
24 'label' => esc_html__('Mode Settings', 'king-addons'),
25 'icon' => 'dashicons-admin-generic',
26 ],
27 'page-builder' => [
28 'label' => esc_html__('Page Builder', 'king-addons'),
29 'icon' => 'dashicons-welcome-widgets-menus',
30 ],
31 'rules' => [
32 'label' => esc_html__('Rules', 'king-addons'),
33 'icon' => 'dashicons-filter',
34 ],
35 'schedule' => [
36 'label' => esc_html__('Schedule', 'king-addons'),
37 'icon' => 'dashicons-clock',
38 ],
39 'analytics' => [
40 'label' => esc_html__('Analytics', 'king-addons'),
41 'icon' => 'dashicons-chart-area',
42 ],
43 'import-export' => [
44 'label' => esc_html__('Import Export', 'king-addons'),
45 'icon' => 'dashicons-upload',
46 ],
47 ];
48
49 $base_url = admin_url('admin.php?page=king-addons-maintenance-mode');
50 $current_view = array_key_exists($view, $tabs) ? $view : 'dashboard';
51
52 $message_code = isset($_GET['message']) ? sanitize_key($_GET['message']) : '';
53 $messages = [
54 'saved' => esc_html__('Settings saved.', 'king-addons'),
55 'imported' => esc_html__('Settings imported.', 'king-addons'),
56 'error_import' => esc_html__('Import failed. Please check the JSON file.', 'king-addons'),
57 ];
58 $has_message = $message_code !== '' && isset($messages[$message_code]);
59 $is_error_message = strpos($message_code, 'error_') === 0;
60
61 $enabled = !empty($settings['enabled']);
62 $mode = $settings['mode'] ?? 'coming_soon';
63 ?>
64
65 <script>
66 document.body.classList.add('ka-admin-v3');
67 (function() {
68 const mode = '<?php echo esc_js($theme_mode); ?>';
69 const mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
70 const isDark = mode === 'auto' ? !!(mql && mql.matches) : mode === 'dark';
71 document.documentElement.classList.toggle('ka-v3-dark', isDark);
72 document.body.classList.toggle('ka-v3-dark', isDark);
73 })();
74 </script>
75
76 <div class="ka-admin-wrap kng-maintenance-admin">
77 <div class="ka-admin-header">
78 <div class="ka-admin-header-left">
79 <div class="ka-admin-header-icon blue">
80 <span class="dashicons dashicons-hammer"></span>
81 </div>
82 <div>
83 <h1 class="ka-admin-title"><?php esc_html_e('Maintenance Mode', 'king-addons'); ?></h1>
84 <p class="ka-admin-subtitle"><?php esc_html_e('Control access, coming soon pages, and maintenance responses with Apple-like polish.', 'king-addons'); ?></p>
85 </div>
86 </div>
87 <div class="ka-admin-header-actions">
88 <span class="ka-status <?php echo $enabled ? 'ka-status-enabled' : 'ka-status-disabled'; ?>">
89 <span class="ka-status-dot"></span>
90 <?php echo $enabled ? esc_html__('Enabled', 'king-addons') : esc_html__('Disabled', 'king-addons'); ?>
91 </span>
92 <span class="ka-status <?php echo $mode === 'maintenance' ? 'ka-status-warning' : 'ka-status-enabled'; ?>">
93 <span class="ka-status-dot"></span>
94 <?php echo $mode === 'maintenance' ? esc_html__('Maintenance', 'king-addons') : esc_html__('Coming Soon', 'king-addons'); ?>
95 </span>
96 <div class="ka-v3-segmented" id="ka-v3-theme-segment" role="radiogroup" aria-label="Theme" data-active="<?php echo esc_attr($theme_mode); ?>">
97 <span class="ka-v3-segmented-indicator" aria-hidden="true"></span>
98 <button type="button" class="ka-v3-segmented-btn" data-theme="light" aria-pressed="<?php echo $theme_mode === 'light' ? 'true' : 'false'; ?>"><?php esc_html_e('Light', 'king-addons'); ?></button>
99 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>"><?php esc_html_e('Dark', 'king-addons'); ?></button>
100 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>"><?php esc_html_e('Auto', 'king-addons'); ?></button>
101 </div>
102 <a href="<?php echo esc_url(add_query_arg(['view' => 'mode'], $base_url)); ?>" class="ka-btn ka-btn-primary">
103 <span class="dashicons dashicons-controls-play"></span>
104 <?php esc_html_e('Configure Mode', 'king-addons'); ?>
105 </a>
106 </div>
107 </div>
108
109 <div class="ka-tabs kng-maintenance-tabs">
110 <?php foreach ($tabs as $key => $tab) : ?>
111 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
112 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
113 <?php echo esc_html($tab['label']); ?>
114 </a>
115 <?php endforeach; ?>
116 </div>
117
118 <?php if ($has_message) : ?>
119 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
120 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
121 <?php echo esc_html($messages[$message_code]); ?>
122 </div>
123 <?php endif; ?>
124
125 <?php
126 switch ($current_view) {
127 case 'mode':
128 include __DIR__ . '/view-mode.php';
129 break;
130 case 'page-builder':
131 include __DIR__ . '/view-page-builder.php';
132 break;
133 case 'rules':
134 include __DIR__ . '/view-rules.php';
135 break;
136 case 'schedule':
137 include __DIR__ . '/view-schedule.php';
138 break;
139 case 'analytics':
140 include __DIR__ . '/view-analytics.php';
141 break;
142 case 'import-export':
143 include __DIR__ . '/view-import-export.php';
144 break;
145 default:
146 include __DIR__ . '/view-dashboard.php';
147 break;
148 }
149 ?>
150 </div>
151