PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.17
Independent Analytics – WordPress Analytics Plugin v1.17
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 / models / campaign.php
independent-analytics / IAWP / models Last commit date
campaign.php 3 years ago current_traffic.php 3 years ago geo.php 3 years ago page.php 3 years ago page_author_archive.php 3 years ago page_date_archive.php 3 years ago page_home.php 3 years ago page_not_found.php 3 years ago page_post_type_archive.php 3 years ago page_search.php 3 years ago page_singular.php 3 years ago page_term_archive.php 3 years ago referrer.php 3 years ago view_stats.php 3 years ago visitor.php 3 years ago wc_stats.php 3 years ago
campaign.php
107 lines
1 <?php
2
3 namespace IAWP;
4
5 class Campaign
6 {
7 use View_Stats;
8 use WC_Stats;
9
10 private $campaign_ids;
11 private $title;
12 private $utm_source;
13 private $utm_medium;
14 private $utm_campaign;
15 private $utm_term;
16 private $utm_content;
17
18 public function __construct($row)
19 {
20 $this->campaign_ids = $row->campaign_ids;
21 $this->title = $row->title;
22 $this->utm_source = $row->utm_source;
23 $this->utm_medium = $row->utm_medium;
24 $this->utm_campaign = $row->utm_campaign;
25 $this->utm_term = $row->utm_term;
26 $this->utm_content = $row->utm_content;
27 $this->set_view_stats($row);
28 $this->set_wc_stats($row);
29 }
30
31 /*
32 * Column names have shared logic between tables. So "title" for resources has the same logic
33 * as "title" for campaigns. Adding is_deleted ensures that the method can be called even though
34 * campaigns can never be deleted. A better code base would allow this to be removed.
35 */
36 public function is_deleted()
37 {
38 return false;
39 }
40
41 protected function campaign_ids()
42 {
43 return $this->campaign_ids;
44 }
45
46 public function title()
47 {
48 return $this->title;
49 }
50
51 public function utm_source()
52 {
53 return $this->utm_source;
54 }
55
56 public function utm_medium()
57 {
58 return $this->utm_medium;
59 }
60
61 public function utm_campaign()
62 {
63 return $this->utm_campaign;
64 }
65
66 public function utm_term()
67 {
68 return $this->utm_term;
69 }
70
71 public function utm_content()
72 {
73 return $this->utm_content;
74 }
75
76 /**
77 * This isn't building a URL param that's used in a URL. This is building a unique id that's
78 * used for uniqueness in real-times most popular campaign list.
79 *
80 * @return string
81 */
82 public function params(): string
83 {
84 return http_build_query([
85 'title' => $this->title(),
86 'utm_source' => $this->utm_source(),
87 'utm_medium' => $this->utm_medium(),
88 'utm_campaign' => $this->utm_campaign(),
89 'utm_term' => $this->utm_term(),
90 'utm_content' => $this->utm_content(),
91 ]);
92 }
93
94 public static function campaigns_to_ids(array $campaigns): array
95 {
96 if (count($campaigns) === 0) {
97 return [];
98 }
99
100 $array_of_arrays = array_map(function ($campaign) {
101 return $campaign->campaign_ids();
102 }, $campaigns);
103
104 return array_merge(...$array_of_arrays);
105 }
106 }
107