PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.78
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.78
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 / Smart_Links / 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.78, at includes/extensions/Smart_Links/templates/admin-page.php

160 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 * Smart Links admin page template.
4 *
5 * @package King_Addons
6 */
7
8 use King_Addons\Smart_Links\Smart_Links;
9 use King_Addons\Smart_Links\Smart_Links_Settings;
10 use King_Addons\Smart_Links\Smart_Links_Service;
11
12 if (!defined('ABSPATH')) {
13 exit;
14 }
15
16 $theme_mode = get_user_meta(get_current_user_id(), 'king_addons_theme_mode', true);
17 $allowed_theme_modes = ['dark', 'light', 'auto'];
18 if (!in_array($theme_mode, $allowed_theme_modes, true)) {
19 $theme_mode = 'dark';
20 }
21
22 $tabs = [
23 'dashboard' => [
24 'label' => esc_html__('Dashboard', 'king-addons'),
25 'icon' => 'dashicons-chart-line',
26 ],
27 'links' => [
28 'label' => esc_html__('Links', 'king-addons'),
29 'icon' => 'dashicons-admin-links',
30 ],
31 'add' => [
32 'label' => esc_html__('Add New', 'king-addons'),
33 'icon' => 'dashicons-plus',
34 ],
35 'analytics' => [
36 'label' => esc_html__('Analytics', 'king-addons'),
37 'icon' => 'dashicons-chart-bar',
38 ],
39 'settings' => [
40 'label' => esc_html__('Settings', 'king-addons'),
41 'icon' => 'dashicons-admin-generic',
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-smart-links');
50 $current_view = array_key_exists($view, $tabs) ? $view : 'dashboard';
51
52 $message_code = isset($_GET['message']) ? sanitize_key($_GET['message']) : '';
53 $messages = [
54 'created' => esc_html__('Link created successfully.', 'king-addons'),
55 'updated' => esc_html__('Link updated successfully.', 'king-addons'),
56 'deleted' => esc_html__('Link deleted.', 'king-addons'),
57 'duplicated' => esc_html__('Link duplicated.', 'king-addons'),
58 'imported' => esc_html__('Links imported successfully.', 'king-addons'),
59 'error_invalid_url' => esc_html__('Destination URL is invalid.', 'king-addons'),
60 'error_save' => esc_html__('Unable to save the link.', 'king-addons'),
61 'error_not_found' => esc_html__('Link not found.', 'king-addons'),
62 'error_bulk' => esc_html__('Select at least one link and an action.', 'king-addons'),
63 'error_import' => esc_html__('Import failed. Check your CSV file.', 'king-addons'),
64 ];
65 $has_message = $message_code !== '' && isset($messages[$message_code]);
66 $is_error_message = strpos($message_code, 'error_') === 0;
67
68 $tracking_enabled = !empty($settings['tracking_enabled']);
69 $tracking_status = $tracking_enabled ? esc_html__('Tracking On', 'king-addons') : esc_html__('Tracking Off', 'king-addons');
70 ?>
71
72 <script>
73 document.body.classList.add('ka-admin-v3');
74 (function() {
75 const mode = '<?php echo esc_js($theme_mode); ?>';
76 const mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
77 const isDark = mode === 'auto' ? !!(mql && mql.matches) : mode === 'dark';
78 document.documentElement.classList.toggle('ka-v3-dark', isDark);
79 document.body.classList.toggle('ka-v3-dark', isDark);
80 })();
81 </script>
82
83 <div class="ka-admin-wrap">
84 <div class="ka-admin-header">
85 <div class="ka-admin-header-left">
86 <div class="ka-admin-header-icon green">
87 <span class="dashicons dashicons-admin-links"></span>
88 </div>
89 <div>
90 <h1 class="ka-admin-title"><?php esc_html_e('Smart Links', 'king-addons'); ?></h1>
91 <p class="ka-admin-subtitle"><?php esc_html_e('Shorten, track, and optimize your campaign links.', 'king-addons'); ?></p>
92 </div>
93 </div>
94 <div class="ka-admin-header-actions">
95 <span class="ka-status <?php echo $tracking_enabled ? 'ka-status-enabled' : 'ka-status-disabled'; ?>">
96 <span class="ka-status-dot"></span>
97 <?php echo esc_html($tracking_status); ?>
98 </span>
99 <div class="ka-v3-segmented" id="ka-v3-theme-segment" role="radiogroup" aria-label="Theme" data-active="<?php echo esc_attr($theme_mode); ?>">
100 <span class="ka-v3-segmented-indicator" aria-hidden="true"></span>
101 <button type="button" class="ka-v3-segmented-btn" data-theme="light" aria-pressed="<?php echo $theme_mode === 'light' ? 'true' : 'false'; ?>">
102 <span class="ka-v3-segmented-icon" aria-hidden="true">☀︎</span>
103 <?php esc_html_e('Light', 'king-addons'); ?>
104 </button>
105 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>">
106 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
107 <?php esc_html_e('Dark', 'king-addons'); ?>
108 </button>
109 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>">
110 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
111 <?php esc_html_e('Auto', 'king-addons'); ?>
112 </button>
113 </div>
114 <a href="<?php echo esc_url(add_query_arg(['view' => 'add'], $base_url)); ?>" class="ka-btn ka-btn-primary">
115 <span class="dashicons dashicons-plus"></span>
116 <?php esc_html_e('Add New', 'king-addons'); ?>
117 </a>
118 </div>
119 </div>
120
121 <div class="ka-tabs ka-smart-links-tabs">
122 <?php foreach ($tabs as $key => $tab) : ?>
123 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
124 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
125 <?php echo esc_html($tab['label']); ?>
126 </a>
127 <?php endforeach; ?>
128 </div>
129
130 <?php if ($has_message) : ?>
131 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
132 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
133 <?php echo esc_html($messages[$message_code]); ?>
134 </div>
135 <?php endif; ?>
136
137 <?php
138 switch ($current_view) {
139 case 'links':
140 include __DIR__ . '/view-links.php';
141 break;
142 case 'add':
143 include __DIR__ . '/view-edit.php';
144 break;
145 case 'analytics':
146 include __DIR__ . '/view-analytics.php';
147 break;
148 case 'settings':
149 include __DIR__ . '/view-settings.php';
150 break;
151 case 'import-export':
152 include __DIR__ . '/view-import-export.php';
153 break;
154 default:
155 include __DIR__ . '/view-dashboard.php';
156 break;
157 }
158 ?>
159 </div>
160