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 / Activity_Log / templates / view-dashboard.php

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

129 lines 5.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Activity Log dashboard view.
4 *
5 * @package King_Addons
6 */
7
8 if (!defined('ABSPATH')) {
9 exit;
10 }
11
12 $stats = $this->get_dashboard_stats();
13 $series = $this->get_events_over_time(14);
14 $top_events = $this->get_top_events();
15 $top_users = $this->get_top_users();
16 $max_count = 0;
17 foreach ($series as $point) {
18 $max_count = max($max_count, (int) $point['count']);
19 }
20 ?>
21
22 <div class="ka-stats-grid">
23 <div class="ka-stat-card">
24 <div class="ka-stat-label"><?php esc_html_e('Events (24h)', 'king-addons'); ?></div>
25 <div class="ka-stat-value"><?php echo esc_html(number_format_i18n($stats['total_24h'])); ?></div>
26 <div class="ka-stat-note"><?php esc_html_e('Total activity logged', 'king-addons'); ?></div>
27 </div>
28 <div class="ka-stat-card">
29 <div class="ka-stat-label"><?php esc_html_e('Failed Logins (24h)', 'king-addons'); ?></div>
30 <div class="ka-stat-value"><?php echo esc_html(number_format_i18n($stats['failed_24h'])); ?></div>
31 <div class="ka-stat-note"><?php esc_html_e('Auth warnings', 'king-addons'); ?></div>
32 </div>
33 <div class="ka-stat-card">
34 <div class="ka-stat-label"><?php esc_html_e('Critical Events (7d)', 'king-addons'); ?></div>
35 <div class="ka-stat-value"><?php echo esc_html(number_format_i18n($stats['critical_7d'])); ?></div>
36 <div class="ka-stat-note"><?php esc_html_e('High severity changes', 'king-addons'); ?></div>
37 </div>
38 <div class="ka-stat-card">
39 <div class="ka-stat-label"><?php esc_html_e('Unique Users (7d)', 'king-addons'); ?></div>
40 <div class="ka-stat-value"><?php echo esc_html(number_format_i18n($stats['unique_users_7d'])); ?></div>
41 <div class="ka-stat-note"><?php esc_html_e('Distinct actors', 'king-addons'); ?></div>
42 </div>
43 </div>
44
45 <div class="kng-activity-dashboard-grid">
46 <div class="ka-card">
47 <div class="ka-card-header">
48 <span class="dashicons dashicons-chart-bar purple"></span>
49 <h2><?php esc_html_e('Events over 14 days', 'king-addons'); ?></h2>
50 </div>
51 <div class="ka-card-body">
52 <div class="kng-activity-chart">
53 <?php foreach ($series as $point) :
54 $height = $max_count > 0 ? (int) round(($point['count'] / $max_count) * 100) : 0;
55 $label = wp_date('M j', strtotime($point['date'] . ' UTC'));
56 ?>
57 <div class="kng-activity-bar" style="--kng-bar-height: <?php echo esc_attr($height); ?>%;">
58 <span class="kng-activity-bar-count"><?php echo esc_html(number_format_i18n($point['count'])); ?></span>
59 <small class="kng-activity-bar-label"><?php echo esc_html($label); ?></small>
60 </div>
61 <?php endforeach; ?>
62 </div>
63 </div>
64 </div>
65
66 <div class="ka-card">
67 <div class="ka-card-header">
68 <span class="dashicons dashicons-analytics purple"></span>
69 <h2><?php esc_html_e('Top Event Types', 'king-addons'); ?></h2>
70 </div>
71 <div class="ka-card-body">
72 <?php if (empty($top_events)) : ?>
73 <div class="ka-empty">
74 <span class="dashicons dashicons-clipboard"></span>
75 <p><?php esc_html_e('No events yet.', 'king-addons'); ?></p>
76 </div>
77 <?php else : ?>
78 <ul class="kng-activity-list">
79 <?php foreach ($top_events as $row) : ?>
80 <li>
81 <span><?php echo esc_html($row->event_key); ?></span>
82 <strong><?php echo esc_html(number_format_i18n($row->total)); ?></strong>
83 </li>
84 <?php endforeach; ?>
85 </ul>
86 <?php endif; ?>
87 </div>
88 </div>
89
90 <div class="ka-card">
91 <div class="ka-card-header">
92 <span class="dashicons dashicons-admin-users purple"></span>
93 <h2><?php esc_html_e('Top Users', 'king-addons'); ?></h2>
94 </div>
95 <div class="ka-card-body">
96 <?php if (empty($top_users)) : ?>
97 <div class="ka-empty">
98 <span class="dashicons dashicons-admin-users"></span>
99 <p><?php esc_html_e('No user activity yet.', 'king-addons'); ?></p>
100 </div>
101 <?php else : ?>
102 <ul class="kng-activity-list">
103 <?php foreach ($top_users as $row) : ?>
104 <li>
105 <span><?php echo esc_html($row->user_login); ?></span>
106 <strong><?php echo esc_html(number_format_i18n($row->total)); ?></strong>
107 </li>
108 <?php endforeach; ?>
109 </ul>
110 <?php endif; ?>
111 </div>
112 </div>
113 </div>
114
115 <?php if (!$is_pro) : ?>
116 <div class="ka-upgrade-card">
117 <h2><?php esc_html_e('Upgrade to Activity Log Pro', 'king-addons'); ?></h2>
118 <p><?php esc_html_e('Unlock diff viewer, tamper detection, alerts, and advanced filters.', 'king-addons'); ?></p>
119 <ul>
120 <li><?php esc_html_e('Option changes, WooCommerce, and King Addons events', 'king-addons'); ?></li>
121 <li><?php esc_html_e('Real-time alerts via email and webhooks', 'king-addons'); ?></li>
122 <li><?php esc_html_e('Extended retention and export automation', 'king-addons'); ?></li>
123 </ul>
124 <a href="https://kingaddons.com/pricing/" target="_blank" class="ka-btn ka-btn-pink">
125 <?php esc_html_e('Upgrade to Pro', 'king-addons'); ?>
126 </a>
127 </div>
128 <?php endif; ?>
129