PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.14.8
Independent Analytics – WordPress Analytics Plugin v2.14.8
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 / Public_API / Analytics.php
independent-analytics / IAWP / Public_API Last commit date
Analytics.php 1 year ago Singular_Analytics.php 1 year ago Top_Posts.php 5 months ago
Analytics.php
40 lines
1 <?php
2
3 namespace IAWP\Public_API;
4
5 use IAWP\Date_Range\Date_Range;
6 use IAWP\Illuminate_Builder;
7 use IAWP\Query;
8 use IAWPSCOPED\Illuminate\Database\Query\JoinClause;
9 /** @internal */
10 class Analytics
11 {
12 public $views;
13 public $visitors;
14 public $sessions;
15 private function __construct($row)
16 {
17 $this->views = $row->views ?? 0;
18 $this->visitors = $row->visitors ?? 0;
19 $this->sessions = $row->sessions ?? 0;
20 }
21 /**
22 * @param Date_Range $date_range
23 *
24 * @return self
25 */
26 public static function for(Date_Range $date_range) : self
27 {
28 $resources_table = Query::get_table_name(Query::RESOURCES);
29 $views_table = Query::get_table_name(Query::VIEWS);
30 $sessions_table = Query::get_table_name(Query::SESSIONS);
31 $resource_statistics_query = Illuminate_Builder::new();
32 $resource_statistics_query->selectRaw('COUNT(DISTINCT views.id) AS views')->selectRaw('COUNT(DISTINCT sessions.visitor_id) AS visitors')->selectRaw('COUNT(DISTINCT sessions.session_id) AS sessions')->from("{$views_table} as views")->join("{$resources_table} AS resources", function (JoinClause $join) {
33 $join->on('resources.id', '=', 'views.resource_id');
34 })->join("{$sessions_table} AS sessions", function (JoinClause $join) {
35 $join->on('sessions.session_id', '=', 'views.session_id');
36 })->whereBetween('views.viewed_at', [$date_range->iso_start(), $date_range->iso_end()]);
37 return new self($resource_statistics_query->get()->first());
38 }
39 }
40