PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.0.1
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.0.1
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
← All changes | Inc/Core/Frontend.php +7 -91 trunk3.0.1 View file →
@@ -1,12 +1,12 @@
1 1 <?php
2 2 /**
3 3 * @package FireBox
4 - * @version 3.1.13 Free
4 + * @version 3.0.1 Free
5 5 *
6 6 * @author FirePlugins <info@fireplugins.com>
7 7 * @link https://www.fireplugins.com
8 - * @copyright Copyright © 2026 FirePlugins All Rights Reserved
8 + * @copyright Copyright © 2025 FirePlugins All Rights Reserved
9 9 * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
10 10 */
11 11
12 12 namespace FireBox\Core;
@@ -25,46 +25,8 @@
25 25 {
26 26 return;
27 27 }
28 28
29 - // Keep FireBox assets out of WP Rocket's JS delay/defer/minify and CSS optimizations
30 - new \FireBox\Core\Libs\WPRocket();
31 -
32 - wp_register_script(
33 - 'firebox-main',
34 - FBOX_MEDIA_PUBLIC_URL . 'js/firebox.js',
35 - [],
36 - FBOX_VERSION,
37 - ['in_footer' => true, 'strategy' => 'defer']
38 - );
39 -
40 - // The session stamper on its own, for pages where no campaign renders but a
41 - // campaign elsewhere depends on the session cookies staying accurate.
42 - wp_register_script(
43 - 'firebox-session-stamp',
44 - FBOX_MEDIA_PUBLIC_URL . 'js/session-stamp.js',
45 - [],
46 - FBOX_VERSION,
47 - ['in_footer' => true, 'strategy' => 'defer']
48 - );
49 -
50 - /**
51 - * The session stamper writes the cookies PHP reads back
52 - * (FPFramework\Base\Factory\Session), so it has to name and scope them
53 - * the same way. Attached to both handles because either one can carry
54 - * the stamper: it is bundled into the runtime and also ships alone.
55 - */
56 - $scope = wp_json_encode([
57 - 'name_prefix' => \FPFramework\Helpers\CookieScope::name(''),
58 - 'path' => \FPFramework\Helpers\CookieScope::path(),
59 - 'domain' => \FPFramework\Helpers\CookieScope::domain()
60 - ]);
61 -
62 - foreach (['firebox-main', 'firebox-session-stamp'] as $handle)
63 - {
64 - wp_add_inline_script($handle, 'window.fpfCookieScope = ' . $scope . ';', 'before');
65 - }
66 -
67 29 // Prepare Gutenberg Blocks that contain attributes by FireBox
68 30 new \FireBox\Core\FB\BoxBlocksParser();
69 31
70 32 /**
@@ -76,52 +38,13 @@
76 38 \FireBox\Core\Helpers\Actions::run();
77 39
78 40 add_action('template_redirect', [$this, 'render']);
79 41
80 - add_action('wp_enqueue_scripts', [$this, 'enqueueEmbedStylesEarly']);
81 -
82 42 /**
83 43 * Event that runs after popups have been rendered.
84 44 */
85 45 do_action('firebox/boxes/after_render');
86 46 }
87 -
88 - /**
89 - * Enqueues the embed-mode campaign CSS early (wp_enqueue_scripts, before wp_head closes)
90 - * when the currently queried post/page contains an Embed Campaign block. This avoids a
91 - * flash of unstyled content, since renderEmbed() otherwise only enqueues this CSS later,
92 - * during content rendering.
93 - *
94 - * @return void
95 - */
96 - public function enqueueEmbedStylesEarly()
97 - {
98 - $post = get_queried_object();
99 -
100 - if (!($post instanceof \WP_Post))
101 - {
102 - return;
103 - }
104 -
105 - if (!has_block('firebox/embed', $post))
106 - {
107 - return;
108 - }
109 -
110 - wp_enqueue_style(
111 - 'firebox',
112 - FBOX_MEDIA_PUBLIC_URL . 'css/firebox.css',
113 - [],
114 - FBOX_VERSION
115 - );
116 -
117 - wp_enqueue_style(
118 - 'fb-block-embed-campaign',
119 - FBOX_MEDIA_PUBLIC_URL . 'css/blocks/embed-campaign.css',
120 - [],
121 - FBOX_VERSION
122 - );
123 - }
124 47
125 48 /**
126 49 * Renders all boxes on front-end
127 50 *
@@ -139,8 +62,11 @@
139 62 {
140 63 return;
141 64 }
142 65
66 + // increment session counter
67 + \FPFramework\Libs\Functions::incrementSession();
68 +
143 69 /**
144 70 * Adds all boxes at the end of page.
145 71 */
146 72 firebox()->boxes->render();
@@ -153,13 +79,9 @@
153 79 */
154 80 private function canRenderInEditors()
155 81 {
156 82 // Don't render the popup if previewing with Elementor
157 - if (class_exists('\Elementor\Plugin') &&
158 - property_exists(\Elementor\Plugin::$instance, 'preview') &&
159 - method_exists(\Elementor\Plugin::$instance->preview, 'is_preview_mode') &&
160 - \Elementor\Plugin::$instance->preview->is_preview_mode()
161 - )
83 + if (class_exists('\Elementor\Plugin') && \Elementor\Plugin::$instance->preview->is_preview_mode())
162 84 {
163 85 return;
164 86 }
165 87
@@ -167,14 +89,8 @@
167 89 if (class_exists('\FLBuilderModel') && method_exists('\FLBuilderModel', 'is_builder_active') && \FLBuilderModel::is_builder_active())
168 90 {
169 91 return;
170 92 }
171 -
172 - // Don't render the popup if previewing with Bricks Builder
173 - if (function_exists('bricks_is_builder') && bricks_is_builder())
174 - {
175 - return;
176 - }
177 93
178 94 return true;
179 95 }
180 96
@@ -187,5 +103,5 @@
187 103 {
188 104 $previewer = new Previewer();
189 105 return $previewer->init();
190 106 }
191 -}
107 +}