PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.13
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.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 / Helpers / Embed.php

Embed.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 3.1.13, at Inc/Core/Helpers/Embed.php

134 lines 3.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.13 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\Helpers;
13
14 if (!defined('ABSPATH'))
15 {
16 exit; // Exit if accessed directly.
17 }
18
19 class Embed
20 {
21 public static function renderCampaign($id = '', $status = ['publish'])
22 {
23 if (!$id)
24 {
25 return;
26 }
27
28 $box = new \FireBox\Core\FB\Box($id);
29
30 if (!$box->getBox())
31 {
32 return;
33 }
34
35 // Abort if not enabled
36 if (!in_array($box->getBox()->post_status, $status))
37 {
38 return;
39 }
40
41 wp_enqueue_style('fb-block-embed-campaign');
42
43 // Set mode to embed
44 $box->getCampaignParams()->set('mode', 'embed');
45
46 // Empty height
47 $box->getCampaignParams()->set('height_control', '');
48
49 // Remove cookie setting
50 $box->getCampaignParams()->set('assign_cookietype', 'never');
51
52 // // Empty Display Conditions
53 // $box->getCampaignParams()->set('rules', '');
54
55 // // Empty actions
56 // $box->getCampaignParams()->set('actions', '');
57
58 // // Empty PHP Scripts > State > Open/Close
59 // $box->getCampaignParams()->set('phpscripts.open', '');
60 // $box->getCampaignParams()->set('phpscripts.close', '');
61
62 // Remove background overlay.
63 $box->getCampaignParams()->set('overlay', '0');
64
65 // Add a class suffix to the campaign.
66 $box->getCampaignParams()->set('classsuffix', $box->getCampaignParams()->get('classsuffix') . ' firebox-embedded-campaign');
67
68 // Disable prevent page scrolling.
69 $box->getCampaignParams()->set('preventpagescroll', '0');
70 $box->getCampaignParams()->set('zindex', '');
71
72 // Set it to appear on page load.
73 $box->getCampaignParams()->set('triggermethod', 'pageload');
74 $box->getCampaignParams()->set('triggerdelay', '0');
75 $box->getCampaignParams()->set('floating_button_show_on_close', '0');
76
77 // Remove the animation.
78 $box->getCampaignParams()->set('animationin', false);
79 $box->getCampaignParams()->set('animationout', false);
80
81 // Hide the close button.
82 $box->getCampaignParams()->set('closebutton.show', '0');
83
84 // The editor flag is a plain query argument, so it only counts for users who can edit this campaign.
85 $isEditor = isset($_GET['editor']) && sanitize_key(wp_unslash($_GET['editor'])) //phpcs:ignore WordPress.Security.NonceVerification.Recommended
86 && is_user_logged_in() && current_user_can('edit_post', $id);
87
88 // Campaigns in test mode are only visible to users who can manage campaigns, embedded or not.
89 if (!$isEditor && $box->getCampaignParams()->get('testmode', false) == '1' && !(is_user_logged_in() && current_user_can('edit_fireboxes')))
90 {
91 return;
92 }
93
94 if ($isEditor)
95 {
96 /**
97 * Ignore Opening/Closing Behavior and Display Conditions.
98 *
99 * We need to display the campaign in the editor regardless.
100 */
101 $box->getCampaignParams()->set('rules', '');
102 $box->getCampaignParams()->set('assign_impressions_param_type', 'always');
103 $box->getCampaignParams()->set('assign_cookietype', 'never');
104
105 $box->prepare();
106
107 $payload = [
108 'box' => $box->getBox(),
109 'params' => $box->getParams(),
110 ];
111
112 $html = firebox()->renderer->public->render('box', $payload, true);
113
114 $css = $box->getCustomCSS();
115 $html = '<style>' . $css . '</style>' . $html;
116 }
117 else
118 {
119 $html = $box->renderEmbed();
120 }
121
122 return $html;
123 }
124
125 public static function renderCampaignById($id = null)
126 {
127 if (!$id)
128 {
129 return;
130 }
131
132
133 }
134 }