PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.4.3
Independent Analytics – WordPress Analytics Plugin v2.4.3
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 All 120 releases
independent-analytics / IAWP / Current_Traffic_Finder.php
Current_Traffic_Finder.php
32 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP;
4
5 use IAWP\Date_Range\Date_Range;
6 use IAWP\Models\Current_Traffic;
7 use IAWPSCOPED\Illuminate\Database\Query\JoinClause;
8 /** @internal */
9 class Current_Traffic_Finder
10 {
11 /**
12 * @var Date_Range
13 */
14 private $date_range;
15 /**
16 * @param Date_Range $date_range Range to fetch referrers for
17 */
18 public function __construct(Date_Range $date_range)
19 {
20 $this->date_range = $date_range;
21 }
22 public function fetch() : Current_Traffic
23 {
24 $views_table = \IAWP\Query::get_table_name(\IAWP\Query::VIEWS);
25 $sessions_table = \IAWP\Query::get_table_name(\IAWP\Query::SESSIONS);
26 $row = \IAWP\Illuminate_Builder::get_builder()->from($views_table, 'views')->selectRaw('COUNT(DISTINCT (sessions.visitor_id)) AS visitor_count')->selectRaw('COUNT(DISTINCT (views.resource_id)) AS page_count')->selectRaw('COUNT(DISTINCT (sessions.referrer_id)) AS referrer_count')->selectRaw('COUNT(DISTINCT (sessions.country_id)) AS country_count')->selectRaw('COUNT(DISTINCT (sessions.campaign_id)) AS campaign_count')->selectRaw('COUNT(*) AS view_count')->leftJoin("{$sessions_table} AS sessions", function (JoinClause $join) {
27 $join->on('views.session_id', '=', 'sessions.session_id');
28 })->whereBetween('viewed_at', [$this->date_range->iso_start(), $this->date_range->iso_end()])->first();
29 return new Current_Traffic($row);
30 }
31 }
32