Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/fluentform/database/Migrations/FormAnalytics.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
3
+
namespace FluentForm\Database\Migrations;
4
+
5
+
class FormAnalytics
6
+
{
7
+
/**
8
+
* Migrate the table.
9
+
*
10
+
* @return void
11
+
*/
12
+
public static function migrate()
13
+
{
14
+
global $wpdb;
15
+
16
+
$charsetCollate = $wpdb->get_charset_collate();
17
+
18
+
$table = $wpdb->prefix . 'fluentform_form_analytics';
19
+
20
+
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Migration file, direct query needed
21
+
if ($wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $table)) != $table) {
22
+
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange -- Migration file, schema change is the purpose
23
+
$sql = "CREATE TABLE $table (
24
+
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
25
+
`form_id` INT UNSIGNED NULL,
26
+
`user_id` INT UNSIGNED NULL,
27
+
`source_url` TEXT NOT NULL,
28
+
`platform` CHAR(30) NULL,
29
+
`browser` CHAR(30) NULL,
30
+
`city` VARCHAR (100) NULL,
31
+
`country` VARCHAR (100) NULL,
32
+
`ip` CHAR(15) NULL,
33
+
`count` INT DEFAULT 1,
34
+
`created_at` TIMESTAMP NULL,
35
+
PRIMARY KEY (`id`) ) $charsetCollate;";
36
+
37
+
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
38
+
39
+
dbDelta($sql);
40
+
}else{
41
+
// increase column type of source_url from varchar to text - for already installed sites
42
+
$column_name = 'source_url';
43
+
$dataType = $wpdb->get_col_length($table, $column_name);
44
+
$type = $dataType['type'] ?? false;
45
+
if ($type == 'char') {
46
+
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Migration file, table/column names cannot be prepared
47
+
$sql = "ALTER TABLE {$table} MODIFY {$column_name} TEXT NOT NULL";
48
+
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- Migration file, schema change is the purpose, table/column names are safe
49
+
$wpdb->query($sql);
50
+
}
51
+
}
52
+
53
+
}
54
+
}
55
+