Version Description
Download this release
Release Info
| Developer | creativethemeshq |
| Plugin | |
| Version | 1.8.31 |
| Comparing to | |
| See all releases | |
Code changes from version 1.8.30 to 1.8.31
- blocksy-companion.php +1 -1
- framework/dashboard.php +1 -1
- framework/extensions-manager.php +491 -411
- framework/extensions/cookies-consent/static/bundle/main.min.css +1 -1
- framework/extensions/newsletter-subscribe/static/bundle/main.min.css +1 -1
- framework/extensions/product-reviews/static/bundle/main-admin.min.css +1 -1
- framework/extensions/product-reviews/static/bundle/main.min.css +1 -1
- framework/extensions/trending/customizer.php +1 -1
- framework/extensions/trending/extension.php +121 -77
- framework/extensions/trending/static/bundle/main.min.css +1 -1
- framework/extensions/widgets/static/bundle/main.min.css +1 -1
- framework/features/header/modal/login.php +35 -42
- framework/features/header/modal/register.php +38 -55
- framework/theme-integration.php +1 -1
- plugin.php +196 -138
- readme.txt +4 -1
- static/bundle/account-lazy.min.css +1 -1
- static/bundle/dashboard.min.css +1 -1
- static/bundle/options.min.css +1 -1
blocksy-companion.php
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
/*
|
| 4 |
Plugin Name: Blocksy Companion
|
| 5 |
Description: This plugin is the companion for the Blocksy theme, it runs and adds its enhacements only if the Blocksy theme is installed and active.
|
| 6 |
-
Version: 1.8.
|
| 7 |
Author: CreativeThemes
|
| 8 |
Author URI: https://creativethemes.com
|
| 9 |
Text Domain: blocksy-companion
|
| 3 |
/*
|
| 4 |
Plugin Name: Blocksy Companion
|
| 5 |
Description: This plugin is the companion for the Blocksy theme, it runs and adds its enhacements only if the Blocksy theme is installed and active.
|
| 6 |
+
Version: 1.8.31
|
| 7 |
Author: CreativeThemes
|
| 8 |
Author URI: https://creativethemes.com
|
| 9 |
Text Domain: blocksy-companion
|
framework/dashboard.php
CHANGED
|
@@ -107,7 +107,7 @@ class Dashboard {
|
|
| 107 |
}
|
| 108 |
|
| 109 |
$result = [
|
| 110 |
-
'is_pro' => blc_fs()->
|
| 111 |
'is_anonymous' => $is_anonymous,
|
| 112 |
'connect_template' => $connect_template
|
| 113 |
];
|
| 107 |
}
|
| 108 |
|
| 109 |
$result = [
|
| 110 |
+
'is_pro' => blc_fs()->can_use_premium_code(),
|
| 111 |
'is_anonymous' => $is_anonymous,
|
| 112 |
'connect_template' => $connect_template
|
| 113 |
];
|
framework/extensions-manager.php
CHANGED
|
@@ -2,414 +2,494 @@
|
|
| 2 |
|
| 3 |
namespace Blocksy;
|
| 4 |
|
| 5 |
-
class ExtensionsManager
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
|
| 355 |
-
|
| 356 |
-
|
| 357 |
-
|
| 358 |
-
|
| 359 |
-
|
| 360 |
-
|
| 361 |
-
|
| 362 |
-
|
| 363 |
-
|
| 364 |
-
|
| 365 |
-
|
| 366 |
-
|
| 367 |
-
|
| 368 |
-
|
| 369 |
-
|
| 370 |
-
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
|
| 374 |
-
|
| 375 |
-
|
| 376 |
-
|
| 377 |
-
|
| 378 |
-
|
| 379 |
-
|
| 380 |
-
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
| 386 |
-
|
| 387 |
-
|
| 388 |
-
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
|
| 392 |
-
|
| 393 |
-
|
| 394 |
-
|
| 395 |
-
|
| 396 |
-
|
| 397 |
-
|
| 398 |
-
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
namespace Blocksy;
|
| 4 |
|
| 5 |
+
class ExtensionsManager {
|
| 6 |
+
/**
|
| 7 |
+
* Collection of all the activated extensions.
|
| 8 |
+
*
|
| 9 |
+
* @var array The array of all the extension objects.
|
| 10 |
+
*/
|
| 11 |
+
private $extensions = [];
|
| 12 |
+
|
| 13 |
+
private function get_option_name() {
|
| 14 |
+
return 'blocksy_active_extensions';
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
public function get($id, $args = []) {
|
| 18 |
+
$args = wp_parse_args($args, [
|
| 19 |
+
// regular | preboot
|
| 20 |
+
'type' => 'regular',
|
| 21 |
+
]);
|
| 22 |
+
|
| 23 |
+
if (! isset($this->extensions[$id])) {
|
| 24 |
+
return null;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
if ($args['type'] === 'preboot') {
|
| 28 |
+
if (! isset($this->extensions[$id]['__object_preboot'])) {
|
| 29 |
+
return null;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
return $this->extensions[$id]['__object_preboot'];
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
if (! isset($this->extensions[$id]['__object'])) {
|
| 36 |
+
return null;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
return $this->extensions[$id]['__object'];
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
/**
|
| 43 |
+
* Collect all available extensions and activate the ones that have to be so.
|
| 44 |
+
*/
|
| 45 |
+
public function __construct() {
|
| 46 |
+
$this->read_installed_extensions();
|
| 47 |
+
|
| 48 |
+
if ($this->is_dashboard_page()) {
|
| 49 |
+
$this->do_extensions_preboot();
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
foreach ($this->get_activated_extensions() as $single_id) {
|
| 53 |
+
$this->boot_activated_extension_for($single_id);
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
add_action(
|
| 57 |
+
'activate_blocksy-companion/blocksy-companion.php',
|
| 58 |
+
[$this, 'handle_activation'],
|
| 59 |
+
11
|
| 60 |
+
);
|
| 61 |
+
|
| 62 |
+
add_action(
|
| 63 |
+
'deactivate_blocksy-companion/blocksy-companion.php',
|
| 64 |
+
[$this, 'handle_deactivation'],
|
| 65 |
+
11
|
| 66 |
+
);
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
public function handle_activation() {
|
| 70 |
+
ob_start();
|
| 71 |
+
|
| 72 |
+
foreach ($this->get_activated_extensions() as $id) {
|
| 73 |
+
if (method_exists($this->get_class_name_for($id), "onActivation")) {
|
| 74 |
+
call_user_func([
|
| 75 |
+
$this->get_class_name_for($id),
|
| 76 |
+
'onActivation'
|
| 77 |
+
]);
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
ob_get_clean();
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
public function handle_deactivation() {
|
| 85 |
+
foreach ($this->get_activated_extensions() as $id) {
|
| 86 |
+
if (method_exists($this->get_class_name_for($id), "onDeactivation")) {
|
| 87 |
+
call_user_func([
|
| 88 |
+
$this->get_class_name_for($id),
|
| 89 |
+
'onDeactivation'
|
| 90 |
+
]);
|
| 91 |
+
}
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
public function do_extensions_preboot() {
|
| 96 |
+
foreach (array_keys($this->get_extensions()) as $single_id) {
|
| 97 |
+
$this->maybe_do_extension_preboot($single_id);
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
private function is_dashboard_page() {
|
| 102 |
+
global $pagenow;
|
| 103 |
+
|
| 104 |
+
$is_ct_settings =
|
| 105 |
+
// 'themes.php' === $pagenow &&
|
| 106 |
+
isset( $_GET['page'] ) && 'ct-dashboard' === $_GET['page'];
|
| 107 |
+
|
| 108 |
+
return $is_ct_settings;
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
public function get_extensions($args = []) {
|
| 112 |
+
$args = wp_parse_args($args, [
|
| 113 |
+
'forced_reread' => false,
|
| 114 |
+
]);
|
| 115 |
+
|
| 116 |
+
if ($args['forced_reread']) {
|
| 117 |
+
foreach ($this->extensions as $id => $extension) {
|
| 118 |
+
$this->extensions[$id]['config'] = $this->read_config_for(
|
| 119 |
+
$extension['path']
|
| 120 |
+
);
|
| 121 |
+
|
| 122 |
+
$this->extensions[$id]['readme'] = $this->read_readme_for(
|
| 123 |
+
$extension['path']
|
| 124 |
+
);
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
$this->register_fake_extensions();
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
return $this->extensions;
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
public function can( $capability = 'install_plugins' ) {
|
| 134 |
+
$user = wp_get_current_user();
|
| 135 |
+
|
| 136 |
+
// return array_intersect(['administrator'], $user->roles );
|
| 137 |
+
|
| 138 |
+
if ( is_multisite() ) {
|
| 139 |
+
// Only network admin can change files that affects the entire network.
|
| 140 |
+
$can = current_user_can_for_blog( get_current_blog_id(), $capability );
|
| 141 |
+
} else {
|
| 142 |
+
$can = current_user_can( $capability );
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
if ( $can ) {
|
| 146 |
+
// Also you can use this method to get the capability.
|
| 147 |
+
$can = $capability;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
return $can;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
public function activate_extension($id) {
|
| 154 |
+
if (! isset($this->extensions[$id])) {
|
| 155 |
+
return;
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
if (! $this->extensions[$id]['path']) {
|
| 159 |
+
return;
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
$activated = $this->get_activated_extensions();
|
| 163 |
+
|
| 164 |
+
if (! in_array(strtolower($id), $activated)) {
|
| 165 |
+
$path = $this->extensions[$id]['path'];
|
| 166 |
+
require_once($path . '/extension.php');
|
| 167 |
+
|
| 168 |
+
if (method_exists($this->get_class_name_for($id), "onActivation")) {
|
| 169 |
+
call_user_func([
|
| 170 |
+
$this->get_class_name_for($id),
|
| 171 |
+
'onActivation'
|
| 172 |
+
]);
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
$class = $this->get_class_name_for($id);
|
| 176 |
+
|
| 177 |
+
// Init extension right away.
|
| 178 |
+
new $class;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
$activated[] = strtolower($id);
|
| 182 |
+
|
| 183 |
+
|
| 184 |
+
update_option($this->get_option_name(), array_unique($activated));
|
| 185 |
+
|
| 186 |
+
do_action('blocksy:dynamic-css:refresh-caches');
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
public function deactivate_extension($id) {
|
| 190 |
+
if (! isset($this->extensions[$id])) {
|
| 191 |
+
return;
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
if (! $this->extensions[$id]['path']) {
|
| 195 |
+
return;
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
$activated = $this->get_activated_extensions();
|
| 199 |
+
|
| 200 |
+
if (in_array(strtolower($id), $activated)) {
|
| 201 |
+
if (method_exists($this->get_class_name_for($id), "onDeactivation")) {
|
| 202 |
+
call_user_func([
|
| 203 |
+
$this->get_class_name_for($id),
|
| 204 |
+
'onDeactivation'
|
| 205 |
+
]);
|
| 206 |
+
}
|
| 207 |
+
}
|
| 208 |
+
|
| 209 |
+
update_option($this->get_option_name(), array_diff(
|
| 210 |
+
$activated,
|
| 211 |
+
[$id]
|
| 212 |
+
));
|
| 213 |
+
|
| 214 |
+
do_action('blocksy:dynamic-css:refresh-caches');
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
private function read_installed_extensions() {
|
| 218 |
+
$paths_to_look_for_extensions = apply_filters(
|
| 219 |
+
'blocksy_extensions_paths',
|
| 220 |
+
[
|
| 221 |
+
BLOCKSY_PATH . 'framework/extensions'
|
| 222 |
+
]
|
| 223 |
+
);
|
| 224 |
+
|
| 225 |
+
foreach ($paths_to_look_for_extensions as $single_path) {
|
| 226 |
+
$all_extensions = glob($single_path . '/*', GLOB_ONLYDIR);
|
| 227 |
+
|
| 228 |
+
foreach ($all_extensions as $single_extension) {
|
| 229 |
+
$this->register_extension_for($single_extension);
|
| 230 |
+
}
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
$this->register_fake_extensions();
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
private function register_fake_extensions() {
|
| 237 |
+
if (blc_fs()->can_use_premium_code()) {
|
| 238 |
+
return;
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
$this->extensions['adobe-typekit'] = [
|
| 242 |
+
'path' => null,
|
| 243 |
+
'__object' => null,
|
| 244 |
+
'config' => [
|
| 245 |
+
'name' => __('Adobe Typekit', 'blocksy-companion'),
|
| 246 |
+
'description' => __('Connect your Typekit account and use your fonts in any typography option.', 'blocksy-companion'),
|
| 247 |
+
'pro' => true
|
| 248 |
+
],
|
| 249 |
+
'readme' => '',
|
| 250 |
+
'data' => null
|
| 251 |
+
];
|
| 252 |
+
|
| 253 |
+
$this->extensions['custom-code-snippets'] = [
|
| 254 |
+
'path' => null,
|
| 255 |
+
'__object' => null,
|
| 256 |
+
'config' => [
|
| 257 |
+
'name' => __('Custom Code Snippets', 'blocksy-companion'),
|
| 258 |
+
'description' => __('Add custom code snippets in your header and footer, globally and per post or page individually.', 'blocksy-companion'),
|
| 259 |
+
'pro' => true
|
| 260 |
+
],
|
| 261 |
+
'readme' => '',
|
| 262 |
+
'data' => null
|
| 263 |
+
];
|
| 264 |
+
|
| 265 |
+
$this->extensions['custom-fonts'] = [
|
| 266 |
+
'path' => null,
|
| 267 |
+
'__object' => null,
|
| 268 |
+
'config' => [
|
| 269 |
+
'name' => __('Custom Fonts', 'blocksy-companion'),
|
| 270 |
+
'description' => __('Upload unlimited number of custom fonts or variable fonts and use them in any typography option.', 'blocksy-companion'),
|
| 271 |
+
'pro' => true
|
| 272 |
+
],
|
| 273 |
+
'readme' => '',
|
| 274 |
+
'data' => null
|
| 275 |
+
];
|
| 276 |
+
|
| 277 |
+
$this->extensions['local-google-fonts'] = [
|
| 278 |
+
'path' => null,
|
| 279 |
+
'__object' => null,
|
| 280 |
+
'config' => [
|
| 281 |
+
'name' => __('Local Google Fonts', 'blocksy-companion'),
|
| 282 |
+
'description' => __('Serve Google Fonts from your own server for full GDPR compliancy.', 'blocksy-companion'),
|
| 283 |
+
'pro' => true
|
| 284 |
+
],
|
| 285 |
+
'readme' => '',
|
| 286 |
+
'data' => null
|
| 287 |
+
];
|
| 288 |
+
|
| 289 |
+
$this->extensions['advanced-menu'] = [
|
| 290 |
+
'path' => null,
|
| 291 |
+
'__object' => null,
|
| 292 |
+
'config' => [
|
| 293 |
+
'name' => __('Advanced Menu', 'blocksy-companion'),
|
| 294 |
+
'description' => __('Create beautiful mega menus, assign icons add badges to menu items, and content blocks inside menu items.', 'blocksy-companion'),
|
| 295 |
+
'pro' => true
|
| 296 |
+
],
|
| 297 |
+
'readme' => '',
|
| 298 |
+
'data' => null
|
| 299 |
+
];
|
| 300 |
+
|
| 301 |
+
$this->extensions['shortcuts-bar'] = [
|
| 302 |
+
'path' => null,
|
| 303 |
+
'__object' => null,
|
| 304 |
+
'config' => [
|
| 305 |
+
'name' => __('Shortcuts Bar', 'blocksy-companion'),
|
| 306 |
+
'description' => __('Transform your website into a app like by displaying a neat shortcuts bar at the bottom of the vieport.', 'blocksy-companion'),
|
| 307 |
+
'pro' => true
|
| 308 |
+
],
|
| 309 |
+
'readme' => '',
|
| 310 |
+
'data' => null
|
| 311 |
+
];
|
| 312 |
+
|
| 313 |
+
$this->extensions['multiple-sidebars'] = [
|
| 314 |
+
'path' => null,
|
| 315 |
+
'__object' => null,
|
| 316 |
+
'config' => [
|
| 317 |
+
'name' => __('Multiple Sidebars', 'blocksy-companion'),
|
| 318 |
+
'description' => __('Create unlimited number of sidebars and display them conditionaly on any page or post.', 'blocksy-companion'),
|
| 319 |
+
'pro' => true
|
| 320 |
+
],
|
| 321 |
+
'readme' => '',
|
| 322 |
+
'data' => null
|
| 323 |
+
];
|
| 324 |
+
|
| 325 |
+
$this->extensions['white-label'] = [
|
| 326 |
+
'path' => null,
|
| 327 |
+
'__object' => null,
|
| 328 |
+
'config' => [
|
| 329 |
+
'name' => __('White Label (Agency Package)', 'blocksy-companion'),
|
| 330 |
+
'description' => __('Change the theme and companion plugin branding to your own custom one.', 'blocksy-companion'),
|
| 331 |
+
'pro' => true
|
| 332 |
+
],
|
| 333 |
+
'readme' => '',
|
| 334 |
+
'data' => null
|
| 335 |
+
];
|
| 336 |
+
|
| 337 |
+
$this->extensions['woocommerce-extra'] = [
|
| 338 |
+
'path' => null,
|
| 339 |
+
'__object' => null,
|
| 340 |
+
'config' => [
|
| 341 |
+
'name' => __('WooCommerce Extra', 'blocksy-companion'),
|
| 342 |
+
'description' => __('Increase the conversion rate by adding a product quick view modal, a floating cart. Control the single product gallery/slider and the layout, add a wishlits page.', 'blocksy-companion'),
|
| 343 |
+
'pro' => true
|
| 344 |
+
],
|
| 345 |
+
'readme' => '',
|
| 346 |
+
'data' => null
|
| 347 |
+
];
|
| 348 |
+
}
|
| 349 |
+
|
| 350 |
+
private function register_extension_for($path) {
|
| 351 |
+
$id = str_replace('_', '-', basename($path));
|
| 352 |
+
|
| 353 |
+
if (isset($this->extensions[$id])) return;
|
| 354 |
+
|
| 355 |
+
$this->extensions[$id] = [
|
| 356 |
+
'path' => $path,
|
| 357 |
+
'__object' => null,
|
| 358 |
+
'config' => $this->read_config_for($path),
|
| 359 |
+
'readme' => $this->read_readme_for($path),
|
| 360 |
+
'data' => null
|
| 361 |
+
];
|
| 362 |
+
}
|
| 363 |
+
|
| 364 |
+
private function maybe_do_extension_preboot($id) {
|
| 365 |
+
if (! isset($this->extensions[$id])) return false;
|
| 366 |
+
if (isset($this->extensions[$id]['__object_preboot'])) return;
|
| 367 |
+
|
| 368 |
+
$class_name = explode( '-', $id );
|
| 369 |
+
$class_name = array_map( 'ucfirst', $class_name );
|
| 370 |
+
$class_name = 'BlocksyExtension' . implode( '', $class_name ) . 'PreBoot';
|
| 371 |
+
|
| 372 |
+
$path = $this->extensions[$id]['path'];
|
| 373 |
+
|
| 374 |
+
if (! $path) {
|
| 375 |
+
return;
|
| 376 |
+
}
|
| 377 |
+
|
| 378 |
+
if (! @is_readable($path . '/pre-boot.php')) {
|
| 379 |
+
return;
|
| 380 |
+
}
|
| 381 |
+
|
| 382 |
+
if (! file_exists($path . '/pre-boot.php')) {
|
| 383 |
+
return;
|
| 384 |
+
}
|
| 385 |
+
|
| 386 |
+
require_once($path . '/pre-boot.php');
|
| 387 |
+
|
| 388 |
+
$this->extensions[$id]['__object_preboot'] = new $class_name();
|
| 389 |
+
|
| 390 |
+
if (method_exists(
|
| 391 |
+
$this->extensions[$id]['__object_preboot'], 'ext_data'
|
| 392 |
+
)) {
|
| 393 |
+
$this->extensions[$id]['data'] = $this->extensions[
|
| 394 |
+
$id
|
| 395 |
+
]['__object_preboot']->ext_data();
|
| 396 |
+
}
|
| 397 |
+
}
|
| 398 |
+
|
| 399 |
+
private function boot_activated_extension_for($id) {
|
| 400 |
+
if (! isset($this->extensions[$id])) return false;
|
| 401 |
+
if (! isset($this->extensions[$id]['path'])) return false;
|
| 402 |
+
if (! $this->extensions[$id]['path']) return false;
|
| 403 |
+
|
| 404 |
+
if (
|
| 405 |
+
isset($this->extensions[$id]['config']['hidden'])
|
| 406 |
+
&&
|
| 407 |
+
$this->extensions[$id]['config']['hidden']
|
| 408 |
+
) {
|
| 409 |
+
return;
|
| 410 |
+
}
|
| 411 |
+
|
| 412 |
+
if (isset($this->extensions[$id]['__object'])) return;
|
| 413 |
+
|
| 414 |
+
$class_name = explode( '-', $id );
|
| 415 |
+
$class_name = array_map( 'ucfirst', $class_name );
|
| 416 |
+
$class_name = 'BlocksyExtension' . implode( '', $class_name );
|
| 417 |
+
|
| 418 |
+
$path = $this->extensions[$id]['path'];
|
| 419 |
+
|
| 420 |
+
if (! $path) {
|
| 421 |
+
return;
|
| 422 |
+
}
|
| 423 |
+
|
| 424 |
+
if (! @is_readable($path . '/extension.php')) {
|
| 425 |
+
return;
|
| 426 |
+
}
|
| 427 |
+
|
| 428 |
+
if (! file_exists($path . '/extension.php')) {
|
| 429 |
+
return;
|
| 430 |
+
}
|
| 431 |
+
|
| 432 |
+
require_once($path . '/extension.php');
|
| 433 |
+
|
| 434 |
+
$this->extensions[$id]['__object'] = new $class_name();
|
| 435 |
+
}
|
| 436 |
+
|
| 437 |
+
private function get_class_name_for($id) {
|
| 438 |
+
$class_name = explode( '-', $id );
|
| 439 |
+
$class_name = array_map( 'ucfirst', $class_name );
|
| 440 |
+
return 'BlocksyExtension' . implode( '', $class_name );
|
| 441 |
+
}
|
| 442 |
+
|
| 443 |
+
private function read_readme_for($path) {
|
| 444 |
+
$readme = '';
|
| 445 |
+
|
| 446 |
+
ob_start();
|
| 447 |
+
|
| 448 |
+
if (is_readable($path . '/readme.php')) {
|
| 449 |
+
require $path . '/readme.php';
|
| 450 |
+
}
|
| 451 |
+
|
| 452 |
+
$readme = ob_get_clean();
|
| 453 |
+
|
| 454 |
+
if (empty(trim($readme))) {
|
| 455 |
+
return null;
|
| 456 |
+
}
|
| 457 |
+
|
| 458 |
+
return trim($readme);
|
| 459 |
+
}
|
| 460 |
+
|
| 461 |
+
private function read_config_for( $file_path ) {
|
| 462 |
+
$_extract_variables = [ 'config' => [] ];
|
| 463 |
+
|
| 464 |
+
if (is_readable($file_path . '/config.php')) {
|
| 465 |
+
require $file_path . '/config.php';
|
| 466 |
+
|
| 467 |
+
foreach ($_extract_variables as $variable_name => $default_value) {
|
| 468 |
+
if (isset($$variable_name)) {
|
| 469 |
+
$_extract_variables[ $variable_name ] = $$variable_name;
|
| 470 |
+
}
|
| 471 |
+
}
|
| 472 |
+
}
|
| 473 |
+
|
| 474 |
+
$name = explode('-', basename($file_path));
|
| 475 |
+
$name = array_map('ucfirst', $name);
|
| 476 |
+
$name = implode(' ', $name);
|
| 477 |
+
|
| 478 |
+
$_extract_variables['config'] = array_merge(
|
| 479 |
+
[
|
| 480 |
+
'name' => $name,
|
| 481 |
+
'description' => '',
|
| 482 |
+
'pro' => false,
|
| 483 |
+
'hidden' => false
|
| 484 |
+
],
|
| 485 |
+
$_extract_variables['config']
|
| 486 |
+
);
|
| 487 |
+
|
| 488 |
+
return $_extract_variables['config'];
|
| 489 |
+
}
|
| 490 |
+
|
| 491 |
+
private function get_activated_extensions() {
|
| 492 |
+
return get_option($this->get_option_name(), []);
|
| 493 |
+
}
|
| 494 |
+
}
|
| 495 |
+
|
framework/extensions/cookies-consent/static/bundle/main.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
framework/extensions/newsletter-subscribe/static/bundle/main.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
framework/extensions/product-reviews/static/bundle/main-admin.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
framework/extensions/product-reviews/static/bundle/main.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
framework/extensions/trending/customizer.php
CHANGED
|
@@ -283,7 +283,7 @@ $options = [
|
|
| 283 |
],
|
| 284 |
],
|
| 285 |
|
| 286 |
-
blc_fs()->
|
| 287 |
'trending_block_location' => [
|
| 288 |
'label' => __('Display Location', 'blocksy-companion'),
|
| 289 |
'type' => 'ct-select',
|
| 283 |
],
|
| 284 |
],
|
| 285 |
|
| 286 |
+
blc_fs()->can_use_premium_code() ? [
|
| 287 |
'trending_block_location' => [
|
| 288 |
'label' => __('Display Location', 'blocksy-companion'),
|
| 289 |
'type' => 'ct-select',
|
framework/extensions/trending/extension.php
CHANGED
|
@@ -1,79 +1,123 @@
|
|
| 1 |
<?php
|
| 2 |
|
| 3 |
-
require_once dirname(
|
| 4 |
-
|
| 5 |
-
{
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
<?php
|
| 2 |
|
| 3 |
+
require_once dirname(__FILE__) . '/helpers.php';
|
| 4 |
+
|
| 5 |
+
class BlocksyExtensionTrending {
|
| 6 |
+
public function __construct() {
|
| 7 |
+
add_action('wp_enqueue_scripts', function () {
|
| 8 |
+
if (! function_exists('get_plugin_data')) {
|
| 9 |
+
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
$data = get_plugin_data(BLOCKSY__FILE__);
|
| 13 |
+
|
| 14 |
+
if (is_admin()) {
|
| 15 |
+
return;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
wp_enqueue_style(
|
| 19 |
+
'blocksy-ext-trending-styles',
|
| 20 |
+
BLOCKSY_URL . 'framework/extensions/trending/static/bundle/main.min.css',
|
| 21 |
+
['ct-main-styles'],
|
| 22 |
+
$data['Version']
|
| 23 |
+
);
|
| 24 |
+
}, 50);
|
| 25 |
+
|
| 26 |
+
add_filter('blocksy:frontend:dynamic-js-chunks', function ($chunks) {
|
| 27 |
+
$chunks[] = [
|
| 28 |
+
'id' => 'blocksy_ext_trending',
|
| 29 |
+
'selector' => '.ct-trending-block [class*="ct-arrow"]',
|
| 30 |
+
'url' => blc_call_fn(
|
| 31 |
+
[
|
| 32 |
+
'fn' => 'blocksy_cdn_url',
|
| 33 |
+
'default' => BLOCKSY_URL . 'framework/extensions/trending/static/bundle/main.js'
|
| 34 |
+
],
|
| 35 |
+
BLOCKSY_URL . 'framework/extensions/trending/static/bundle/main.js'
|
| 36 |
+
),
|
| 37 |
+
'trigger' => 'click'
|
| 38 |
+
];
|
| 39 |
+
|
| 40 |
+
return $chunks;
|
| 41 |
+
});
|
| 42 |
+
|
| 43 |
+
add_filter(
|
| 44 |
+
'blocksy_extensions_customizer_options',
|
| 45 |
+
function ($opts) {
|
| 46 |
+
$opts['trending_posts_ext'] = blc_call_fn(
|
| 47 |
+
[
|
| 48 |
+
'fn' => 'blocksy_get_options',
|
| 49 |
+
'default' => 'array'
|
| 50 |
+
],
|
| 51 |
+
dirname(__FILE__) . '/customizer.php',
|
| 52 |
+
[], false
|
| 53 |
+
);
|
| 54 |
+
|
| 55 |
+
return $opts;
|
| 56 |
+
}
|
| 57 |
+
);
|
| 58 |
+
|
| 59 |
+
add_action('wp', function () {
|
| 60 |
+
$location = 'blocksy:template:after';
|
| 61 |
+
|
| 62 |
+
if (blc_fs()->can_use_premium_code()) {
|
| 63 |
+
$location = get_theme_mod(
|
| 64 |
+
'trending_block_location',
|
| 65 |
+
'blocksy:content:bottom'
|
| 66 |
+
);
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
add_action(
|
| 70 |
+
$location,
|
| 71 |
+
function () {
|
| 72 |
+
if (blc_fs()->can_use_premium_code()) {
|
| 73 |
+
$conditions = get_theme_mod(
|
| 74 |
+
'trending_block_conditions',
|
| 75 |
+
[
|
| 76 |
+
[
|
| 77 |
+
'type' => 'include',
|
| 78 |
+
'rule' => 'everywhere',
|
| 79 |
+
]
|
| 80 |
+
]
|
| 81 |
+
);
|
| 82 |
+
|
| 83 |
+
$conditions_manager = new \Blocksy\ConditionsManager();
|
| 84 |
+
|
| 85 |
+
if (! $conditions_manager->condition_matches($conditions)) {
|
| 86 |
+
return;
|
| 87 |
+
}
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
echo blc_get_trending_block();
|
| 91 |
+
},
|
| 92 |
+
50
|
| 93 |
+
);
|
| 94 |
+
});
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
add_action(
|
| 98 |
+
'customize_preview_init',
|
| 99 |
+
function () {
|
| 100 |
+
if (! function_exists('get_plugin_data')) {
|
| 101 |
+
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
$data = get_plugin_data(BLOCKSY__FILE__);
|
| 105 |
+
|
| 106 |
+
wp_enqueue_script(
|
| 107 |
+
'blocksy-trending-customizer-sync',
|
| 108 |
+
BLOCKSY_URL . 'framework/extensions/trending/static/bundle/sync.js',
|
| 109 |
+
['customize-preview', 'ct-scripts', 'ct-customizer'],
|
| 110 |
+
$data['Version'],
|
| 111 |
+
true
|
| 112 |
+
);
|
| 113 |
+
}
|
| 114 |
+
);
|
| 115 |
+
|
| 116 |
+
add_action('blocksy:global-dynamic-css:enqueue', function ($args) {
|
| 117 |
+
blocksy_theme_get_dynamic_styles(array_merge([
|
| 118 |
+
'path' => dirname( __FILE__ ) . '/global.php',
|
| 119 |
+
'chunk' => 'global'
|
| 120 |
+
], $args));
|
| 121 |
+
}, 10, 3);
|
| 122 |
+
}
|
| 123 |
+
}
|
framework/extensions/trending/static/bundle/main.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
framework/extensions/widgets/static/bundle/main.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
framework/features/header/modal/login.php
CHANGED
|
@@ -1,76 +1,69 @@
|
|
| 1 |
<?php
|
| 2 |
|
| 3 |
// wp_login_form([]);
|
| 4 |
-
|
| 5 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
$forgot_pass_class = 'ct-forgot-password';
|
| 7 |
-
|
| 8 |
-
|
|
|
|
| 9 |
}
|
|
|
|
| 10 |
?>
|
| 11 |
|
| 12 |
<form name="loginform" id="loginform" action="#" method="post">
|
| 13 |
-
<?php
|
| 14 |
-
do_action(
|
| 15 |
-
?>
|
| 16 |
-
<?php
|
| 17 |
-
do_action( 'blocksy:account:modal:login:start' );
|
| 18 |
-
?>
|
| 19 |
|
| 20 |
<p class="login-username">
|
| 21 |
-
<label for="user_login"><?php
|
| 22 |
-
echo __( 'Username or Email Address', 'blocksy-companion' ) ;
|
| 23 |
-
?></label>
|
| 24 |
<input type="text" name="log" id="user_login" class="input" value="" size="20">
|
| 25 |
</p>
|
| 26 |
|
| 27 |
<p class="login-password">
|
| 28 |
-
<label for="user_pass"><?php
|
| 29 |
-
echo __( 'Password', 'blocksy-companion' ) ;
|
| 30 |
-
?></label>
|
| 31 |
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20">
|
| 32 |
</p>
|
| 33 |
|
| 34 |
<p class="login-remember col-2">
|
| 35 |
<span>
|
| 36 |
<input name="rememberme" type="checkbox" id="rememberme" class="ct-checkbox" value="forever">
|
| 37 |
-
<label for="rememberme"><?php
|
| 38 |
-
echo __( 'Remember Me', 'blocksy-companion' ) ;
|
| 39 |
-
?></label>
|
| 40 |
</span>
|
| 41 |
|
| 42 |
-
<a href="<?php
|
| 43 |
-
echo
|
| 44 |
-
?>" class="<?php
|
| 45 |
-
echo $forgot_pass_class ;
|
| 46 |
-
?>">
|
| 47 |
-
<?php
|
| 48 |
-
echo __( 'Forgot Password?', 'blocksy-companion' ) ;
|
| 49 |
-
?>
|
| 50 |
</a>
|
| 51 |
</p>
|
| 52 |
|
| 53 |
-
<?php
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
<p class="login-submit">
|
| 58 |
<button name="wp-submit" class="ct-button">
|
| 59 |
-
<?php
|
| 60 |
-
echo __( 'Log In', 'blocksy-companion' ) ;
|
| 61 |
-
?>
|
| 62 |
</button>
|
| 63 |
|
| 64 |
-
<input type="hidden" name="redirect_to" value="<?php
|
| 65 |
-
echo $redirect_to_url ;
|
| 66 |
-
?>">
|
| 67 |
</p>
|
| 68 |
|
| 69 |
-
<?php
|
| 70 |
-
do_action(
|
| 71 |
-
?>
|
| 72 |
-
<?php
|
| 73 |
-
do_action( 'woocommerce_login_form_end' );
|
| 74 |
-
?>
|
| 75 |
</form>
|
| 76 |
|
| 1 |
<?php
|
| 2 |
|
| 3 |
// wp_login_form([]);
|
| 4 |
+
|
| 5 |
+
$redirect_to_url = apply_filters(
|
| 6 |
+
'blocksy:account:modal:login:redirect_to',
|
| 7 |
+
$current_url
|
| 8 |
+
);
|
| 9 |
+
|
| 10 |
+
$forgot_password_inline = apply_filters(
|
| 11 |
+
'blocksy:account:modal:login:forgot-password-inline',
|
| 12 |
+
true
|
| 13 |
+
);
|
| 14 |
+
|
| 15 |
$forgot_pass_class = 'ct-forgot-password';
|
| 16 |
+
|
| 17 |
+
if (! $forgot_password_inline) {
|
| 18 |
+
$forgot_pass_class .= '-static';
|
| 19 |
}
|
| 20 |
+
|
| 21 |
?>
|
| 22 |
|
| 23 |
<form name="loginform" id="loginform" action="#" method="post">
|
| 24 |
+
<?php do_action('woocommerce_login_form_start'); ?>
|
| 25 |
+
<?php do_action('blocksy:account:modal:login:start'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
<p class="login-username">
|
| 28 |
+
<label for="user_login"><?php echo __('Username or Email Address', 'blocksy-companion') ?></label>
|
|
|
|
|
|
|
| 29 |
<input type="text" name="log" id="user_login" class="input" value="" size="20">
|
| 30 |
</p>
|
| 31 |
|
| 32 |
<p class="login-password">
|
| 33 |
+
<label for="user_pass"><?php echo __('Password', 'blocksy-companion') ?></label>
|
|
|
|
|
|
|
| 34 |
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20">
|
| 35 |
</p>
|
| 36 |
|
| 37 |
<p class="login-remember col-2">
|
| 38 |
<span>
|
| 39 |
<input name="rememberme" type="checkbox" id="rememberme" class="ct-checkbox" value="forever">
|
| 40 |
+
<label for="rememberme"><?php echo __('Remember Me', 'blocksy-companion') ?></label>
|
|
|
|
|
|
|
| 41 |
</span>
|
| 42 |
|
| 43 |
+
<a href="<?php echo wp_lostpassword_url() ?>" class="<?php echo $forgot_pass_class ?>">
|
| 44 |
+
<?php echo __('Forgot Password?', 'blocksy-companion') ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
</a>
|
| 46 |
</p>
|
| 47 |
|
| 48 |
+
<?php
|
| 49 |
+
if (blc_fs()->can_use_premium_code()) {
|
| 50 |
+
if (class_exists('NextendSocialLogin')) {
|
| 51 |
+
\NextendSocialLogin::addLoginFormButtons();
|
| 52 |
+
}
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
do_action('login_form')
|
| 56 |
+
?>
|
| 57 |
|
| 58 |
<p class="login-submit">
|
| 59 |
<button name="wp-submit" class="ct-button">
|
| 60 |
+
<?php echo __('Log In', 'blocksy-companion') ?>
|
|
|
|
|
|
|
| 61 |
</button>
|
| 62 |
|
| 63 |
+
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to_url ?>">
|
|
|
|
|
|
|
| 64 |
</p>
|
| 65 |
|
| 66 |
+
<?php do_action('blocksy:account:modal:login:end'); ?>
|
| 67 |
+
<?php do_action('woocommerce_login_form_end'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
</form>
|
| 69 |
|
framework/features/header/modal/register.php
CHANGED
|
@@ -2,89 +2,72 @@
|
|
| 2 |
|
| 3 |
$has_username = true;
|
| 4 |
$has_password = false;
|
| 5 |
-
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
}
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
}
|
| 11 |
-
?>
|
| 12 |
|
| 13 |
-
<form name="registerform" id="registerform" action="#" method="post" novalidate="novalidate">
|
| 14 |
-
<?php
|
| 15 |
-
do_action( 'woocommerce_register_form_start' );
|
| 16 |
-
?>
|
| 17 |
-
<?php
|
| 18 |
-
do_action( 'blocksy:account:modal:register:start' );
|
| 19 |
?>
|
| 20 |
|
| 21 |
-
|
|
|
|
|
|
|
| 22 |
|
| 23 |
-
if (
|
| 24 |
-
?>
|
| 25 |
<p>
|
| 26 |
-
<label for="user_login_register"><?php
|
| 27 |
-
echo __( 'Username', 'blocksy-companion' ) ;
|
| 28 |
-
?></label>
|
| 29 |
<input type="text" name="user_login" id="user_login_register" class="input" value="" size="20" autocapitalize="off">
|
| 30 |
</p>
|
| 31 |
-
<?php
|
| 32 |
-
}
|
| 33 |
-
|
| 34 |
-
?>
|
| 35 |
|
| 36 |
<p>
|
| 37 |
-
<label for="user_email"><?php
|
| 38 |
-
echo __( 'Email', 'blocksy-companion' ) ;
|
| 39 |
-
?></label>
|
| 40 |
<input type="email" name="user_email" id="user_email" class="input" value="" size="25">
|
| 41 |
</p>
|
| 42 |
|
| 43 |
-
<?php
|
| 44 |
-
|
| 45 |
-
if ( $has_password ) {
|
| 46 |
-
?>
|
| 47 |
<p>
|
| 48 |
-
<label for="user_pass_register"><?php
|
| 49 |
-
echo __( 'Password', 'blocksy-companion' ) ;
|
| 50 |
-
?></label>
|
| 51 |
<input type="password" name="user_pass" id="user_pass_register" class="input" value="" size="20" autocapitalize="off" autocomplete="new-password">
|
| 52 |
</p>
|
| 53 |
-
<?php
|
| 54 |
-
}
|
| 55 |
|
| 56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
?>
|
| 61 |
|
| 62 |
<p id="reg_passmail">
|
| 63 |
-
<?php
|
| 64 |
-
echo __( 'Registration confirmation will be emailed to you', 'blocksy-companion' ) ;
|
| 65 |
-
?>
|
| 66 |
</p>
|
| 67 |
|
| 68 |
<p>
|
| 69 |
<button name="wp-submit" class="ct-button">
|
| 70 |
-
<?php
|
| 71 |
-
echo __( 'Register', 'blocksy-companion' ) ;
|
| 72 |
-
?>
|
| 73 |
</button>
|
| 74 |
|
| 75 |
-
<!-- <input type="hidden" name="redirect_to" value="<?php
|
| 76 |
-
echo blocksy_current_url() ;
|
| 77 |
-
?>"> -->
|
| 78 |
</p>
|
| 79 |
|
| 80 |
-
<?php
|
| 81 |
-
do_action(
|
| 82 |
-
?>
|
| 83 |
-
<?php
|
| 84 |
-
do_action( 'woocommerce_register_form_end' );
|
| 85 |
-
?>
|
| 86 |
-
<?php
|
| 87 |
-
wp_nonce_field( 'blocksy-register', 'blocksy-register-nonce' );
|
| 88 |
-
?>
|
| 89 |
</form>
|
| 90 |
|
| 2 |
|
| 3 |
$has_username = true;
|
| 4 |
$has_password = false;
|
| 5 |
+
|
| 6 |
+
if (
|
| 7 |
+
\Blocksy\Plugin::instance()->account_auth->has_woo_register_flow()
|
| 8 |
+
&&
|
| 9 |
+
'no' !== get_option('woocommerce_registration_generate_username')
|
| 10 |
+
) {
|
| 11 |
+
$has_username = false;
|
| 12 |
}
|
| 13 |
+
|
| 14 |
+
if (
|
| 15 |
+
\Blocksy\Plugin::instance()->account_auth->has_woo_register_flow()
|
| 16 |
+
&&
|
| 17 |
+
'no' === get_option('woocommerce_registration_generate_password')
|
| 18 |
+
) {
|
| 19 |
+
$has_password = true;
|
| 20 |
}
|
|
|
|
| 21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
?>
|
| 23 |
|
| 24 |
+
<form name="registerform" id="registerform" action="#" method="post" novalidate="novalidate">
|
| 25 |
+
<?php do_action('woocommerce_register_form_start') ?>
|
| 26 |
+
<?php do_action('blocksy:account:modal:register:start'); ?>
|
| 27 |
|
| 28 |
+
<?php if ($has_username) { ?>
|
|
|
|
| 29 |
<p>
|
| 30 |
+
<label for="user_login_register"><?php echo __('Username', 'blocksy-companion') ?></label>
|
|
|
|
|
|
|
| 31 |
<input type="text" name="user_login" id="user_login_register" class="input" value="" size="20" autocapitalize="off">
|
| 32 |
</p>
|
| 33 |
+
<?php } ?>
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
<p>
|
| 36 |
+
<label for="user_email"><?php echo __('Email', 'blocksy-companion') ?></label>
|
|
|
|
|
|
|
| 37 |
<input type="email" name="user_email" id="user_email" class="input" value="" size="25">
|
| 38 |
</p>
|
| 39 |
|
| 40 |
+
<?php if ($has_password) { ?>
|
|
|
|
|
|
|
|
|
|
| 41 |
<p>
|
| 42 |
+
<label for="user_pass_register"><?php echo __('Password', 'blocksy-companion') ?></label>
|
|
|
|
|
|
|
| 43 |
<input type="password" name="user_pass" id="user_pass_register" class="input" value="" size="20" autocapitalize="off" autocomplete="new-password">
|
| 44 |
</p>
|
| 45 |
+
<?php } ?>
|
|
|
|
| 46 |
|
| 47 |
+
<?php
|
| 48 |
+
if (blc_fs()->can_use_premium_code()) {
|
| 49 |
+
if (class_exists('NextendSocialLogin')) {
|
| 50 |
+
\NextendSocialLogin::addRegisterFormButtons();
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
|
| 54 |
+
do_action('register_form')
|
| 55 |
+
?>
|
|
|
|
| 56 |
|
| 57 |
<p id="reg_passmail">
|
| 58 |
+
<?php echo __('Registration confirmation will be emailed to you', 'blocksy-companion') ?>
|
|
|
|
|
|
|
| 59 |
</p>
|
| 60 |
|
| 61 |
<p>
|
| 62 |
<button name="wp-submit" class="ct-button">
|
| 63 |
+
<?php echo __('Register', 'blocksy-companion') ?>
|
|
|
|
|
|
|
| 64 |
</button>
|
| 65 |
|
| 66 |
+
<!-- <input type="hidden" name="redirect_to" value="<?php echo blocksy_current_url() ?>"> -->
|
|
|
|
|
|
|
| 67 |
</p>
|
| 68 |
|
| 69 |
+
<?php do_action('blocksy:account:modal:register:end'); ?>
|
| 70 |
+
<?php do_action('woocommerce_register_form_end') ?>
|
| 71 |
+
<?php wp_nonce_field('blocksy-register', 'blocksy-register-nonce'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
</form>
|
| 73 |
|
framework/theme-integration.php
CHANGED
|
@@ -393,7 +393,7 @@ class ThemeIntegration {
|
|
| 393 |
}
|
| 394 |
|
| 395 |
if (
|
| 396 |
-
blc_fs()->
|
| 397 |
&&
|
| 398 |
BLOCKSY_PATH . '/framework/premium/changelog.txt'
|
| 399 |
) {
|
| 393 |
}
|
| 394 |
|
| 395 |
if (
|
| 396 |
+
blc_fs()->can_use_premium_code()
|
| 397 |
&&
|
| 398 |
BLOCKSY_PATH . '/framework/premium/changelog.txt'
|
| 399 |
) {
|
plugin.php
CHANGED
|
@@ -2,143 +2,201 @@
|
|
| 2 |
|
| 3 |
namespace Blocksy;
|
| 4 |
|
| 5 |
-
class Plugin
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
private static $instance = null ;
|
| 15 |
-
/**
|
| 16 |
-
* Blocksy extensions manager.
|
| 17 |
-
*
|
| 18 |
-
* @var ExtensionsManager
|
| 19 |
-
*/
|
| 20 |
-
public $extensions = null ;
|
| 21 |
-
public $extensions_api = null ;
|
| 22 |
-
public $premium = null ;
|
| 23 |
-
public $dashboard = null ;
|
| 24 |
-
public $theme_integration = null ;
|
| 25 |
-
public $cli = null ;
|
| 26 |
-
public $cache_manager = null ;
|
| 27 |
-
// Features
|
| 28 |
-
public $feat_google_analytics = null ;
|
| 29 |
-
public $demo = null ;
|
| 30 |
-
public $dynamic_css = null ;
|
| 31 |
-
public $header = null ;
|
| 32 |
-
public $account_auth = null ;
|
| 33 |
-
private $is_blocksy = '__NOT_SET__' ;
|
| 34 |
-
private $desired_blocksy_version = '1.7.18' ;
|
| 35 |
-
/**
|
| 36 |
-
* Instance.
|
| 37 |
-
*
|
| 38 |
-
* Ensures only one instance of the plugin class is loaded or can be loaded.
|
| 39 |
-
*
|
| 40 |
-
* @static
|
| 41 |
-
*
|
| 42 |
-
* @return Plugin An instance of the class.
|
| 43 |
-
*/
|
| 44 |
-
public static function instance()
|
| 45 |
-
{
|
| 46 |
-
if ( is_null( self::$instance ) ) {
|
| 47 |
-
self::$instance = new self();
|
| 48 |
-
}
|
| 49 |
-
return self::$instance;
|
| 50 |
-
}
|
| 51 |
-
|
| 52 |
-
public function init()
|
| 53 |
-
{
|
| 54 |
-
if ( !$this->check_if_blocksy_is_activated() ) {
|
| 55 |
-
return;
|
| 56 |
-
}
|
| 57 |
-
add_action( 'widgets_init', [ 'BlocksyWidgetFactory', 'register_all_widgets' ] );
|
| 58 |
-
add_action( 'admin_enqueue_scripts', function () {
|
| 59 |
-
$locale_data_ct = blc_call_fn( [
|
| 60 |
-
'fn' => 'blocksy_get_jed_locale_data',
|
| 61 |
-
'default' => [],
|
| 62 |
-
], 'blocksy-companion' );
|
| 63 |
-
wp_add_inline_script( 'wp-i18n', 'wp.i18n.setLocaleData( ' . wp_json_encode( $locale_data_ct ) . ', "blocksy-companion" );' );
|
| 64 |
-
} );
|
| 65 |
-
$this->cache_manager = new CacheResetManager();
|
| 66 |
-
$this->extensions_api = new ExtensionsManagerApi();
|
| 67 |
-
$this->theme_integration = new ThemeIntegration();
|
| 68 |
-
$this->demo = new DemoInstall();
|
| 69 |
-
$this->dynamic_css = new DynamicCss();
|
| 70 |
-
$this->account_auth = new AccountAuth();
|
| 71 |
-
new CustomizerOptionsManager();
|
| 72 |
-
}
|
| 73 |
-
|
| 74 |
-
/**
|
| 75 |
-
* Init components that need early access to the system.
|
| 76 |
-
*
|
| 77 |
-
* @access private
|
| 78 |
-
*/
|
| 79 |
-
public function early_init()
|
| 80 |
-
{
|
| 81 |
-
if ( !$this->check_if_blocksy_is_activated() ) {
|
| 82 |
-
return;
|
| 83 |
-
}
|
| 84 |
-
$this->extensions = new ExtensionsManager();
|
| 85 |
-
$this->dashboard = new Dashboard();
|
| 86 |
-
$this->header = new HeaderAdditions();
|
| 87 |
-
$this->feat_google_analytics = new GoogleAnalytics();
|
| 88 |
-
new OpenGraphMetaData();
|
| 89 |
-
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
| 90 |
-
$this->cli = new Cli();
|
| 91 |
-
}
|
| 92 |
-
}
|
| 93 |
-
|
| 94 |
-
/**
|
| 95 |
-
* Register autoloader.
|
| 96 |
-
*
|
| 97 |
-
* Blocksy autoloader loads all the classes needed to run the plugin.
|
| 98 |
-
*
|
| 99 |
-
* @access private
|
| 100 |
-
*/
|
| 101 |
-
private function register_autoloader()
|
| 102 |
-
{
|
| 103 |
-
require BLOCKSY_PATH . '/framework/autoload.php';
|
| 104 |
-
Autoloader::run();
|
| 105 |
-
}
|
| 106 |
-
|
| 107 |
-
/**
|
| 108 |
-
* Plugin constructor.
|
| 109 |
-
*
|
| 110 |
-
* Initializing Blocksy plugin.
|
| 111 |
-
*
|
| 112 |
-
* @access private
|
| 113 |
-
*/
|
| 114 |
-
private function __construct()
|
| 115 |
-
{
|
| 116 |
-
require BLOCKSY_PATH . '/framework/helpers/blocksy-integration.php';
|
| 117 |
-
require BLOCKSY_PATH . '/framework/helpers/helpers.php';
|
| 118 |
-
$this->register_autoloader();
|
| 119 |
-
$this->early_init();
|
| 120 |
-
add_action( 'init', [ $this, 'init' ], 0 );
|
| 121 |
-
}
|
| 122 |
-
|
| 123 |
-
public function check_if_blocksy_is_activated( $forced = false )
|
| 124 |
-
{
|
| 125 |
-
if ( !$forced ) {
|
| 126 |
-
return true;
|
| 127 |
-
}
|
| 128 |
-
|
| 129 |
-
if ( $this->is_blocksy === '__NOT_SET__' ) {
|
| 130 |
-
$theme = wp_get_theme( get_template() );
|
| 131 |
-
$is_correct_theme = strpos( $theme->get( 'Name' ), 'Blocksy' ) !== false;
|
| 132 |
-
$is_correct_version = version_compare( $theme->get( 'Version' ), $this->desired_blocksy_version ) > -1;
|
| 133 |
-
$another_theme_in_preview = false;
|
| 134 |
-
if ( (isset( $_REQUEST['theme'] ) && strpos( strtolower( $_REQUEST['theme'] ), 'blocksy' ) === false || isset( $_REQUEST['customize_theme'] ) && strpos( strtolower( $_REQUEST['customize_theme'] ), 'blocksy' ) === false) && strpos( $_SERVER['REQUEST_URI'], 'customize' ) !== false ) {
|
| 135 |
-
$another_theme_in_preview = true;
|
| 136 |
-
}
|
| 137 |
-
$this->is_blocksy = $is_correct_theme && $is_correct_version && !$another_theme_in_preview;
|
| 138 |
-
}
|
| 139 |
-
|
| 140 |
-
return !!$this->is_blocksy;
|
| 141 |
-
}
|
| 142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
}
|
| 144 |
-
|
|
|
|
|
|
| 2 |
|
| 3 |
namespace Blocksy;
|
| 4 |
|
| 5 |
+
class Plugin {
|
| 6 |
+
/**
|
| 7 |
+
* Blocksy instance.
|
| 8 |
+
*
|
| 9 |
+
* Holds the blocksy plugin instance.
|
| 10 |
+
*
|
| 11 |
+
* @var Plugin
|
| 12 |
+
*/
|
| 13 |
+
private static $instance = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
+
/**
|
| 16 |
+
* Blocksy extensions manager.
|
| 17 |
+
*
|
| 18 |
+
* @var ExtensionsManager
|
| 19 |
+
*/
|
| 20 |
+
public $extensions = null;
|
| 21 |
+
public $extensions_api = null;
|
| 22 |
+
public $premium = null;
|
| 23 |
+
|
| 24 |
+
public $dashboard = null;
|
| 25 |
+
public $theme_integration = null;
|
| 26 |
+
|
| 27 |
+
public $cli = null;
|
| 28 |
+
public $cache_manager = null;
|
| 29 |
+
|
| 30 |
+
// Features
|
| 31 |
+
public $feat_google_analytics = null;
|
| 32 |
+
public $demo = null;
|
| 33 |
+
public $dynamic_css = null;
|
| 34 |
+
public $header = null;
|
| 35 |
+
public $account_auth = null;
|
| 36 |
+
|
| 37 |
+
private $is_blocksy = '__NOT_SET__';
|
| 38 |
+
private $desired_blocksy_version = '1.7.18';
|
| 39 |
+
|
| 40 |
+
/**
|
| 41 |
+
* Instance.
|
| 42 |
+
*
|
| 43 |
+
* Ensures only one instance of the plugin class is loaded or can be loaded.
|
| 44 |
+
*
|
| 45 |
+
* @static
|
| 46 |
+
*
|
| 47 |
+
* @return Plugin An instance of the class.
|
| 48 |
+
*/
|
| 49 |
+
public static function instance() {
|
| 50 |
+
if (is_null(self::$instance)) {
|
| 51 |
+
self::$instance = new self();
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
return self::$instance;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
public function init() {
|
| 58 |
+
if (! $this->check_if_blocksy_is_activated()) {
|
| 59 |
+
return;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
add_action('widgets_init', [
|
| 63 |
+
'BlocksyWidgetFactory',
|
| 64 |
+
'register_all_widgets',
|
| 65 |
+
]);
|
| 66 |
+
|
| 67 |
+
add_action('admin_enqueue_scripts', function () {
|
| 68 |
+
$locale_data_ct = blc_call_fn(
|
| 69 |
+
[
|
| 70 |
+
'fn' => 'blocksy_get_jed_locale_data',
|
| 71 |
+
'default' => []
|
| 72 |
+
],
|
| 73 |
+
'blocksy-companion'
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
wp_add_inline_script(
|
| 77 |
+
'wp-i18n',
|
| 78 |
+
'wp.i18n.setLocaleData( ' . wp_json_encode($locale_data_ct) . ', "blocksy-companion" );'
|
| 79 |
+
);
|
| 80 |
+
});
|
| 81 |
+
|
| 82 |
+
$this->cache_manager = new CacheResetManager();
|
| 83 |
+
|
| 84 |
+
$this->extensions_api = new ExtensionsManagerApi();
|
| 85 |
+
$this->theme_integration = new ThemeIntegration();
|
| 86 |
+
$this->demo = new DemoInstall();
|
| 87 |
+
$this->dynamic_css = new DynamicCss();
|
| 88 |
+
|
| 89 |
+
$this->account_auth = new AccountAuth();
|
| 90 |
+
|
| 91 |
+
new CustomizerOptionsManager();
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
/**
|
| 95 |
+
* Init components that need early access to the system.
|
| 96 |
+
*
|
| 97 |
+
* @access private
|
| 98 |
+
*/
|
| 99 |
+
public function early_init() {
|
| 100 |
+
if (! $this->check_if_blocksy_is_activated()) {
|
| 101 |
+
return;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
if (blc_fs()->can_use_premium_code()) {
|
| 105 |
+
$this->premium = new Premium();
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
$this->extensions = new ExtensionsManager();
|
| 109 |
+
|
| 110 |
+
$this->dashboard = new Dashboard();
|
| 111 |
+
$this->header = new HeaderAdditions();
|
| 112 |
+
|
| 113 |
+
$this->feat_google_analytics = new GoogleAnalytics();
|
| 114 |
+
new OpenGraphMetaData();
|
| 115 |
+
|
| 116 |
+
if (defined('WP_CLI') && WP_CLI) {
|
| 117 |
+
$this->cli = new Cli();
|
| 118 |
+
}
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
/**
|
| 122 |
+
* Register autoloader.
|
| 123 |
+
*
|
| 124 |
+
* Blocksy autoloader loads all the classes needed to run the plugin.
|
| 125 |
+
*
|
| 126 |
+
* @access private
|
| 127 |
+
*/
|
| 128 |
+
private function register_autoloader() {
|
| 129 |
+
require BLOCKSY_PATH . '/framework/autoload.php';
|
| 130 |
+
|
| 131 |
+
Autoloader::run();
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
/**
|
| 135 |
+
* Plugin constructor.
|
| 136 |
+
*
|
| 137 |
+
* Initializing Blocksy plugin.
|
| 138 |
+
*
|
| 139 |
+
* @access private
|
| 140 |
+
*/
|
| 141 |
+
private function __construct() {
|
| 142 |
+
require BLOCKSY_PATH . '/framework/helpers/blocksy-integration.php';
|
| 143 |
+
require BLOCKSY_PATH . '/framework/helpers/helpers.php';
|
| 144 |
+
|
| 145 |
+
$this->register_autoloader();
|
| 146 |
+
$this->early_init();
|
| 147 |
+
|
| 148 |
+
add_action('init', [$this, 'init'], 0);
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
public function check_if_blocksy_is_activated($forced = false) {
|
| 152 |
+
if (! $forced) {
|
| 153 |
+
return true;
|
| 154 |
+
}
|
| 155 |
+
|
| 156 |
+
if ($this->is_blocksy === '__NOT_SET__') {
|
| 157 |
+
$theme = wp_get_theme(get_template());
|
| 158 |
+
|
| 159 |
+
$is_correct_theme = strpos(
|
| 160 |
+
$theme->get('Name'), 'Blocksy'
|
| 161 |
+
) !== false;
|
| 162 |
+
|
| 163 |
+
$is_correct_version = version_compare(
|
| 164 |
+
$theme->get('Version'),
|
| 165 |
+
$this->desired_blocksy_version
|
| 166 |
+
) > -1;
|
| 167 |
+
|
| 168 |
+
$another_theme_in_preview = false;
|
| 169 |
+
|
| 170 |
+
if (
|
| 171 |
+
(
|
| 172 |
+
(
|
| 173 |
+
isset(
|
| 174 |
+
$_REQUEST['theme']
|
| 175 |
+
) && strpos(strtolower($_REQUEST['theme']), 'blocksy') === false
|
| 176 |
+
||
|
| 177 |
+
isset(
|
| 178 |
+
$_REQUEST['customize_theme']
|
| 179 |
+
) && strpos(strtolower($_REQUEST['customize_theme']), 'blocksy') === false
|
| 180 |
+
)
|
| 181 |
+
&&
|
| 182 |
+
strpos($_SERVER['REQUEST_URI'], 'customize') !== false
|
| 183 |
+
)
|
| 184 |
+
) {
|
| 185 |
+
$another_theme_in_preview = true;
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
$this->is_blocksy = (
|
| 189 |
+
$is_correct_theme
|
| 190 |
+
&&
|
| 191 |
+
$is_correct_version
|
| 192 |
+
&&
|
| 193 |
+
!$another_theme_in_preview
|
| 194 |
+
);
|
| 195 |
+
}
|
| 196 |
+
|
| 197 |
+
return !!$this->is_blocksy;
|
| 198 |
+
}
|
| 199 |
}
|
| 200 |
+
|
| 201 |
+
Plugin::instance();
|
| 202 |
+
|
readme.txt
CHANGED
|
@@ -5,7 +5,7 @@ Requires PHP: 7.0
|
|
| 5 |
Tested up to: 5.9
|
| 6 |
License: GPLv2 or later
|
| 7 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 8 |
-
Stable tag: 1.8.
|
| 9 |
|
| 10 |
== Description ==
|
| 11 |
|
|
@@ -23,6 +23,9 @@ It runs and adds its enhancements only if the Blocksy theme is installed and act
|
|
| 23 |
2. Activate the plugin by going to **Plugins** page in WordPress admin and clicking on **Activate** link.
|
| 24 |
|
| 25 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
| 26 |
1.8.30: 2022-05-11
|
| 27 |
- Improvement: General fixes and improvements
|
| 28 |
|
| 5 |
Tested up to: 5.9
|
| 6 |
License: GPLv2 or later
|
| 7 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 8 |
+
Stable tag: 1.8.31
|
| 9 |
|
| 10 |
== Description ==
|
| 11 |
|
| 23 |
2. Activate the plugin by going to **Plugins** page in WordPress admin and clicking on **Activate** link.
|
| 24 |
|
| 25 |
== Changelog ==
|
| 26 |
+
1.8.31: 2022-05-11
|
| 27 |
+
- Improvement: General fixes and improvements
|
| 28 |
+
|
| 29 |
1.8.30: 2022-05-11
|
| 30 |
- Improvement: General fixes and improvements
|
| 31 |
|
static/bundle/account-lazy.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
static/bundle/dashboard.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
static/bundle/options.min.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/**
|
| 2 |
-
* - v1.8.
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
| 1 |
/**
|
| 2 |
+
* - v1.8.31
|
| 3 |
*
|
| 4 |
* Copyright (c) 2022
|
| 5 |
* Licensed GPLv2+
|
