PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.23.0
Independent Analytics – WordPress Analytics Plugin v1.23.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 / Queries / Visitors_Over_Time_Finder.php
independent-analytics / IAWP / Queries Last commit date
Campaigns.php 3 years ago City_Statistics.php 3 years ago Country_Statistics.php 3 years ago Current_Traffic_Finder.php 3 years ago Referrers.php 3 years ago Resources.php 3 years ago Visitors_Over_Time_Finder.php 3 years ago
Visitors_Over_Time_Finder.php
57 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Queries;
4
5 use IAWP_SCOPED\IAWP\Date_Range\Date_Range;
6 use IAWP_SCOPED\IAWP\Interval\Interval;
7 use IAWP_SCOPED\IAWP\Query;
8 class Visitors_Over_Time_Finder
9 {
10 /**
11 * @var Date_Range
12 */
13 private $date_range;
14 private $interval;
15 /**
16 * @param Date_Range $date_range Range to fetch referrers for
17 */
18 public function __construct(Date_Range $date_range, Interval $interval)
19 {
20 $this->date_range = $date_range;
21 $this->interval = $interval;
22 }
23 public function fetch()
24 {
25 $rows = Query::query($this->interval->get_query_name(), ['start' => $this->date_range->iso_start(), 'end' => $this->date_range->iso_end()])->rows();
26 return $this->rows_to_class($rows);
27 }
28 private function rows_to_class(array $rows) : object
29 {
30 $date_interval = $this->interval->get_date_interval();
31 $date_period = new \DatePeriod($this->date_range->start(), $date_interval, $this->date_range->end());
32 $interval_data = [];
33 $visitors_data = [];
34 $views_data = [];
35 foreach ($date_period as $index => $date) {
36 $current_interval = $index;
37 $current_visitors = 0;
38 $current_views = 0;
39 foreach ($rows as $row) {
40 $row_interval = \intval($row->interval_ago);
41 $row_visitors = \intval($row->visitors);
42 $row_views = \intval($row->views);
43 if ($row_interval === $index) {
44 $current_interval = $row_interval;
45 $current_visitors = $row_visitors;
46 $current_views = $row_views;
47 break;
48 }
49 }
50 $interval_data[] = $current_interval;
51 $visitors_data[] = $current_visitors;
52 $views_data[] = $current_views;
53 }
54 return (object) ['visitors' => $visitors_data, 'views' => $views_data, 'interval_labels_short' => $this->interval->get_short_labels($interval_data), 'interval_labels_full' => $this->interval->get_full_labels($interval_data)];
55 }
56 }
57