PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.8
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.8
3.1.13 3.1.12 3.1.11 3.1.10 3.1.9 3.1.8 3.1.7 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 All 122 releases
firebox / Inc / Core / Analytics / QueryBuilders / Revenue / CountStrategy.php

CountStrategy.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 3.1.8, at Inc/Core/Analytics/QueryBuilders/Revenue/CountStrategy.php

66 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package FireBox
4 * @version 3.1.8 Free
5 *
6 * @author FirePlugins <info@fireplugins.com>
7 * @link https://www.fireplugins.com
8 * @copyright Copyright © 2026 FirePlugins All Rights Reserved
9 * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
10 */
11
12 namespace FireBox\Core\Analytics\QueryBuilders\Revenue;
13
14 if (!defined('ABSPATH'))
15 {
16 exit; // Exit if accessed directly.
17 }
18
19 class CountStrategy extends BaseRevenueQueryStrategy
20 {
21 public function getSelect(): string
22 {
23 $partA = $this->metric->getTimezoneDateSQL('DATE', 'bld.date') . ' as label';
24
25 if ($this->metric->isSingleDay())
26 {
27 $partA = 'CONCAT(' . $this->metric->getTimezoneDateSQL('DATE_FORMAT', 'bld.date', '\'%H\'') . ', \':00\') as label';
28 }
29
30 // Global counts come from the subquery JOIN in getDefaultFromAndJoins()
31 return $partA . ',
32 JSON_EXTRACT(bld.event_label, \'$.order_type\') as order_type,
33 JSON_EXTRACT(bld.event_label, \'$.order_id\') as order_id,
34 bld.event_source,
35 ' . $this->getGlobalCountColumns();
36 }
37
38 public function getWhere(): string
39 {
40 return 'AND bld.event = \'revenue\'';
41 }
42
43 public function getGroupBy(): string
44 {
45 return 'GROUP BY JSON_EXTRACT(bld.event_label, \'$.order_id\'), JSON_EXTRACT(bld.event_label, \'$.order_type\')';
46 }
47
48 public function getOrderBy(): string
49 {
50 return '';
51 }
52
53 public function getHaving(): string
54 {
55 return '';
56 }
57
58 /**
59 * Process results for count type - calculate total revenue
60 */
61 public function processResults($results)
62 {
63 return $this->metric->calculateTotalRevenue($results);
64 }
65 }
66