PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.82
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.82
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 / Activity_Log_DB.php

Activity_Log_DB.php in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.82, at includes/extensions/Activity_Log/Activity_Log_DB.php

78 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Activity Log database schema.
4 *
5 * @package King_Addons
6 */
7
8 namespace King_Addons\Activity_Log;
9
10 if (!defined('ABSPATH')) {
11 exit;
12 }
13
14 class Activity_Log_DB
15 {
16 private const DB_VERSION = '1.0.0';
17
18 public static function get_table(): string
19 {
20 global $wpdb;
21
22 return $wpdb->prefix . 'kng_activity_log';
23 }
24
25 public static function maybe_create_table(): void
26 {
27 $installed = get_option('king_addons_activity_log_db_version');
28 if ($installed === self::DB_VERSION) {
29 return;
30 }
31
32 self::create_table();
33 update_option('king_addons_activity_log_db_version', self::DB_VERSION);
34 }
35
36 private static function create_table(): void
37 {
38 global $wpdb;
39
40 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
41
42 $table = self::get_table();
43 $charset = $wpdb->get_charset_collate();
44
45 $sql = "CREATE TABLE {$table} (
46 id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
47 created_at DATETIME NOT NULL,
48 event_key VARCHAR(191) NOT NULL,
49 severity VARCHAR(20) NOT NULL DEFAULT 'info',
50 user_id BIGINT UNSIGNED NULL,
51 user_login VARCHAR(60) NULL,
52 user_role VARCHAR(191) NULL,
53 ip VARCHAR(191) NULL,
54 user_agent TEXT NULL,
55 object_type VARCHAR(50) NOT NULL DEFAULT '',
56 object_id VARCHAR(191) NULL,
57 object_title VARCHAR(191) NULL,
58 source VARCHAR(191) NOT NULL DEFAULT '',
59 context VARCHAR(50) NOT NULL DEFAULT '',
60 message TEXT NULL,
61 data LONGTEXT NULL,
62 checksum VARCHAR(64) NULL,
63 chain_prev_checksum VARCHAR(64) NULL,
64 PRIMARY KEY (id),
65 KEY created_at (created_at),
66 KEY event_key (event_key),
67 KEY severity (severity),
68 KEY user_id (user_id),
69 KEY ip (ip),
70 KEY object_type (object_type),
71 KEY object_id (object_id),
72 KEY source (source)
73 ) {$charset};";
74
75 dbDelta($sql);
76 }
77 }
78