PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.14
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.14
3.1.14 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 All 123 releases
firebox / Inc / Core / Analytics / QueryBuilders / Revenue / MonthlyStrategy.php

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

62 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.14 Free
5 *
6 * @author FirePlugins <[email protected]>
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 MonthlyStrategy extends BaseRevenueQueryStrategy
20 {
21 public function getSelect(): string
22 {
23 return $this->metric->getTimezoneDateSQL('DATE_FORMAT', 'bld.date', '\'%b %Y\'') . ' as label, JSON_EXTRACT(bld.event_label, \'$.order_type\') as order_type, JSON_EXTRACT(bld.event_label, \'$.order_id\') as order_id, bld.event_source, ' . $this->getGlobalCountColumns();
24 }
25
26 public function getWhere(): string
27 {
28 return 'AND bld.event = \'revenue\'';
29 }
30
31 public function getGroupBy(): string
32 {
33 return 'GROUP BY YEAR(' . $this->metric->getTimezoneDateSQL('', 'bld.date') . '), MONTH(' . $this->metric->getTimezoneDateSQL('', 'bld.date') . '), JSON_EXTRACT(bld.event_label, \'$.order_id\'), JSON_EXTRACT(bld.event_label, \'$.order_type\')';
34 }
35
36 public function getOrderBy(): string
37 {
38 $orderby = 'bld.date DESC';
39 $options = $this->metric->getOptions();
40
41 if (isset($options['orderby']))
42 {
43 $orderby = $options['orderby'];
44 }
45
46 return 'ORDER BY ' . $orderby;
47 }
48
49 public function getHaving(): string
50 {
51 return '';
52 }
53
54 /**
55 * Process results for monthly revenue
56 */
57 public function processResults($results)
58 {
59 return $this->metric->calculateRevenueGrouped($results);
60 }
61 }
62