PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.9
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.9
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 / ConversionRate / WeeklyStrategy.php

WeeklyStrategy.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 3.1.9, at Inc/Core/Analytics/QueryBuilders/ConversionRate/WeeklyStrategy.php

60 lines 1.5 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.9 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\ConversionRate;
13
14 if (!defined('ABSPATH'))
15 {
16 exit; // Exit if accessed directly.
17 }
18
19 class WeeklyStrategy extends BaseConversionRateQueryStrategy
20 {
21 public function getSelect(): string
22 {
23 $timezoneDate = $this->getTimezoneConvertedDate();
24
25 return 'DATE_FORMAT(STR_TO_DATE(CONCAT(yearweek(' . $timezoneDate . '), " ' . firebox()->_('FB_MONDAY') . '"), \'%%X%%V %%W\'), \'%%d %%b %%y\') as label, CASE WHEN COUNT(DISTINCT l.id) = 0 THEN 0 ELSE (COUNT(DISTINCT bld.id) / COUNT(DISTINCT l.id)) * 100 END AS total';
26 }
27
28 public function getWhere(): string
29 {
30 return '';
31 }
32
33 public function getGroupBy(): string
34 {
35 return 'GROUP BY yearweek(' . $this->getTimezoneConvertedDate() . ')';
36 }
37
38 public function getOrderBy(): string
39 {
40 $options = $this->metric->getOptions();
41
42 if (isset($options['orderby']))
43 {
44 return 'ORDER BY ' . $options['orderby'];
45 }
46
47 return 'ORDER BY yearweek(' . $this->getTimezoneConvertedDate() . ') DESC';
48 }
49
50 public function getHaving(): string
51 {
52 return '';
53 }
54
55 private function getTimezoneConvertedDate(): string
56 {
57 return $this->metric->getTimezoneDateSQL('', 'l.date');
58 }
59 }
60