PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.8.4
Independent Analytics – WordPress Analytics Plugin v2.8.4
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_24.php
independent-analytics / IAWP / Migrations Last commit date
Migration.php 1 year ago Migration_10.php 2 years ago Migration_11.php 2 years ago Migration_12.php 1 year ago Migration_13.php 2 years ago Migration_14.php 2 years ago Migration_15.php 2 years ago Migration_16.php 2 years ago Migration_17.php 1 year ago Migration_18.php 2 years ago Migration_19.php 2 years ago Migration_1_0.php 2 years ago Migration_1_6.php 2 years ago Migration_1_8.php 2 years ago Migration_1_9.php 2 years ago Migration_2.php 2 years ago Migration_20.php 2 years ago Migration_21.php 2 years ago Migration_22.php 2 years ago Migration_23.php 2 years ago Migration_24.php 2 years ago Migration_25.php 2 years ago Migration_26.php 2 years ago Migration_27.php 2 years ago Migration_28.php 2 years ago Migration_29.php 2 years ago Migration_3.php 2 years ago Migration_30.php 2 years ago Migration_31.php 2 years ago Migration_32.php 2 years ago Migration_33.php 2 years ago Migration_34.php 1 year ago Migration_35.php 1 year ago Migration_36.php 1 year ago Migration_4.php 2 years ago Migration_5.php 2 years ago Migration_6.php 2 years ago Migration_7.php 1 year ago Migration_8.php 2 years ago Migration_9.php 2 years ago Migration_Job.php 2 years ago Migrations.php 1 year ago Step_Migration.php 1 year ago
Migration_24.php
51 lines
1 <?php
2
3 namespace IAWP\Migrations;
4
5 use IAWP\Query;
6 /** @internal */
7 class Migration_24 extends \IAWP\Migrations\Step_Migration
8 {
9 /**
10 * @return int
11 */
12 protected function database_version() : int
13 {
14 return 24;
15 }
16 /**
17 * @return array
18 */
19 protected function queries() : array
20 {
21 return [$this->add_column(), $this->insert_campaigns(), $this->link_sessions_with_campaigns(), $this->delete_unused_campaigns()];
22 }
23 private function add_column() : string
24 {
25 $campaigns_table = Query::get_table_name(Query::CAMPAIGNS);
26 return "\n ALTER TABLE {$campaigns_table}\n ADD COLUMN landing_page_title VARCHAR(128) AFTER campaign_id\n ";
27 }
28 private function insert_campaigns() : string
29 {
30 $views_table = Query::get_table_name(Query::VIEWS);
31 $sessions_table = Query::get_table_name(Query::SESSIONS);
32 $campaigns_table = Query::get_table_name(Query::CAMPAIGNS);
33 $resources_table = Query::get_table_name(Query::RESOURCES);
34 return "\n INSERT INTO {$campaigns_table} (landing_page_title, utm_source, utm_medium, utm_campaign, utm_term, utm_content)\n SELECT DISTINCT\n initial_resource.cached_title,\n campaigns.utm_source,\n campaigns.utm_medium,\n campaigns.utm_campaign,\n campaigns.utm_term,\n campaigns.utm_content\n FROM {$resources_table} AS initial_resource\n JOIN {$views_table} AS initial_view ON initial_resource.id = initial_view.resource_id\n JOIN {$sessions_table} AS sessions ON initial_view.session_id = sessions.session_id AND initial_view.id = sessions.initial_view_id\n JOIN {$campaigns_table} AS campaigns ON sessions.campaign_id = campaigns.campaign_id \n ";
35 }
36 private function link_sessions_with_campaigns() : string
37 {
38 $views_table = Query::get_table_name(Query::VIEWS);
39 $sessions_table = Query::get_table_name(Query::SESSIONS);
40 $campaigns_table = Query::get_table_name(Query::CAMPAIGNS);
41 $resources_table = Query::get_table_name(Query::RESOURCES);
42 return "\n UPDATE {$sessions_table} AS sessions\n JOIN {$views_table} AS initial_view ON initial_view.session_id = sessions.session_id AND sessions.initial_view_id = initial_view.id\n JOIN {$resources_table} AS initial_resource ON initial_view.resource_id = initial_resource.id\n JOIN {$campaigns_table} AS campaigns ON sessions.campaign_id = campaigns.campaign_id\n JOIN {$campaigns_table} AS new_campaign ON initial_resource.cached_title = new_campaign.landing_page_title\n AND campaigns.utm_source = new_campaign.utm_source\n AND campaigns.utm_medium = new_campaign.utm_medium\n AND campaigns.utm_campaign = new_campaign.utm_campaign\n AND (campaigns.utm_term = new_campaign.utm_term OR (campaigns.utm_term IS NULL AND new_campaign.utm_term IS NULL))\n AND (campaigns.utm_content = new_campaign.utm_content OR (campaigns.utm_content IS NULL AND new_campaign.utm_content IS NULL))\n SET sessions.campaign_id = new_campaign.campaign_id \n ";
43 }
44 private function delete_unused_campaigns() : string
45 {
46 $sessions_table = Query::get_table_name(Query::SESSIONS);
47 $campaigns_table = Query::get_table_name(Query::CAMPAIGNS);
48 return "\n DELETE campaigns from {$campaigns_table} AS campaigns\n LEFT JOIN {$sessions_table} AS sessions ON campaigns.campaign_id = sessions.campaign_id\n WHERE sessions.session_id IS NULL \n ";
49 }
50 }
51