PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.83
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.83
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 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / extensions / Maintenance_Mode / templates / admin-page.php

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

162 lines 6.6 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 = 'auto';
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 'analytics_reset' => esc_html__('Analytics reset.', 'king-addons'),
57 'token_generated' => esc_html__('Access token generated.', 'king-addons'),
58 'token_revoked' => esc_html__('Access token revoked.', 'king-addons'),
59 'password_revoked' => esc_html__('Password protection revoked.', 'king-addons'),
60 'error_import' => esc_html__('Import failed. Please check the JSON file.', 'king-addons'),
61 ];
62 $has_message = $message_code !== '' && isset($messages[$message_code]);
63 $is_token_message = in_array($message_code, ['token_generated', 'token_revoked'], true);
64 $is_error_message = strpos($message_code, 'error_') === 0;
65
66 // Token/password actions are displayed inline in the Mode view (Private Access card).
67 if ($current_view === 'mode' && ($is_token_message || $message_code === 'password_revoked')) {
68 $has_message = false;
69 }
70
71 $enabled = !empty($settings['enabled']);
72 $mode = $settings['mode'] ?? 'coming_soon';
73 ?>
74
75 <script>
76 document.body.classList.add('ka-admin-v3');
77 (function() {
78 const mode = '<?php echo esc_js($theme_mode); ?>';
79 const mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
80 const isDark = mode === 'auto' ? !!(mql && mql.matches) : mode === 'dark';
81 document.documentElement.classList.toggle('ka-v3-dark', isDark);
82 document.body.classList.toggle('ka-v3-dark', isDark);
83 })();
84 </script>
85
86 <div class="ka-admin-wrap kng-maintenance-admin">
87 <div class="ka-admin-header">
88 <div class="ka-admin-header-left">
89 <div class="ka-admin-header-icon blue">
90 <span class="dashicons dashicons-hammer"></span>
91 </div>
92 <div>
93 <h1 class="ka-admin-title"><?php esc_html_e('Maintenance Mode', 'king-addons'); ?></h1>
94 <p class="ka-admin-subtitle"><?php esc_html_e('Control access, coming soon pages, and maintenance responses with premium polish.', 'king-addons'); ?></p>
95 </div>
96 </div>
97 <div class="ka-admin-header-actions">
98 <span class="ka-status <?php echo $enabled ? 'ka-status-enabled' : 'ka-status-disabled'; ?>">
99 <span class="ka-status-dot"></span>
100 <?php echo $enabled ? esc_html__('Enabled', 'king-addons') : esc_html__('Disabled', 'king-addons'); ?>
101 </span>
102 <div class="ka-v3-segmented" id="ka-v3-theme-segment" role="radiogroup" aria-label="Theme" data-active="<?php echo esc_attr($theme_mode); ?>">
103 <span class="ka-v3-segmented-indicator" aria-hidden="true"></span>
104 <button type="button" class="ka-v3-segmented-btn" data-theme="light" aria-pressed="<?php echo $theme_mode === 'light' ? 'true' : 'false'; ?>">
105 <span class="ka-v3-segmented-icon" aria-hidden="true">☀︎</span>
106 <?php esc_html_e('Light', 'king-addons'); ?>
107 </button>
108 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>">
109 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
110 <?php esc_html_e('Dark', 'king-addons'); ?>
111 </button>
112 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>">
113 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
114 <?php esc_html_e('Auto', 'king-addons'); ?>
115 </button>
116 </div>
117 </div>
118 </div>
119
120 <div class="ka-tabs kng-maintenance-tabs">
121 <?php foreach ($tabs as $key => $tab) : ?>
122 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
123 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
124 <?php echo esc_html($tab['label']); ?>
125 </a>
126 <?php endforeach; ?>
127 </div>
128
129 <?php if ($has_message && !$is_token_message) : ?>
130 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
131 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
132 <?php echo esc_html($messages[$message_code]); ?>
133 </div>
134 <?php endif; ?>
135
136 <?php
137 switch ($current_view) {
138 case 'mode':
139 include __DIR__ . '/view-mode.php';
140 break;
141 case 'page-builder':
142 include __DIR__ . '/view-page-builder.php';
143 break;
144 case 'rules':
145 include __DIR__ . '/view-rules.php';
146 break;
147 case 'schedule':
148 include __DIR__ . '/view-schedule.php';
149 break;
150 case 'analytics':
151 include __DIR__ . '/view-analytics.php';
152 break;
153 case 'import-export':
154 include __DIR__ . '/view-import-export.php';
155 break;
156 default:
157 include __DIR__ . '/view-dashboard.php';
158 break;
159 }
160 ?>
161 </div>
162