-
Notifications
You must be signed in to change notification settings - Fork 0
/
activate.php
67 lines (61 loc) · 2.43 KB
/
activate.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
register_activation_hook(__DIR__ . '/ahoy.php', 'ahoy_activation');
register_uninstall_hook(__DIR__ . '/ahoy.php', 'ahoy_uninstall');
function ahoy_activation(): void
{
global $wpdb;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$charset_collate = $wpdb->get_charset_collate();
// visits table
$visits_table_name = $wpdb->prefix . "ahoy_visits";
$sql = <<<SQL
CREATE TABLE IF NOT EXISTS {$visits_table_name} (
`id` BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`visit_token` VARCHAR(255) UNIQUE,
`visitor_token` VARCHAR(255),
`user_id` BIGINT,
`ip` VARCHAR(255),
`user_agent` TEXT,
`referrer` TEXT,
`referring_domain` VARCHAR(255),
`landing_page` TEXT,
`browser` VARCHAR(255),
`os` VARCHAR(255),
`device_type` VARCHAR(255),
`country` VARCHAR(255),
`region` VARCHAR(255),
`city` VARCHAR(255),
`latitude` DECIMAL(11,7),
`longitude` DECIMAL(11,7),
`utm_source` VARCHAR(255),
`utm_medium` VARCHAR(255),
`utm_term` VARCHAR(255),
`utm_content` VARCHAR(255),
`utm_campaign` VARCHAR(255),
`app_version` VARCHAR(255),
`os_version` VARCHAR(255),
`platform` VARCHAR(255),
`started_at` DATETIME(6),
INDEX `visitor_token_started_at_idx` (`visitor_token`, `started_at`)
) {$charset_collate}
SQL;
dbDelta($sql);
// events table
$events_table_name = $wpdb->prefix . "ahoy_events";
$sql = <<<SQL
CREATE TABLE IF NOT EXISTS {$events_table_name} (
`id` BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`visit_id` BIGINT,
`user_id` BIGINT,
`name` VARCHAR(255),
`properties` TEXT,
`time` DATETIME(6),
INDEX `name_time_idx` (`name`, `time`),
FOREIGN KEY (`visit_id`) REFERENCES `{$visits_table_name}`(`id`) ON DELETE CASCADE
) {$charset_collate}
SQL;
dbDelta($sql);
}
function ahoy_uninstall(): void
{
}