PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.9
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.9
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 / Framework / init.php

init.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 3.1.9, at Inc/Framework/init.php

267 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package FirePlugins Framework
4 * @version 1.1.149
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 if (!function_exists('add_action'))
13 {
14 // We are running outside of the context of WordPress.
15 return;
16 }
17
18 if (!function_exists('firepluginsframework_getFrameworkVersion'))
19 {
20 /**
21 * Return the framework version
22 *
23 * @param string $dir
24 *
25 * @return void
26 */
27 function firepluginsframework_getFrameworkVersion($dir)
28 {
29 // Memoize the parsed framework.xml per directory so it is only parsed once per request.
30 static $versions = [];
31
32 if (isset($versions[$dir]))
33 {
34 return $versions[$dir];
35 }
36
37 $framework_file = 'framework.xml';
38
39 $xmlFile = $dir . '/Framework/' . $framework_file;
40
41 /**
42 * On development the xml file is located in /framework/source/framework.xml.
43 * On final zip, the file will rest on /Framework/framework.xml.
44 *
45 * Thus the check below.
46 */
47 $xmlFile = file_exists($xmlFile) ? $xmlFile : $dir . '/source/' . $framework_file;
48
49 $xml = [];
50
51 // load XML file
52 if (function_exists('simplexml_load_file'))
53 {
54 $xml = simplexml_load_file($xmlFile);
55 }
56
57 return ($versions[$dir] = isset($xml->version) ? (string) $xml->version : '1.0.0');
58 }
59 }
60
61 if (!function_exists('firepluginsframework_getFrameworkPriority'))
62 {
63 /**
64 * Return the framework priority
65 *
66 * @param string $dir
67 *
68 * @return void
69 */
70 function firepluginsframework_getFrameworkPriority($dir)
71 {
72 static $priorities = [];
73
74 if (isset($priorities[$dir]))
75 {
76 return $priorities[$dir];
77 }
78
79 $id = PHP_INT_MAX;
80
81 $version = firepluginsframework_getFrameworkVersion($dir);
82 $version = array_map('intval', explode('.', $version));
83
84 for ($i = 0; $i < count($version); $i++)
85 {
86 if ($i == 0)
87 {
88 $id -= $version[$i] * 105;
89 }
90 else if ($i == 1)
91 {
92 $id -= $version[$i] * 55;
93 }
94 else
95 {
96 $id -= $version[$i];
97 }
98 }
99
100 return ($priorities[$dir] = $id);
101 }
102 }
103
104 /**
105 * Initialize the Framework
106 *
107 * @return void
108 */
109 add_action('init', function()
110 {
111 if (class_exists('\FPFramework\Framework'))
112 {
113 return;
114 }
115
116 $version = firepluginsframework_getFrameworkVersion(dirname(__DIR__));
117 $priority = firepluginsframework_getFrameworkPriority(dirname(__DIR__));
118
119 // Framework priority
120 if (!defined('FPF_LOADED'))
121 {
122 define('FPF_LOADED', $priority);
123 }
124
125 // Framework version
126 if (!defined('FPF_VERSION'))
127 {
128 define('FPF_VERSION', $version);
129 }
130
131 // Site URL
132 if (!defined('FPF_SITE_URL'))
133 {
134 define('FPF_SITE_URL', 'https://www.fireplugins.com/');
135 }
136
137 // Framework Folder Path
138 if (!defined('FPF_BASE_DIR'))
139 {
140 define('FPF_BASE_DIR', dirname(__DIR__));
141 }
142
143 // Framework Folder Path
144 if (!defined('FPF_DIR'))
145 {
146 define('FPF_DIR', plugin_dir_path(__FILE__) . 'Inc');
147 }
148
149 // Framework Layouts Folder Path
150 if (!defined('FPF_LAYOUTS_DIR'))
151 {
152 define('FPF_LAYOUTS_DIR', FPF_DIR . '/Layouts/');
153 }
154
155 // Support URL
156 if (!defined('FPF_SUPPORT_URL'))
157 {
158 define('FPF_SUPPORT_URL', FPF_SITE_URL . 'contact/');
159 }
160
161 // Site Tower Endpoint
162 if (!defined('FPF_TOWER_ENDPOINT'))
163 {
164 define('FPF_TOWER_ENDPOINT', FPF_SITE_URL . 'wp-json/tower/v1/');
165 }
166
167 // The templates.fireplugins.com Site URL
168 if (!defined('FPF_TEMPLATES_SITE_URL'))
169 {
170 define('FPF_TEMPLATES_SITE_URL', 'https://templates.fireplugins.com/');
171 }
172
173 // Site Tower Endpoint
174 if (!defined('FPF_TEMPLATES_TOWER_ENDPOINT'))
175 {
176 define('FPF_TEMPLATES_TOWER_ENDPOINT', FPF_TEMPLATES_SITE_URL . 'wp-json/tower/v1/');
177 }
178
179 // URL to retrieve templates
180 if (!defined('FPF_TEMPLATES_GET_URL'))
181 {
182 define('FPF_TEMPLATES_GET_URL', FPF_TEMPLATES_TOWER_ENDPOINT . 'templates/{{PLUGIN}}/{{LICENSE_KEY}}/{{PLUGIN_VERSION}}/{{SITE_URL}}/get');
183 }
184
185 // URL to retrieve a template
186 if (!defined('FPF_TEMPLATE_GET_URL'))
187 {
188 define('FPF_TEMPLATE_GET_URL', FPF_TEMPLATES_TOWER_ENDPOINT . 'template/{{PLUGIN}}/{{TEMPLATE}}/{{LICENSE_KEY}}/{{SITE_URL}}/get');
189 }
190
191 /**
192 * Get License Version URL
193 */
194 if (!defined('FPF_GET_LICENSE_VERSION_URL'))
195 {
196 define('FPF_GET_LICENSE_VERSION_URL', FPF_TOWER_ENDPOINT . 'plugins/get_version/');
197 }
198
199 /**
200 * Plugin Changelog URL
201 */
202 if (!defined('FPF_PLUGIN_CHANGELOG_URL'))
203 {
204 define('FPF_PLUGIN_CHANGELOG_URL', FPF_SITE_URL . '%s/changelog/');
205 }
206
207 // Now kick off the class autoloader.
208 spl_autoload_register(
209 /**
210 * Autoload classes
211 *
212 * @param string $class
213 *
214 * @return void
215 */
216 function ($class)
217 {
218 static $namespaces = null;
219
220 if ($namespaces === null)
221 {
222 $base = dirname(__FILE__) . '/Inc/';
223
224 $namespaces = [
225 'FPFramework\\GeoIp2\\' => $base . 'Libs/Vendors/geoip2/geoip2/src/',
226 'FPFramework\\' => $base,
227 'MaxMind\\Db\\' => $base . 'Libs/Vendors/maxmind-db/reader/src/MaxMind/Db/',
228 'MaxMind\\' => $base . 'Libs/Vendors/maxmind/web-service-common/src/',
229 'splitbrain\\PHPArchive\\' => $base . 'Libs/Vendors/splitbrain/php-archive/src/',
230 ];
231 }
232
233 foreach ($namespaces as $prefix => $dir)
234 {
235 if (strpos($class, $prefix) === 0)
236 {
237 $file = $dir . str_replace('\\', '/', substr($class, strlen($prefix))) . '.php';
238
239 if (file_exists($file))
240 {
241 require_once $file;
242 }
243
244 return;
245 }
246 }
247 }
248 );
249
250 // load once
251 if (FPF_LOADED == $priority)
252 {
253 /**
254 * Fires when FPFramework is included/loaded
255 */
256 do_action('fpf_init');
257
258 if (is_admin())
259 {
260 /**
261 * Fires on the admin side when FPFramework is included/loaded.
262 */
263 do_action('fpf_admin_init');
264 }
265 }
266 }, firepluginsframework_getFrameworkPriority(dirname(__DIR__)));
267