PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.12.2
Independent Analytics – WordPress Analytics Plugin v2.12.2
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 / Email_Reports / Email_Chart.php
independent-analytics / IAWP / Email_Reports Last commit date
Email_Chart.php 1 year ago Email_Reports.php 11 months ago Interval.php 1 year ago Interval_Factory.php 2 years ago
Email_Chart.php
68 lines
1 <?php
2
3 namespace IAWP\Email_Reports;
4
5 use IAWP\Statistics\Statistics;
6 use IAWPSCOPED\Proper\Number;
7 /** @internal */
8 class Email_Chart
9 {
10 public $views;
11 public $most_views;
12 public $y_labels;
13 public $x_labels;
14 private $statistics;
15 public function __construct(Statistics $statistics)
16 {
17 $this->statistics = $statistics;
18 $this->views = self::views();
19 $this->most_views = self::most_views();
20 $this->y_labels = self::y_labels();
21 $this->x_labels = self::x_labels();
22 }
23 public function views()
24 {
25 return \array_map(function ($day) {
26 return $day[1];
27 }, $this->statistics->get_statistic('views')->statistic_over_time());
28 }
29 public function most_views()
30 {
31 return \round(\max($this->views) * 1.1);
32 }
33 public function y_labels()
34 {
35 return [Number::abbreviate($this->most_views), Number::abbreviate($this->most_views / 2), 0];
36 }
37 public function x_labels()
38 {
39 $interval = \IAWPSCOPED\iawp()->get_option('iawp_email_report_interval', 'monthly');
40 $format = 'M j';
41 if ($interval == 'weekly') {
42 $format = 'D';
43 } elseif ($interval == 'daily') {
44 $format = \IAWPSCOPED\iawp()->get_option('time_format', 'g:i a');
45 }
46 $all_x_labels = \array_map(function ($day) use($format) {
47 return $day[0]->format($format);
48 }, $this->statistics->get_statistic('views')->statistic_over_time());
49 $x_labels = [];
50 if ($interval == 'monthly') {
51 for ($x = 0; $x < \count($all_x_labels); $x++) {
52 if (($x + 5) % 5 == 0) {
53 $x_labels[] = $all_x_labels[$x];
54 }
55 }
56 } elseif ($interval == 'weekly') {
57 $x_labels = $all_x_labels;
58 } elseif ($interval == 'daily') {
59 for ($x = 0; $x < \count($all_x_labels); $x++) {
60 if (($x + 6) % 6 == 0) {
61 $x_labels[] = $all_x_labels[$x];
62 }
63 }
64 }
65 return $x_labels;
66 }
67 }
68