PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.5
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.5
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 / Views / BaseViewsQueryStrategy.php

BaseViewsQueryStrategy.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 3.1.5, at Inc/Core/Analytics/QueryBuilders/Views/BaseViewsQueryStrategy.php

67 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.5 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\Views;
13
14 use FireBox\Core\Analytics\QueryBuilders\BaseQueryStrategy;
15
16 if (!defined('ABSPATH'))
17 {
18 exit; // Exit if accessed directly.
19 }
20
21 abstract class BaseViewsQueryStrategy extends BaseQueryStrategy
22 {
23 /**
24 * Views uses logs table as primary date column
25 */
26 protected function getDateColumn(): string
27 {
28 return 'l.date';
29 }
30
31 /**
32 * Views-specific FROM/JOIN logic
33 * Uses logs table as primary with optional joins to logs_details
34 */
35 protected function getDefaultFromAndJoins(): string
36 {
37 $filters = $this->metric->getFilters();
38
39 // Check if we need JOIN to logs_details table
40 $needs_join = (
41 (array_key_exists('event', $filters) &&
42 isset($filters['event']['value']) &&
43 is_array($filters['event']['value']) &&
44 count($filters['event']['value'])) ||
45 $this->metric->getType() === 'events'
46 );
47
48 if ($needs_join) {
49 return "{$this->metric->getTableLogs()} as l
50 LEFT JOIN {$this->metric->getTableDetails()} as ld ON ld.log_id = l.id";
51 }
52
53 return "{$this->metric->getTableLogs()} as l";
54 }
55
56 /**
57 * Views metrics use 'ld' alias for details table
58 */
59 protected function getTableAliases(): array
60 {
61 return [
62 'logs' => 'l',
63 'details' => 'ld'
64 ];
65 }
66 }
67