PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.7
Independent Analytics – WordPress Analytics Plugin v1.7
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 / inc / queries / referrers.php
independent-analytics / inc / queries Last commit date
range_query.php 4 years ago referrers.php 4 years ago resources.php 4 years ago views.php 4 years ago
referrers.php
59 lines
1 <?php
2
3 namespace IAWP;
4
5 class Referrers extends Range_Query
6 {
7 private $results;
8
9 public function get_referrers()
10 {
11 if (is_null($this->results)) {
12 $this->results = $this->query();
13 }
14
15 return $this->results;
16 }
17
18 public function get_referrers_as_csv()
19 {
20 $referrers = $this->get_referrers();
21 $referrers = Referrer::merge($referrers);
22 $arr = [['Referrer', 'Referrer Type', 'Views', 'Visitors']];
23
24 foreach ($referrers as $referrer) {
25 $arr[] = [
26 $referrer->referrer(),
27 $referrer->referrer_type(),
28 $referrer->views(),
29 $referrer->visitors(),
30 ];
31 }
32
33 return Array_To_CSV::array2csv($arr);
34 }
35
36 private function query()
37 {
38 global $wpdb;
39 $views_table = DB::views_table();
40 $referrers_table = DB::referrers_table();
41
42 $query = $wpdb->prepare(
43 "SELECT DISTINCT $views_table.referrer_id, $referrers_table.url, COUNT(*) AS views, COUNT(DISTINCT visitor_id) as visitors FROM $views_table LEFT JOIN $referrers_table ON $views_table.referrer_id = $referrers_table.id WHERE $views_table.viewed_at BETWEEN %s AND %s GROUP BY $views_table.referrer_id, $referrers_table.url ORDER BY views DESC",
44 $this->formatted_start(),
45 $this->formatted_end()
46 );
47 $rows = $wpdb->get_results($query);
48
49 return self::rows_to_referrers($rows);
50 }
51
52 private function rows_to_referrers($rows)
53 {
54 return array_map(function ($row) {
55 return new Referrer($row->referrer_id, $row->url, $row->views, $row->visitors);
56 }, $rows);
57 }
58 }
59