PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 1.0.13
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v1.0.13
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 / Admin / Analytics / Metrics / Impressions.php

Impressions.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 1.0.13, at Inc/Core/Admin/Analytics/Metrics/Impressions.php

85 lines 2.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 1.0.13 Free
5 *
6 * @author FirePlugins <info@fireplugins.com>
7 * @link https://www.fireplugins.com
8 * @copyright Copyright © 2022 FirePlugins All Rights Reserved
9 * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
10 */
11
12 namespace FireBox\Core\Admin\Analytics\Metrics;
13
14 if (!defined('ABSPATH'))
15 {
16 exit; // Exit if accessed directly.
17 }
18
19 use FireBox\Core\Admin\Analytics\Metric;
20
21 class Impressions extends Metric
22 {
23 /**
24 * Metric specific data
25 */
26 protected function getMetricSpecificData()
27 {
28 return [
29 'type' => 'impressions',
30 'color' => '#4285f4',
31 'hover_color' => '#5e97f6',
32 'clean_label' => fpframework()->_('FPF_IMPRESSIONS'),
33 'label' => firebox()->_('FB_TOTAL_IMPRESSIONS'),
34 'tooltip' => firebox()->_('FB_TOTAL_IMPRESSIONS_TOOLTIP'),
35 'read_more_link' => FPF_SITE_URL . 'docs/firebox/analytics/the-impressions-metric',
36 'decimal_points' => 0
37 ];
38 }
39
40 /**
41 * Runs when we are initializing the Metric.
42 * Useful when we want to run something related to this metric only.
43 *
44 * @return void
45 */
46 public function onInit()
47 {
48 add_filter('firebox/analytics/metric/impressions/filter_date_query_data', [$this, 'getImpressionsResultsData'], 10, 3);
49 }
50
51 /**
52 * Ensure we only get impressions data
53 *
54 * @param array $payload
55 * @param array $selected_toolbar_items
56 * @param array $manipulating_toolbar_item
57 *
58 * @return array
59 */
60 public function getImpressionsResultsData($payload, $selected_toolbar_items = null, $manipulating_toolbar_item = null)
61 {
62 if (!$payload || !is_array($payload))
63 {
64 return [];
65 }
66
67 if (!isset($payload['select']))
68 {
69 return $payload;
70 }
71
72 // if a total already, exists, remove it and add a new total for impressions
73 foreach ($payload['select'] as $key => $value)
74 {
75 // if a total exists and its not a count(bl.id) total which is used to retrieve impressions, then replace it with an impressions count
76 if (strpos($value, 'as total') !== false && strpos($value, 'count(bl.id) as total') === false) {
77 unset($payload['select'][$key]);
78
79 $payload['select'][] = 'count(bl.id) as total';
80 }
81 }
82
83 return $payload;
84 }
85 }