PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 2.0.10
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v2.0.10
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 +102 -24 1.0.22.0.10 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.68
5 5 *
6 6 * @author FirePlugins <info@fireplugins.com>
7 7 * @link https://www.fireplugins.com
8 - * @copyright Copyright © 2021 FirePlugins All Rights Reserved
8 + * @copyright Copyright © 2023 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,56 @@
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 +
176 + // URL to check a license
177 + if (!defined('FPF_CHECK_LICENSE'))
178 + {
179 + define('FPF_CHECK_LICENSE', 'https://www.fireplugins.com/wp-json/tower/v1/license/check/{{LICENSE}}/{{PLUGIN}}/{{SITE_URL}}');
180 + }
181 +
118 182 /**
119 183 * Get License Version URL
120 184 */
121 - if (!defined( 'FPF_GET_LICENSE_VERSION_URL' )) {
122 - define ( 'FPF_GET_LICENSE_VERSION_URL' , FPF_TOWER_ENDPOINT . 'plugins/get_version/');
185 + if (!defined('FPF_GET_LICENSE_VERSION_URL'))
186 + {
187 + define('FPF_GET_LICENSE_VERSION_URL', FPF_TOWER_ENDPOINT . 'plugins/get_version/');
123 188 }
124 189
125 190 /**
126 191 * Plugin Changelog URL
127 192 */
128 - if (!defined( 'FPF_PLUGIN_CHANGELOG_URL' )) {
129 - define ( 'FPF_PLUGIN_CHANGELOG_URL' , FPF_SITE_URL . '%s/changelog/');
193 + if (!defined('FPF_PLUGIN_CHANGELOG_URL'))
194 + {
195 + define('FPF_PLUGIN_CHANGELOG_URL', FPF_SITE_URL . '%s/changelog/');
130 196 }
131 197
132 198 firepluginsframework_load_textdomain(dirname(__DIR__));
133 199
134 - // Include helper functions.
135 - require_once 'Inc/Framework.php';
136 -
137 200 // Now kick off the class autoloader.
138 201 spl_autoload_register(
139 202 /**
140 203 * Autoload classes
@@ -154,8 +217,23 @@
154 217 'MaxMind\\' => [ $base . 'Libs/Vendors/maxmind/web-service-common/src/' ],
155 218 'splitbrain\\PHPArchive\\' => [$base . 'Libs/Vendors/splitbrain/php-archive/src/' ],
156 219 ];
157 220
221 + $found = false;
222 + foreach ($namespaces as $key => $value)
223 + {
224 + if (strpos($class, $key) === 0)
225 + {
226 + $found = true;
227 + break;
228 + }
229 + }
230 +
231 + if (!$found)
232 + {
233 + return;
234 + }
235 +
158 236 $class = firepluginsframework_fixClassBasedOnNamespace($namespaces, $class);
159 237
160 238 $file = str_replace('\\', '/', $class) . '.php';
161 239
@@ -192,9 +270,9 @@
192 270 * @return void
193 271 */
194 272 function firepluginsframework_load_textdomain($dir)
195 273 {
196 - load_plugin_textdomain('fp-framework', false, $dir . '/Framework/languages/');
274 + load_plugin_textdomain('fpf-framework', false, $dir . '/Framework/languages/');
197 275 }
198 276 }
199 277
200 278 if (!function_exists('firepluginsframework_fixClassBasedOnNamespace'))