PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.30.0
Independent Analytics – WordPress Analytics Plugin v1.30.0
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 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Migrations / Migration_11.php
independent-analytics / IAWP / Migrations Last commit date
Migration.php 2 years ago Migration_10.php 3 years ago Migration_11.php 3 years ago Migration_12.php 3 years ago Migration_13.php 3 years ago Migration_14.php 2 years ago Migration_15.php 2 years ago Migration_1_0.php 3 years ago Migration_1_6.php 3 years ago Migration_1_8.php 3 years ago Migration_1_9.php 3 years ago Migration_2.php 3 years ago Migration_3.php 3 years ago Migration_4.php 3 years ago Migration_5.php 3 years ago Migration_6.php 3 years ago Migration_7.php 3 years ago Migration_8.php 3 years ago Migration_9.php 3 years ago Migration_Job.php 2 years ago
Migration_11.php
30 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Migrations;
4
5 use IAWP_SCOPED\IAWP\Query;
6 class Migration_11 extends Migration
7 {
8 /**
9 * @var string
10 */
11 protected $database_version = '11';
12 /**
13 * @return void
14 */
15 protected function handle() : void
16 {
17 global $wpdb;
18 $views_table = Query::get_table_name(Query::VIEWS);
19 $sessions_table = Query::get_table_name(Query::SESSIONS);
20 $wpdb->query("\n ALTER TABLE {$views_table} ADD COLUMN next_view_id BIGINT(20) UNSIGNED, ADD COLUMN next_viewed_at DATETIME;\n ");
21 $wpdb->query("\n ALTER TABLE {$sessions_table} ADD COLUMN final_view_id BIGINT(20) UNSIGNED, ADD COLUMN ended_at DATETIME;\n ");
22 // Populate ended_at for all sessions where legacy_view=0
23 // Find the sessions last view and use it's viewed_at value for sessions.ended_at
24 $wpdb->query("\n UPDATE\n {$sessions_table} AS sessions\n INNER JOIN (\n SELECT\n sessions.session_id AS session_id,\n MAX(views.id) AS final_view_id,\n MAX(views.viewed_at) AS ended_at\n FROM\n {$sessions_table} AS sessions\n INNER JOIN {$views_table} AS views ON sessions.session_id = views.session_id\n AND sessions.initial_view_id != views.id\n WHERE\n sessions.legacy_view = FALSE\n GROUP BY\n sessions.session_id) AS query ON sessions.session_id = query.session_id\n SET sessions.ended_at = query.ended_at, sessions.final_view_id = query.final_view_id\n ");
25 // Populate next_viewed_at for all views where session.legacy_view=0
26 // Find the most previous view based on views.viewed_at that belongs to the same session
27 $wpdb->query("\n UPDATE\n {$views_table} AS views\n INNER JOIN (\n SELECT\n views.id AS id,\n views.viewed_at AS viewed_at,\n MIN(query.id) AS next_view_id,\n MIN(query.viewed_at) AS next_viewed_at\n FROM\n {$views_table} AS views\n INNER JOIN (\n SELECT\n *\n FROM\n {$views_table} AS views) AS query ON views.session_id = query.session_id\n AND views.id != query.id\n WHERE\n views.id < query.id\n GROUP BY\n views.id) AS query ON views.id = query.id\n SET views.next_viewed_at = query.next_viewed_at, views.next_view_id = query.next_view_id\n ");
28 }
29 }
30