PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.6.2
Independent Analytics – WordPress Analytics Plugin v2.6.2
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / IAWP / Migrations / Migration_9.php
Migration_9.php
48 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP\Migrations;
4
5 use IAWP\Query;
6 /** @internal */
7 class Migration_9 extends \IAWP\Migrations\Migration
8 {
9 /**
10 * @var string
11 */
12 protected $database_version = '9';
13 /**
14 * @return void
15 */
16 protected function migrate() : void
17 {
18 global $wpdb;
19 $sessions_table = Query::get_table_name(Query::SESSIONS);
20 $visitors_table = Query::get_table_name(Query::VISITORS);
21 if ($this->sessions_fix_required()) {
22 $wpdb->query("\n ALTER TABLE {$sessions_table} MODIFY COLUMN visitor_id VARCHAR(32);\n ");
23 }
24 if ($this->visitors_fix_required()) {
25 $wpdb->query("\n ALTER TABLE {$visitors_table} MODIFY COLUMN visitor_id VARCHAR(32);\n ");
26 }
27 }
28 private function sessions_fix_required() : bool
29 {
30 $sessions_table = Query::get_table_name(Query::SESSIONS);
31 return $this->fix_required($sessions_table);
32 }
33 private function visitors_fix_required() : bool
34 {
35 $visitors_table = Query::get_table_name(Query::VISITORS);
36 return $this->fix_required($visitors_table);
37 }
38 private function fix_required(string $table) : bool
39 {
40 global $wpdb;
41 $big_field = $wpdb->get_row("\n SELECT\n CHARACTER_MAXIMUM_LENGTH\n FROM\n information_schema.columns\n WHERE\n TABLE_NAME = '" . $table . "'\n AND COLUMN_NAME = 'visitor_id'\n AND CHARACTER_MAXIMUM_LENGTH > 32;\n ");
42 if (\is_null($big_field) || $wpdb->last_error !== '') {
43 return \false;
44 }
45 return \true;
46 }
47 }
48