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 / Notices / Ajax.php

Ajax.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 3.1.14, at Inc/Core/Notices/Ajax.php

103 lines 2.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\Notices;
13
14 if (!defined('ABSPATH'))
15 {
16 exit; // Exit if accessed directly.
17 }
18
19 class Ajax
20 {
21 public function __construct()
22 {
23 add_action('wp_ajax_firebox_get_notices', [$this, 'get_notices']);
24
25 add_action('wp_ajax_firebox_enable_usage_tracking', [$this, 'enable_usage_tracking']);
26
27
28 }
29
30 /**
31 * Get Notices.
32 *
33 * @return void
34 */
35 public function get_notices()
36 {
37 if (!current_user_can('read_fireboxes'))
38 {
39 return;
40 }
41
42 $nonce = isset($_GET['nonce']) ? sanitize_text_field(wp_unslash($_GET['nonce'])) : '';
43
44 // verify nonce
45 if (!$verify = wp_verify_nonce($nonce, 'firebox_notices'))
46 {
47 return false;
48 }
49
50 $exclude = isset($_GET['exclude']) ? sanitize_text_field(wp_unslash($_GET['exclude'])) : '';
51 $exclude = array_filter(explode(',', $exclude));
52
53 $notices = \FireBox\Core\Notices\Notices::getInstance([
54 'exclude' => $exclude
55 ])->getNotices();
56
57 echo wp_json_encode([
58 'error' => false,
59 'notices' => $notices
60 ]);
61 wp_die();
62 }
63
64 public function enable_usage_tracking()
65 {
66 /**
67 * This opts the whole site into sending usage data, which is a site-owner
68 * decision. "read_fireboxes" only gates viewing the FireBox screens.
69 */
70 if (!current_user_can('manage_options'))
71 {
72 wp_send_json([
73 'error' => true,
74 'message' => fpframework()->_('FPF_CANNOT_VERIFY_REQUEST')
75 ], 403);
76 }
77
78 $nonce = isset($_GET['nonce']) ? sanitize_text_field(wp_unslash($_GET['nonce'])) : '';
79
80 // verify nonce
81 if (!$verify = wp_verify_nonce($nonce, 'firebox_notices'))
82 {
83 wp_send_json([
84 'error' => true,
85 'message' => fpframework()->_('FPF_CANNOT_VERIFY_REQUEST')
86 ], 403);
87 }
88
89 $settings = get_option('firebox_settings');
90 $settings = is_array($settings) ? $settings : [];
91 $settings['usage_tracking'] = '1';
92 update_option('firebox_settings', $settings);
93
94 echo wp_json_encode([
95 'error' => false,
96 'message' => 'Tracking enabled.'
97 ]);
98 wp_die();
99 }
100
101
102 }
103