PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 2.1.39
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v2.1.39
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/Framework/init.php +98 -39 1.0.22.1.39 View file →
@@ -1,15 +1,21 @@
1 1 <?php
2 2 /**
3 3 * @package FirePlugins Framework
4 - * @version 1.0.3
4 + * @version 1.1.132
5 5 *
6 6 * @author FirePlugins <[email protected]>
7 7 * @link https://www.fireplugins.com
8 - * @copyright Copyright © 2021 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 +if (!function_exists('add_action'))
13 +{
14 + // We are running outside of the context of WordPress.
15 + return;
16 +}
17 +
12 18 if (!function_exists('firepluginsframework_getFrameworkVersion'))
13 19 {
14 20 /**
15 21 * Return the framework version
@@ -19,9 +25,9 @@
19 25 * @return void
20 26 */
21 27 function firepluginsframework_getFrameworkVersion($dir)
22 28 {
23 - $framework_file = '/framework.xml';
29 + $framework_file = 'framework.xml';
24 30
25 31 $xmlFile = $dir . '/Framework/' . $framework_file;
26 32
27 33 /**
@@ -29,9 +35,9 @@
29 35 * On final zip, the file will rest on /Framework/framework.xml.
30 36 *
31 37 * Thus the check below.
32 38 */
33 - $xmlFile = file_exists($xmlFile) ? $xmlFile : $dir . '/source' . $framework_file;
39 + $xmlFile = file_exists($xmlFile) ? $xmlFile : $dir . '/source/' . $framework_file;
34 40
35 41 $xml = [];
36 42
37 43 // load XML file
@@ -54,14 +60,30 @@
54 60 * @return void
55 61 */
56 62 function firepluginsframework_getFrameworkPriority($dir)
57 63 {
58 - $max_int_size = PHP_INT_MAX;
64 + $id = PHP_INT_MAX;
59 65
60 66 $version = firepluginsframework_getFrameworkVersion($dir);
61 - $version = str_replace('.', '', $version);
67 + $version = array_map('intval', explode('.', $version));
62 68
63 - return $max_int_size - (int) $version;
69 + for ($i = 0; $i < count($version); $i++)
70 + {
71 + if ($i == 0)
72 + {
73 + $id -= $version[$i] * 105;
74 + }
75 + else if ($i == 1)
76 + {
77 + $id -= $version[$i] * 55;
78 + }
79 + else
80 + {
81 + $id -= $version[$i];
82 + }
83 + }
84 +
85 + return $id;
64 86 }
65 87 }
66 88
67 89 /**
@@ -68,9 +90,9 @@
68 90 * Initialize the Framework
69 91 *
70 92 * @return void
71 93 */
72 -add_action( 'init', function()
94 +add_action('init', function()
73 95 {
74 96 if (class_exists('\FPFramework\Framework'))
75 97 {
76 98 return;
@@ -75,17 +97,11 @@
75 97 {
76 98 return;
77 99 }
78 100
79 - if (!function_exists('add_action'))
80 - {
81 - // We are running outside of the context of WordPress.
82 - return;
83 - }
84 -
85 101 $version = firepluginsframework_getFrameworkVersion(dirname(__DIR__));
86 102 $priority = firepluginsframework_getFrameworkPriority(dirname(__DIR__));
87 -
103 +
88 104 // Framework priority
89 105 if (!defined('FPF_LOADED'))
90 106 {
91 107 define('FPF_LOADED', $priority);
@@ -102,8 +118,32 @@
102 118 {
103 119 define('FPF_SITE_URL', 'https://www.fireplugins.com/');
104 120 }
105 121
122 + // Framework Folder Path
123 + if (!defined('FPF_BASE_DIR'))
124 + {
125 + define('FPF_BASE_DIR', dirname(__DIR__));
126 + }
127 +
128 + // Framework Folder Path
129 + if (!defined('FPF_DIR'))
130 + {
131 + define('FPF_DIR', plugin_dir_path(__FILE__) . 'Inc');
132 + }
133 +
134 + // Framework Layouts Folder Path
135 + if (!defined('FPF_LAYOUTS_DIR'))
136 + {
137 + define('FPF_LAYOUTS_DIR', FPF_DIR . '/Layouts/');
138 + }
139 +
140 + // Support URL
141 + if (!defined('FPF_SUPPORT_URL'))
142 + {
143 + define('FPF_SUPPORT_URL', FPF_SITE_URL . 'contact/');
144 + }
145 +
106 146 // Site Tower Endpoint
107 147 if (!defined('FPF_TOWER_ENDPOINT'))
108 148 {
109 149 define('FPF_TOWER_ENDPOINT', FPF_SITE_URL . 'wp-json/tower/v1/');
@@ -108,33 +148,48 @@
108 148 {
109 149 define('FPF_TOWER_ENDPOINT', FPF_SITE_URL . 'wp-json/tower/v1/');
110 150 }
111 151
152 + // The templates.fireplugins.com Site URL
153 + if (!defined('FPF_TEMPLATES_SITE_URL'))
154 + {
155 + define('FPF_TEMPLATES_SITE_URL', 'https://templates.fireplugins.com/');
156 + }
157 +
158 + // Site Tower Endpoint
159 + if (!defined('FPF_TEMPLATES_TOWER_ENDPOINT'))
160 + {
161 + define('FPF_TEMPLATES_TOWER_ENDPOINT', FPF_TEMPLATES_SITE_URL . 'wp-json/tower/v1/');
162 + }
163 +
112 164 // URL to retrieve templates
113 165 if (!defined('FPF_TEMPLATES_GET_URL'))
114 166 {
115 - define('FPF_TEMPLATES_GET_URL', FPF_TOWER_ENDPOINT . 'templates/{{PLUGIN}}/{{LICENSE_KEY}}/{{SITE_URL}}/get');
167 + define('FPF_TEMPLATES_GET_URL', FPF_TEMPLATES_TOWER_ENDPOINT . 'templates/{{PLUGIN}}/{{LICENSE_KEY}}/{{PLUGIN_VERSION}}/{{SITE_URL}}/get');
116 168 }
117 169
170 + // URL to retrieve a template
171 + if (!defined('FPF_TEMPLATE_GET_URL'))
172 + {
173 + define('FPF_TEMPLATE_GET_URL', FPF_TEMPLATES_TOWER_ENDPOINT . 'template/{{PLUGIN}}/{{TEMPLATE}}/{{LICENSE_KEY}}/{{SITE_URL}}/get');
174 + }
175 +
118 176 /**
119 177 * Get License Version URL
120 178 */
121 - if (!defined( 'FPF_GET_LICENSE_VERSION_URL' )) {
122 - define ( 'FPF_GET_LICENSE_VERSION_URL' , FPF_TOWER_ENDPOINT . 'plugins/get_version/');
179 + if (!defined('FPF_GET_LICENSE_VERSION_URL'))
180 + {
181 + define('FPF_GET_LICENSE_VERSION_URL', FPF_TOWER_ENDPOINT . 'plugins/get_version/');
123 182 }
124 183
125 184 /**
126 185 * Plugin Changelog URL
127 186 */
128 - if (!defined( 'FPF_PLUGIN_CHANGELOG_URL' )) {
129 - define ( 'FPF_PLUGIN_CHANGELOG_URL' , FPF_SITE_URL . '%s/changelog/');
187 + if (!defined('FPF_PLUGIN_CHANGELOG_URL'))
188 + {
189 + define('FPF_PLUGIN_CHANGELOG_URL', FPF_SITE_URL . '%s/changelog/');
130 190 }
131 191
132 - firepluginsframework_load_textdomain(dirname(__DIR__));
133 -
134 - // Include helper functions.
135 - require_once 'Inc/Framework.php';
136 -
137 192 // Now kick off the class autoloader.
138 193 spl_autoload_register(
139 194 /**
140 195 * Autoload classes
@@ -147,15 +202,30 @@
147 202 {
148 203 $base = dirname(__FILE__) . '/Inc/';
149 204
150 205 $namespaces = [
206 + 'FPFramework\\GeoIp2\\' => [ $base . 'Libs/Vendors/geoip2/geoip2/src/' ],
151 207 'FPFramework\\' => [ $base ],
152 - 'GeoIp2\\' => [ $base . 'Libs/Vendors/geoip2/geoip2/src/' ],
153 208 'MaxMind\\Db\\' => [ $base . 'Libs/Vendors/maxmind-db/reader/src/MaxMind/Db/' ],
154 209 'MaxMind\\' => [ $base . 'Libs/Vendors/maxmind/web-service-common/src/' ],
155 210 'splitbrain\\PHPArchive\\' => [$base . 'Libs/Vendors/splitbrain/php-archive/src/' ],
156 211 ];
157 212
213 + $found = false;
214 + foreach ($namespaces as $key => $value)
215 + {
216 + if (strpos($class, $key) === 0)
217 + {
218 + $found = true;
219 + break;
220 + }
221 + }
222 +
223 + if (!$found)
224 + {
225 + return;
226 + }
227 +
158 228 $class = firepluginsframework_fixClassBasedOnNamespace($namespaces, $class);
159 229
160 230 $file = str_replace('\\', '/', $class) . '.php';
161 231
@@ -164,8 +234,10 @@
164 234 require_once $file;
165 235 }
166 236 }
167 237 );
238 +
239 + \FPFramework\Base\Session::getInstance()->init();
168 240
169 241 // load once
170 242 if (FPF_LOADED == $priority)
171 243 {
@@ -182,21 +254,8 @@
182 254 do_action('fpf_admin_init');
183 255 }
184 256 }
185 257 }, firepluginsframework_getFrameworkPriority(dirname(__DIR__)));
186 -
187 -if (!function_exists('firepluginsframework_load_textdomain'))
188 -{
189 - /**
190 - * Load textdomain of plugin
191 - *
192 - * @return void
193 - */
194 - function firepluginsframework_load_textdomain($dir)
195 - {
196 - load_plugin_textdomain('fp-framework', false, $dir . '/Framework/languages/');
197 - }
198 -}
199 258
200 259 if (!function_exists('firepluginsframework_fixClassBasedOnNamespace'))
201 260 {
202 261 /**