Version Description
Release Date: 23 March 2021
- Improved: Cloudflare integration improvements.
- Improved: Hosting compatibility improvements.
- Improved: Settings panel improvements.
- Fixed: HTML encoding/decoding issues with the SimpleHtmlDom library.
- Fixed: Changed the placeholder image data URI when lazy loading is active (used to show a broken image icon).
- Fixed: Kinsta compatibility improvements caused some PHP warnings - not anymore.
Download this release
Release Info
Developer | optimocha |
Plugin | Speed Booster Pack |
Version | 4.1.3 |
Comparing to | |
See all releases |
Code changes from version 4.1.2 to 4.1.3
- README.txt +4 -3
- admin/class-speed-booster-pack-admin.php +309 -82
- admin/js/speed-booster-pack-admin.js +4 -33
- templates/php/cache/advanced-cache.php → advanced-cache.php +38 -10
- includes/class-speed-booster-pack.php +0 -4
- includes/classes/class-sbp-advanced-cache-generator.php +0 -74
- includes/classes/class-sbp-cache.php +20 -17
- includes/classes/class-sbp-critical-css.php +1 -0
- includes/classes/class-sbp-newsletter.php +0 -79
- includes/classes/class-sbp-wp-dashboard.php +0 -166
- includes/sbp-helpers.php +16 -120
- speed-booster-pack.php +2 -2
- templates/php/wp-config/pagespeed_tricker.php +0 -8
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: speed, pagespeed, optimization, core web vitals, cache
|
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 5.6
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.1.
|
9 |
License: GPLv3 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
@@ -104,15 +104,16 @@ All the time! We're always looking for new ways to get this plugin to a better s
|
|
104 |
|
105 |
== Changelog ==
|
106 |
|
107 |
-
= 4.1.
|
108 |
|
109 |
-
*Release Date:
|
110 |
|
111 |
* **Improved**: Cloudflare integration improvements.
|
112 |
* **Improved**: Hosting compatibility improvements.
|
113 |
* **Improved**: Settings panel improvements.
|
114 |
* **Fixed**: HTML encoding/decoding issues with the SimpleHtmlDom library.
|
115 |
* **Fixed**: Changed the placeholder image data URI when lazy loading is active (used to show a broken image icon).
|
|
|
116 |
|
117 |
= 4.1.1 =
|
118 |
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 5.6
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.1.3
|
9 |
License: GPLv3 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
104 |
|
105 |
== Changelog ==
|
106 |
|
107 |
+
= 4.1.3 =
|
108 |
|
109 |
+
*Release Date: 23 March 2021*
|
110 |
|
111 |
* **Improved**: Cloudflare integration improvements.
|
112 |
* **Improved**: Hosting compatibility improvements.
|
113 |
* **Improved**: Settings panel improvements.
|
114 |
* **Fixed**: HTML encoding/decoding issues with the SimpleHtmlDom library.
|
115 |
* **Fixed**: Changed the placeholder image data URI when lazy loading is active (used to show a broken image icon).
|
116 |
+
* **Fixed**: Kinsta compatibility improvements caused some PHP warnings - not anymore.
|
117 |
|
118 |
= 4.1.1 =
|
119 |
|
admin/class-speed-booster-pack-admin.php
CHANGED
@@ -11,10 +11,102 @@
|
|
11 |
*/
|
12 |
|
13 |
// If this file is called directly, abort.
|
|
|
|
|
|
|
|
|
14 |
if ( ! defined( 'WPINC' ) ) {
|
15 |
die;
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
/**
|
19 |
* The admin-specific functionality of the plugin.
|
20 |
*
|
@@ -72,6 +164,12 @@ class Speed_Booster_Pack_Admin {
|
|
72 |
|
73 |
add_action( 'csf_sbp_options_saved', '\SpeedBooster\SBP_WP_Config_Injector::inject_wp_config' );
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
$this->create_settings_page();
|
76 |
|
77 |
add_action( 'admin_enqueue_scripts', 'add_thickbox' );
|
@@ -83,7 +181,9 @@ class Speed_Booster_Pack_Admin {
|
|
83 |
* @since 4.0.0
|
84 |
*/
|
85 |
public function enqueue_styles() {
|
|
|
86 |
wp_enqueue_style( $this->plugin_name, SBP_URL . 'admin/css/speed-booster-pack-admin.css', array(), $this->version, 'all' );
|
|
|
87 |
}
|
88 |
|
89 |
/**
|
@@ -97,6 +197,7 @@ class Speed_Booster_Pack_Admin {
|
|
97 |
|
98 |
public function load_dependencies() {
|
99 |
require_once SBP_LIB_PATH . 'codestar-framework/codestar-framework.php';
|
|
|
100 |
}
|
101 |
|
102 |
public function create_settings_page() {
|
@@ -329,46 +430,46 @@ class Speed_Booster_Pack_Admin {
|
|
329 |
'desc' => __( 'You can find your zone ID in the Overview tab on your Cloudflare panel.', 'speed-booster-pack' ),
|
330 |
],
|
331 |
[
|
332 |
-
'title'
|
333 |
-
'id'
|
334 |
-
'class'
|
335 |
-
'type'
|
336 |
-
'dependency' => ['cloudflare_enable', '==', '1', '', 'visible'],
|
337 |
],
|
338 |
[
|
339 |
-
'title'
|
340 |
-
'id'
|
341 |
-
'class'
|
342 |
-
'type'
|
343 |
-
'dependency' => ['cloudflare_enable', '==', '1', '', 'visible'],
|
344 |
],
|
345 |
[
|
346 |
-
'title'
|
347 |
-
'id'
|
348 |
-
'class'
|
349 |
-
'type'
|
350 |
-
'dependency' => ['cloudflare_enable', '==', '1', '', 'visible'],
|
351 |
],
|
352 |
[
|
353 |
-
'title'
|
354 |
-
'id'
|
355 |
-
'class'
|
356 |
-
'type'
|
357 |
-
'dependency' => ['cloudflare_enable', '==', '1', '', 'visible'],
|
358 |
],
|
359 |
[
|
360 |
-
'title'
|
361 |
-
'id'
|
362 |
-
'class'
|
363 |
-
'type'
|
364 |
-
'dependency' => ['cloudflare_enable', '==', '1', '', 'visible'],
|
365 |
],
|
366 |
[
|
367 |
-
'title'
|
368 |
-
'id'
|
369 |
-
'class'
|
370 |
-
'type'
|
371 |
-
'options'
|
372 |
0 => __( 'Respect Existing Headers', 'speed-booster-pack' ),
|
373 |
1800 => __( '30 minutes', 'speed-booster-pack' ),
|
374 |
3600 => __( '1 hour', 'speed-booster-pack' ),
|
@@ -393,7 +494,7 @@ class Speed_Booster_Pack_Admin {
|
|
393 |
16070400 => __( '6 months', 'speed-booster-pack' ),
|
394 |
31536000 => __( '1 year', 'speed-booster-pack' ),
|
395 |
],
|
396 |
-
'dependency' => ['cloudflare_enable', '==', '1', '', 'visible'],
|
397 |
],
|
398 |
[
|
399 |
'type' => 'content',
|
@@ -403,7 +504,7 @@ class Speed_Booster_Pack_Admin {
|
|
403 |
<span class="sbp-cloudflare-fetching">' . __( 'Fetching Cloudflare settings...', 'speed-booster-pack' ) . '</span>
|
404 |
</span>
|
405 |
<span class="sbp-cloudflare-info-text sbp-cloudflare-incorrect" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Your Cloudflare credentials are incorrect.', 'speed-booster-pack' ) . '</span>
|
406 |
-
<span class="sbp-cloudflare-info-text sbp-cloudflare-connection-issue" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Error occured while connecting Cloudflare.', 'speed-booster-pack' ) . '</span>
|
407 |
<span class="sbp-cloudflare-info-text sbp-cloudflare-correct" style="color:green; vertical-align: middle;"><i class="fa fa-check-circle"></i> ' . __( 'Your Cloudflare credentials are correct.', 'speed-booster-pack' ) . '</span>
|
408 |
<span class="sbp-cloudflare-info-text sbp-cloudflare-warning" style="color:orange; vertical-align: middle;"><i class="fa fa-exclamation-circle"></i> ' . __( 'Enter your Cloudflare credentials and save settings to see CloudFlare options.', 'speed-booster-pack' ) . '</span>
|
409 |
',
|
@@ -435,7 +536,7 @@ class Speed_Booster_Pack_Admin {
|
|
435 |
'title' => __( 'Connect to Sucuri', 'speed-booster-pack' ),
|
436 |
'id' => 'sucuri_enable',
|
437 |
'type' => 'switcher',
|
438 |
-
'desc'
|
439 |
],
|
440 |
[
|
441 |
'title' => __( 'Sucuri API key', 'speed-booster-pack' ),
|
@@ -540,11 +641,11 @@ class Speed_Booster_Pack_Admin {
|
|
540 |
'title' => 'is_front_page',
|
541 |
'fields' => [
|
542 |
[
|
543 |
-
'id'
|
544 |
-
'type'
|
545 |
// Z_TODO: Edit the following description.
|
546 |
-
'desc'
|
547 |
-
'settings'
|
548 |
],
|
549 |
],
|
550 |
],
|
@@ -552,10 +653,10 @@ class Speed_Booster_Pack_Admin {
|
|
552 |
'title' => 'is_home',
|
553 |
'fields' => [
|
554 |
[
|
555 |
-
'id'
|
556 |
-
'type'
|
557 |
-
'desc'
|
558 |
-
'settings'
|
559 |
],
|
560 |
],
|
561 |
],
|
@@ -563,10 +664,10 @@ class Speed_Booster_Pack_Admin {
|
|
563 |
'title' => 'is_single',
|
564 |
'fields' => [
|
565 |
[
|
566 |
-
'id'
|
567 |
-
'type'
|
568 |
-
'desc'
|
569 |
-
'settings'
|
570 |
],
|
571 |
],
|
572 |
],
|
@@ -574,10 +675,10 @@ class Speed_Booster_Pack_Admin {
|
|
574 |
'title' => 'is_page',
|
575 |
'fields' => [
|
576 |
[
|
577 |
-
'id'
|
578 |
-
'type'
|
579 |
-
'desc'
|
580 |
-
'settings'
|
581 |
],
|
582 |
],
|
583 |
],
|
@@ -585,10 +686,10 @@ class Speed_Booster_Pack_Admin {
|
|
585 |
'title' => 'is_category',
|
586 |
'fields' => [
|
587 |
[
|
588 |
-
'id'
|
589 |
-
'type'
|
590 |
-
'desc'
|
591 |
-
'settings'
|
592 |
],
|
593 |
],
|
594 |
],
|
@@ -596,10 +697,10 @@ class Speed_Booster_Pack_Admin {
|
|
596 |
'title' => 'is_tag',
|
597 |
'fields' => [
|
598 |
[
|
599 |
-
'id'
|
600 |
-
'type'
|
601 |
-
'desc'
|
602 |
-
'settings'
|
603 |
],
|
604 |
],
|
605 |
],
|
@@ -607,10 +708,10 @@ class Speed_Booster_Pack_Admin {
|
|
607 |
'title' => 'is_archive',
|
608 |
'fields' => [
|
609 |
[
|
610 |
-
'id'
|
611 |
-
'type'
|
612 |
-
'desc'
|
613 |
-
'settings'
|
614 |
],
|
615 |
],
|
616 |
],
|
@@ -626,7 +727,7 @@ class Speed_Booster_Pack_Admin {
|
|
626 |
'dependency' => [ 'module_css|enable_criticalcss', '==|==', '1|1', '', 'visible' ],
|
627 |
],
|
628 |
[
|
629 |
-
'type'
|
630 |
'title' => __( 'Inline & Minify CSS', 'speed-booster-pack' ),
|
631 |
],
|
632 |
[
|
@@ -802,13 +903,13 @@ class Speed_Booster_Pack_Admin {
|
|
802 |
'sanitize' => false,
|
803 |
'fields' => [
|
804 |
[
|
805 |
-
'id'
|
806 |
-
'type'
|
807 |
-
'before'
|
808 |
-
'after'
|
809 |
/* translators: %s = script tag */
|
810 |
-
'desc'
|
811 |
-
'settings'
|
812 |
],
|
813 |
[
|
814 |
'title' => __( 'Placement', 'speed-booster-pack' ),
|
@@ -999,13 +1100,6 @@ class Speed_Booster_Pack_Admin {
|
|
999 |
'default' => '1',
|
1000 |
'dependency' => [ 'module_tweaks', '==', '1', '', 'visible' ],
|
1001 |
],
|
1002 |
-
[
|
1003 |
-
'title' => __( 'Dequeue Comment Reply Script', 'speed-booster-pack' ), // B_TODO: Translations
|
1004 |
-
'desc' => __( 'Disables comment reply script.', 'speed-booster-pack' ), // B_TODO: Translations
|
1005 |
-
'id' => 'dequeue_comment_reply_script',
|
1006 |
-
'type' => 'switcher',
|
1007 |
-
'dependency' => ['module_tweaks', '==', '1', '', 'visible'],
|
1008 |
-
],
|
1009 |
[
|
1010 |
/* translators: %s = <head> */
|
1011 |
'title' => sprintf( __( 'Declutter %s', 'speed-booster-pack' ), '<code><head></code>' ),
|
@@ -1073,18 +1167,19 @@ class Speed_Booster_Pack_Admin {
|
|
1073 |
'title' => __( 'Tools', 'speed-booster-pack' ),
|
1074 |
'id' => 'tools',
|
1075 |
'icon' => 'fa fa-tools',
|
1076 |
-
'fields' =>
|
1077 |
-
|
1078 |
'type' => 'subheading',
|
1079 |
/* translators: %s = Speed Booster Pack */
|
1080 |
'content' => sprintf( __( 'Backup %s Settings', 'speed-booster-pack' ), SBP_PLUGIN_NAME ),
|
1081 |
-
|
1082 |
-
|
1083 |
'id' => 'backup',
|
1084 |
'type' => 'backup',
|
1085 |
'title' => '',
|
1086 |
-
|
1087 |
-
|
|
|
1088 |
)
|
1089 |
);
|
1090 |
/* END Section: Tools */
|
@@ -1141,4 +1236,136 @@ class Speed_Booster_Pack_Admin {
|
|
1141 |
/* END Section: About */
|
1142 |
}
|
1143 |
}
|
1144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
*/
|
12 |
|
13 |
// If this file is called directly, abort.
|
14 |
+
use SpeedBooster\SBP_Cloudflare;
|
15 |
+
use SpeedBooster\SBP_Notice_Manager;
|
16 |
+
use SpeedBooster\SBP_Utils;
|
17 |
+
|
18 |
if ( ! defined( 'WPINC' ) ) {
|
19 |
die;
|
20 |
}
|
21 |
|
22 |
+
/**
|
23 |
+
* Returns absolute value of a number. Returns 1 if value is zero.
|
24 |
+
*
|
25 |
+
* @param $value
|
26 |
+
*
|
27 |
+
* @return float|int
|
28 |
+
* @since 4.0.0
|
29 |
+
*
|
30 |
+
*/
|
31 |
+
function sbp_posabs( $value ) {
|
32 |
+
if ( 0 == $value ) {
|
33 |
+
return 1;
|
34 |
+
}
|
35 |
+
|
36 |
+
return absint( $value );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Removes http(s?):// and trailing slash from the url
|
41 |
+
*
|
42 |
+
* @param $url
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
* @since 4.0.0
|
46 |
+
*
|
47 |
+
*/
|
48 |
+
function sbp_clear_cdn_url( $url ) {
|
49 |
+
return preg_replace( "#^[^:/.]*[:/]+#i", "", rtrim( $url, '/' ) );
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Removes http:// from the url
|
54 |
+
*
|
55 |
+
* @param $url
|
56 |
+
*
|
57 |
+
* @return string
|
58 |
+
* @since 4.0.0
|
59 |
+
*
|
60 |
+
*/
|
61 |
+
function sbp_clear_http( $url ) {
|
62 |
+
return str_replace( "http://", "//", $url );
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Trims and strips the tags from given value. Takes one dimensional array or string as argument. Returns the modified value.
|
67 |
+
*
|
68 |
+
* @param $value array|string
|
69 |
+
*
|
70 |
+
* @return array|string
|
71 |
+
*/
|
72 |
+
function sbp_sanitize_strip_tags( $value ) {
|
73 |
+
if ( is_array( $value ) ) {
|
74 |
+
$value = array_map(
|
75 |
+
function ( $item ) {
|
76 |
+
return trim( strip_tags( $item ) );
|
77 |
+
},
|
78 |
+
$value
|
79 |
+
);
|
80 |
+
} else {
|
81 |
+
$value = trim( strip_tags( $value ) );
|
82 |
+
}
|
83 |
+
|
84 |
+
return $value;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Sanitizes excluded URLs for caching
|
89 |
+
*
|
90 |
+
* @param $urls
|
91 |
+
*
|
92 |
+
* @return string
|
93 |
+
* @since 4.0.0
|
94 |
+
*
|
95 |
+
*/
|
96 |
+
function sbp_sanitize_caching_urls( $urls ) {
|
97 |
+
$urls = SBP_Utils::explode_lines( $urls );
|
98 |
+
foreach ( $urls as &$url ) {
|
99 |
+
$url = preg_replace( '#^https?://(.*?)#', '\1', $url );
|
100 |
+
$url = preg_replace( '#(.*?)\#(.*?)$#', '\1', $url );
|
101 |
+
$url = preg_replace( '#(.*?)\?(.*?)$#', '\1', $url );
|
102 |
+
$url = preg_replace( '#(.*?)\/$#', '\1', $url );
|
103 |
+
}
|
104 |
+
|
105 |
+
$urls = array_unique( $urls );
|
106 |
+
|
107 |
+
return implode( PHP_EOL, $urls );
|
108 |
+
}
|
109 |
+
|
110 |
/**
|
111 |
* The admin-specific functionality of the plugin.
|
112 |
*
|
164 |
|
165 |
add_action( 'csf_sbp_options_saved', '\SpeedBooster\SBP_WP_Config_Injector::inject_wp_config' );
|
166 |
|
167 |
+
add_action( 'admin_bar_menu', [ $this, 'add_admin_bar_links' ], 90 );
|
168 |
+
|
169 |
+
add_action( 'init', [ $this, 'set_notices' ] );
|
170 |
+
|
171 |
+
$this->initialize_announce4wp();
|
172 |
+
|
173 |
$this->create_settings_page();
|
174 |
|
175 |
add_action( 'admin_enqueue_scripts', 'add_thickbox' );
|
181 |
* @since 4.0.0
|
182 |
*/
|
183 |
public function enqueue_styles() {
|
184 |
+
|
185 |
wp_enqueue_style( $this->plugin_name, SBP_URL . 'admin/css/speed-booster-pack-admin.css', array(), $this->version, 'all' );
|
186 |
+
|
187 |
}
|
188 |
|
189 |
/**
|
197 |
|
198 |
public function load_dependencies() {
|
199 |
require_once SBP_LIB_PATH . 'codestar-framework/codestar-framework.php';
|
200 |
+
require_once SBP_LIB_PATH . 'announce4wp/announce4wp-client.php';
|
201 |
}
|
202 |
|
203 |
public function create_settings_page() {
|
430 |
'desc' => __( 'You can find your zone ID in the Overview tab on your Cloudflare panel.', 'speed-booster-pack' ),
|
431 |
],
|
432 |
[
|
433 |
+
'title' => __( 'Rocket Loader', 'speed-booster-pack' ),
|
434 |
+
'id' => 'cf_rocket_loader_enable',
|
435 |
+
'class' => 'with-preloader',
|
436 |
+
'type' => 'switcher',
|
437 |
+
'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
|
438 |
],
|
439 |
[
|
440 |
+
'title' => __( 'Development Mode', 'speed-booster-pack' ),
|
441 |
+
'id' => 'cf_dev_mode_enable',
|
442 |
+
'class' => 'with-preloader',
|
443 |
+
'type' => 'switcher',
|
444 |
+
'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
|
445 |
],
|
446 |
[
|
447 |
+
'title' => __( 'Minify CSS', 'speed-booster-pack' ),
|
448 |
+
'id' => 'cf_css_minify_enable',
|
449 |
+
'class' => 'with-preloader',
|
450 |
+
'type' => 'switcher',
|
451 |
+
'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
|
452 |
],
|
453 |
[
|
454 |
+
'title' => __( 'Minify HTML', 'speed-booster-pack' ),
|
455 |
+
'id' => 'cf_html_minify_enable',
|
456 |
+
'class' => 'with-preloader',
|
457 |
+
'type' => 'switcher',
|
458 |
+
'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
|
459 |
],
|
460 |
[
|
461 |
+
'title' => __( 'Minify JS', 'speed-booster-pack' ),
|
462 |
+
'id' => 'cf_js_minify_enable',
|
463 |
+
'class' => 'with-preloader',
|
464 |
+
'type' => 'switcher',
|
465 |
+
'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
|
466 |
],
|
467 |
[
|
468 |
+
'title' => __( 'Browser Cache TTL', 'speed-booster-pack' ),
|
469 |
+
'id' => 'cf_browser_cache_ttl',
|
470 |
+
'class' => 'with-preloader',
|
471 |
+
'type' => 'select',
|
472 |
+
'options' => [
|
473 |
0 => __( 'Respect Existing Headers', 'speed-booster-pack' ),
|
474 |
1800 => __( '30 minutes', 'speed-booster-pack' ),
|
475 |
3600 => __( '1 hour', 'speed-booster-pack' ),
|
494 |
16070400 => __( '6 months', 'speed-booster-pack' ),
|
495 |
31536000 => __( '1 year', 'speed-booster-pack' ),
|
496 |
],
|
497 |
+
'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
|
498 |
],
|
499 |
[
|
500 |
'type' => 'content',
|
504 |
<span class="sbp-cloudflare-fetching">' . __( 'Fetching Cloudflare settings...', 'speed-booster-pack' ) . '</span>
|
505 |
</span>
|
506 |
<span class="sbp-cloudflare-info-text sbp-cloudflare-incorrect" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Your Cloudflare credentials are incorrect.', 'speed-booster-pack' ) . '</span>
|
507 |
+
<span class="sbp-cloudflare-info-text sbp-cloudflare-connection-issue" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Error occured while connecting to Cloudflare.', 'speed-booster-pack' ) . '</span>
|
508 |
<span class="sbp-cloudflare-info-text sbp-cloudflare-correct" style="color:green; vertical-align: middle;"><i class="fa fa-check-circle"></i> ' . __( 'Your Cloudflare credentials are correct.', 'speed-booster-pack' ) . '</span>
|
509 |
<span class="sbp-cloudflare-info-text sbp-cloudflare-warning" style="color:orange; vertical-align: middle;"><i class="fa fa-exclamation-circle"></i> ' . __( 'Enter your Cloudflare credentials and save settings to see CloudFlare options.', 'speed-booster-pack' ) . '</span>
|
510 |
',
|
536 |
'title' => __( 'Connect to Sucuri', 'speed-booster-pack' ),
|
537 |
'id' => 'sucuri_enable',
|
538 |
'type' => 'switcher',
|
539 |
+
'desc' => sprintf( __( 'When you connect your Sucuri account, you\'ll be able to clear your Sucuri cache via your admin bar. Plus, every time %1$s Cache\'s cache is cleared, Sucuri\'s cache will be cleared as well.', 'speed-booster-pack' ), SBP_PLUGIN_NAME ),
|
540 |
],
|
541 |
[
|
542 |
'title' => __( 'Sucuri API key', 'speed-booster-pack' ),
|
641 |
'title' => 'is_front_page',
|
642 |
'fields' => [
|
643 |
[
|
644 |
+
'id' => 'is_front_page',
|
645 |
+
'type' => 'code_editor',
|
646 |
// Z_TODO: Edit the following description.
|
647 |
+
'desc' => sprintf( __( 'This CSS block will be injected into the front page of your website. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_front_page/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_front_page()</code>' ), '</a>' ),
|
648 |
+
'settings' => [ 'lineWrapping' => true ],
|
649 |
],
|
650 |
],
|
651 |
],
|
653 |
'title' => 'is_home',
|
654 |
'fields' => [
|
655 |
[
|
656 |
+
'id' => 'is_home',
|
657 |
+
'type' => 'code_editor',
|
658 |
+
'desc' => sprintf( __( 'This CSS block will be injected into the blog homepage of your website. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_home/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_home()</code>' ), '</a>' ),
|
659 |
+
'settings' => [ 'lineWrapping' => true ],
|
660 |
],
|
661 |
],
|
662 |
],
|
664 |
'title' => 'is_single',
|
665 |
'fields' => [
|
666 |
[
|
667 |
+
'id' => 'is_single',
|
668 |
+
'type' => 'code_editor',
|
669 |
+
'desc' => sprintf( __( 'This CSS block will be injected into all single posts. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_single/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_single()</code>' ), '</a>' ),
|
670 |
+
'settings' => [ 'lineWrapping' => true ],
|
671 |
],
|
672 |
],
|
673 |
],
|
675 |
'title' => 'is_page',
|
676 |
'fields' => [
|
677 |
[
|
678 |
+
'id' => 'is_page',
|
679 |
+
'type' => 'code_editor',
|
680 |
+
'desc' => sprintf( __( 'This CSS block will be injected into all static pages. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_page/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_page()</code>' ), '</a>' ),
|
681 |
+
'settings' => [ 'lineWrapping' => true ],
|
682 |
],
|
683 |
],
|
684 |
],
|
686 |
'title' => 'is_category',
|
687 |
'fields' => [
|
688 |
[
|
689 |
+
'id' => 'is_category',
|
690 |
+
'type' => 'code_editor',
|
691 |
+
'desc' => sprintf( __( 'This CSS block will be injected into all category archive pages. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_category/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_category()</code>' ), '</a>' ),
|
692 |
+
'settings' => [ 'lineWrapping' => true ],
|
693 |
],
|
694 |
],
|
695 |
],
|
697 |
'title' => 'is_tag',
|
698 |
'fields' => [
|
699 |
[
|
700 |
+
'id' => 'is_tag',
|
701 |
+
'type' => 'code_editor',
|
702 |
+
'desc' => sprintf( __( 'This CSS block will be injected into all tag archive pages. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_tag/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_tag()</code>' ), '</a>' ),
|
703 |
+
'settings' => [ 'lineWrapping' => true ],
|
704 |
],
|
705 |
],
|
706 |
],
|
708 |
'title' => 'is_archive',
|
709 |
'fields' => [
|
710 |
[
|
711 |
+
'id' => 'is_archive',
|
712 |
+
'type' => 'code_editor',
|
713 |
+
'desc' => sprintf( __( 'This CSS block will be injected into all archive pages. %1$s%2$s%3$s', 'speed-booster-pack' ), '<a href="https://developer.wordpress.org/reference/functions/is_archive/" rel="external noopener" target="_blank">', sprintf( __( 'Learn more about %s.', 'speed-booster-pack' ), '<code>is_archive()</code>' ), '</a>' ),
|
714 |
+
'settings' => [ 'lineWrapping' => true ],
|
715 |
],
|
716 |
],
|
717 |
],
|
727 |
'dependency' => [ 'module_css|enable_criticalcss', '==|==', '1|1', '', 'visible' ],
|
728 |
],
|
729 |
[
|
730 |
+
'type' => 'subheading',
|
731 |
'title' => __( 'Inline & Minify CSS', 'speed-booster-pack' ),
|
732 |
],
|
733 |
[
|
903 |
'sanitize' => false,
|
904 |
'fields' => [
|
905 |
[
|
906 |
+
'id' => 'custom_codes_item',
|
907 |
+
'type' => 'code_editor',
|
908 |
+
'before' => '<script>',
|
909 |
+
'after' => '</script>',
|
910 |
/* translators: %s = script tag */
|
911 |
+
'desc' => sprintf( __( 'Paste the inline JavaScript here. DON\'T include the %s tags or else you might break it!', 'speed-booster-pack' ), '<code><script></code>' ),
|
912 |
+
'settings' => [ 'lineWrapping' => true ],
|
913 |
],
|
914 |
[
|
915 |
'title' => __( 'Placement', 'speed-booster-pack' ),
|
1100 |
'default' => '1',
|
1101 |
'dependency' => [ 'module_tweaks', '==', '1', '', 'visible' ],
|
1102 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1103 |
[
|
1104 |
/* translators: %s = <head> */
|
1105 |
'title' => sprintf( __( 'Declutter %s', 'speed-booster-pack' ), '<code><head></code>' ),
|
1167 |
'title' => __( 'Tools', 'speed-booster-pack' ),
|
1168 |
'id' => 'tools',
|
1169 |
'icon' => 'fa fa-tools',
|
1170 |
+
'fields' => array(
|
1171 |
+
array(
|
1172 |
'type' => 'subheading',
|
1173 |
/* translators: %s = Speed Booster Pack */
|
1174 |
'content' => sprintf( __( 'Backup %s Settings', 'speed-booster-pack' ), SBP_PLUGIN_NAME ),
|
1175 |
+
),
|
1176 |
+
array(
|
1177 |
'id' => 'backup',
|
1178 |
'type' => 'backup',
|
1179 |
'title' => '',
|
1180 |
+
),
|
1181 |
+
|
1182 |
+
),
|
1183 |
)
|
1184 |
);
|
1185 |
/* END Section: Tools */
|
1236 |
/* END Section: About */
|
1237 |
}
|
1238 |
}
|
1239 |
+
|
1240 |
+
public function add_admin_bar_links( WP_Admin_Bar $admin_bar ) {
|
1241 |
+
|
1242 |
+
if ( current_user_can( 'manage_options' ) ) {
|
1243 |
+
|
1244 |
+
$admin_bar->add_menu( [
|
1245 |
+
'id' => 'speed_booster_pack',
|
1246 |
+
'title' => 'Speed Booster',
|
1247 |
+
'href' => admin_url( 'admin.php?page=sbp-settings' ),
|
1248 |
+
'meta' => [
|
1249 |
+
'target' => '_self',
|
1250 |
+
'html' => '<style>#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item{background:url("' . SBP_URL . 'admin/images/icon.svg") no-repeat 5px center;padding-left:25px;filter: brightness(0.7) sepia(1) hue-rotate(50deg) saturate(1.5);}#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item:hover{color:white;}</style>',
|
1251 |
+
],
|
1252 |
+
] );
|
1253 |
+
|
1254 |
+
if ( sbp_get_option( 'module_caching' ) && ! sbp_should_disable_feature( 'caching' ) ) {
|
1255 |
+
// Cache clear
|
1256 |
+
$clear_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_cache' ), 'sbp_clear_total_cache', 'sbp_nonce' );
|
1257 |
+
$sbp_admin_menu = [
|
1258 |
+
'id' => 'sbp_clear_cache',
|
1259 |
+
'parent' => 'speed_booster_pack',
|
1260 |
+
'title' => __( 'Clear Cache', 'speed-booster-pack' ),
|
1261 |
+
'href' => $clear_cache_url,
|
1262 |
+
];
|
1263 |
+
|
1264 |
+
$admin_bar->add_node( $sbp_admin_menu );
|
1265 |
+
|
1266 |
+
// Cache warmup
|
1267 |
+
$warmup_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_warmup_cache' ), 'sbp_warmup_cache', 'sbp_nonce' );
|
1268 |
+
$sbp_admin_menu = [
|
1269 |
+
'id' => 'sbp_warmup_cache',
|
1270 |
+
'parent' => 'speed_booster_pack',
|
1271 |
+
'title' => __( 'Warmup Cache', 'speed-booster-pack' ),
|
1272 |
+
'href' => $warmup_cache_url,
|
1273 |
+
];
|
1274 |
+
|
1275 |
+
$admin_bar->add_node( $sbp_admin_menu );
|
1276 |
+
}
|
1277 |
+
|
1278 |
+
if ( sbp_get_option( 'localize_tracking_scripts' ) ) {
|
1279 |
+
$clear_tracking_scripts_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_refresh_localized_analytics' ), 'sbp_refresh_localized_analytics', 'sbp_nonce' );
|
1280 |
+
$sbp_admin_menu = [
|
1281 |
+
'id' => 'sbp_clear_localized_scripts',
|
1282 |
+
'parent' => 'speed_booster_pack',
|
1283 |
+
'title' => __( 'Clear Localized Scripts', 'speed-booster-pack' ),
|
1284 |
+
'href' => $clear_tracking_scripts_url,
|
1285 |
+
];
|
1286 |
+
|
1287 |
+
$admin_bar->add_node( $sbp_admin_menu );
|
1288 |
+
}
|
1289 |
+
|
1290 |
+
if ( SBP_Cloudflare::is_cloudflare_active() ) {
|
1291 |
+
$clear_cloudflare_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_cloudflare_cache' ), 'sbp_clear_cloudflare_cache', 'sbp_nonce' );
|
1292 |
+
$sbp_admin_menu = [
|
1293 |
+
'id' => 'sbp_clear_cloudflare_cache',
|
1294 |
+
'parent' => 'speed_booster_pack',
|
1295 |
+
'title' => __( 'Clear Cloudflare Cache', 'speed-booster-pack' ),
|
1296 |
+
'href' => $clear_cloudflare_cache_url,
|
1297 |
+
];
|
1298 |
+
|
1299 |
+
$admin_bar->add_node( $sbp_admin_menu );
|
1300 |
+
}
|
1301 |
+
|
1302 |
+
if ( sbp_get_option( 'sucuri_enable' ) ) {
|
1303 |
+
$clear_sucuri_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_sucuri_cache' ), 'sbp_clear_sucuri_cache', 'sbp_nonce' );
|
1304 |
+
$sbp_admin_menu = [
|
1305 |
+
'id' => 'sbp_clear_sucuri_cache',
|
1306 |
+
'parent' => 'speed_booster_pack',
|
1307 |
+
'title' => __( 'Clear Sucuri Cache', 'speed-booster-pack' ),
|
1308 |
+
'href' => $clear_sucuri_cache_url,
|
1309 |
+
];
|
1310 |
+
|
1311 |
+
$admin_bar->add_node( $sbp_admin_menu );
|
1312 |
+
}
|
1313 |
+
}
|
1314 |
+
}
|
1315 |
+
|
1316 |
+
public function set_notices() {
|
1317 |
+
if ( SBP_Utils::is_plugin_active( 'autoptimize/autoptimize.php' ) && sbp_get_option( 'enable_criticalcss' ) && get_option( 'autoptimize_css_defer' ) && sbp_get_option( 'module_css' ) ) {
|
1318 |
+
SBP_Notice_Manager::display_notice( 'autoptimize_inline_defer_css', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . sprintf( __( 'It looks like Autoptimize is active on your site. Autoptimize\'s "defer and inline css" feature may cause conflict with %s.', 'speed-booster-pack' ), SBP_PLUGIN_NAME ) . '</p>', 'warning' );
|
1319 |
+
}
|
1320 |
+
|
1321 |
+
// Set Sucuri Notice
|
1322 |
+
if ( $transient_value = get_transient( 'sbp_clear_sucuri_cache' ) ) {
|
1323 |
+
$notice_message = $transient_value == '1' ? __( 'Sucuri cache cleared.', 'speed-booster-pack' ) : __( 'Error occured while clearing Sucuri cache. ', 'speed-booster-pack' ) . get_transient( 'sbp_sucuri_error' );
|
1324 |
+
$notice_type = $transient_value == '1' ? 'success' : 'error';
|
1325 |
+
SBP_Notice_Manager::display_notice( 'sbp_clear_sucuri_cache', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( $notice_message, 'speed-booster-pack' ) . '</p>', $notice_type, true, 'flash' );
|
1326 |
+
}
|
1327 |
+
|
1328 |
+
// Set Cloudflare Notice
|
1329 |
+
if ( $transient_value = get_transient( 'sbp_notice_cloudflare' ) ) {
|
1330 |
+
$notice_message = $transient_value == '1' ? __( 'Cloudflare cache cleared.', 'speed-booster-pack' ) : __( 'Error occured while clearing Cloudflare cache. Possible reason: Credentials invalid.', 'speed-booster-pack' );
|
1331 |
+
$notice_type = $transient_value == '1' ? 'success' : 'error';
|
1332 |
+
SBP_Notice_Manager::display_notice( 'sbp_notice_cloudflare', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( $notice_message, 'speed-booster-pack' ) . '</p>', $notice_type, true, 'flash' );
|
1333 |
+
}
|
1334 |
+
|
1335 |
+
// Set Cache Clear Notice
|
1336 |
+
if ( get_transient( 'sbp_notice_cache' ) ) {
|
1337 |
+
SBP_Notice_Manager::display_notice( 'sbp_notice_cache', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Cache cleared.', 'speed-booster-pack' ) . '</p>', 'success', true, 'flash' );
|
1338 |
+
}
|
1339 |
+
|
1340 |
+
// Set Localizer Cache Clear Notice
|
1341 |
+
if ( get_transient( 'sbp_notice_tracker_localizer' ) ) {
|
1342 |
+
SBP_Notice_Manager::display_notice( 'sbp_notice_tracker_localizer', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Localized scripts are cleared.', 'speed-booster-pack' ) . '</p>', 'success', true, 'flash' );
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
// Warmup Notice
|
1346 |
+
if ( get_transient( 'sbp_warmup_started' ) ) {
|
1347 |
+
SBP_Notice_Manager::display_notice( 'sbp_warmup_started', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Cache warmup started.', 'speed-booster-pack' ) . '</p>', 'success', true, 'recurrent' );
|
1348 |
+
}
|
1349 |
+
|
1350 |
+
// Warmup Notice
|
1351 |
+
if ( get_transient( 'sbp_warmup_complete' ) ) {
|
1352 |
+
SBP_Notice_Manager::display_notice( 'sbp_warmup_complete', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Static cache files created.', 'speed-booster-pack' ) . '</p>', 'info', true, 'recurrent' );
|
1353 |
+
}
|
1354 |
+
|
1355 |
+
// WP-Config Inject File Error
|
1356 |
+
if ( get_transient( 'sbp_wp_config_inject_error' ) ) {
|
1357 |
+
SBP_Notice_Manager::display_notice( 'sbp_wp_config_inject_error', '<p><strong>' . SBP_PLUGIN_NAME . '</strong> ' . __( 'Can not write plugins/speed-booster-pack/includes/wp-config-options/wp-config-inject.php file. Some ' . SBP_PLUGIN_NAME . ' features may not work. Please check your file permissions.', 'speed-booster-pack' ) . '</p>', 'error', true, 'recurrent' );
|
1358 |
+
}
|
1359 |
+
|
1360 |
+
// WP-Config File Error
|
1361 |
+
if ( get_transient( 'sbp_wp_config_error' ) ) {
|
1362 |
+
SBP_Notice_Manager::display_notice( 'sbp_wp_config_error', '<p><strong>' . SBP_PLUGIN_NAME . '</strong> ' . __( 'Can not write wp-config.php file. Some ' . SBP_PLUGIN_NAME . ' features may not work. Please check your file permissions.', 'speed-booster-pack' ) . '</p>', 'error', true, 'recurrent' );
|
1363 |
+
}
|
1364 |
+
}
|
1365 |
+
|
1366 |
+
private function initialize_announce4wp() {
|
1367 |
+
if ( sbp_get_option( 'enable_external_notices' ) ) {
|
1368 |
+
new Announce4WP_Client( 'speed-booster-pack.php', SBP_PLUGIN_NAME, "sbp", "https://speedboosterpack.com/wp-json/a4wp/v1/" . SBP_VERSION . "/news.json", "toplevel_page_sbp-settings" );
|
1369 |
+
}
|
1370 |
+
}
|
1371 |
+
}
|
admin/js/speed-booster-pack-admin.js
CHANGED
@@ -28,7 +28,7 @@
|
|
28 |
* Although scripts in the WordPress core, Plugins and Themes may be
|
29 |
* practising this, we should strive to set a better example in our own work.
|
30 |
*/
|
31 |
-
$(window).on('load', function
|
32 |
$('span .sbp-cloudflare-test').attr('disabled', 'disabled').css('opacity', '0.6');
|
33 |
});
|
34 |
|
@@ -155,15 +155,12 @@
|
|
155 |
} else if (response.status === 'empty_info') {
|
156 |
$('.sbp-cloudflare-warning').show();
|
157 |
} else {
|
158 |
-
|
159 |
-
|
160 |
-
} else {
|
161 |
-
$('.sbp-cloudflare-incorrect').show();
|
162 |
-
}
|
163 |
$('.with-preloader::before, .with-preloader::after').remove();
|
164 |
}
|
165 |
},
|
166 |
-
complete: function
|
167 |
$('.sbp-cloudflare-test .sbp-cloudflare-spinner').hide();
|
168 |
$('.sbp-cloudflare-test').removeAttr('disabled').css('opacity', 1);
|
169 |
$('.sbp-cloudflare-fetching').remove();
|
@@ -193,30 +190,4 @@
|
|
193 |
|
194 |
});
|
195 |
|
196 |
-
$(document).on('submit', "#sbp-subscribe-newsletter-form", function (e) {
|
197 |
-
e.preventDefault();
|
198 |
-
var $form = $("#subscribe-newsletter-form");
|
199 |
-
var name = $form.find('input[name="first_name"]').val();
|
200 |
-
var email = $form.find('input[name="email"]').val();
|
201 |
-
var gdpr = $form.find('input[name="gdpr"]').val();
|
202 |
-
$('#sbp-newsletter-subscribe-button').attr('disabled', 'disabled').css('text-shadow', 'none');
|
203 |
-
$.ajax({
|
204 |
-
type: 'POST',
|
205 |
-
url: 'https://sendfox.com/form/104ezx/3o64jv',
|
206 |
-
data: {first_name: name, email: email, gdpr: gdpr},
|
207 |
-
success: function (data, statusText) {
|
208 |
-
$('.sbp-newsletter-success').show();
|
209 |
-
$('.sbp-subscribe-content-wrapper').hide();
|
210 |
-
$('#sbp-subscribe-newsletter-form').parent().parent().find('> p').hide();
|
211 |
-
if (statusText === 'success') {
|
212 |
-
$.ajax({
|
213 |
-
type: 'POST',
|
214 |
-
url: ajaxurl,
|
215 |
-
data: {action: 'sbp_hide_newsletter_pointer'}
|
216 |
-
});
|
217 |
-
}
|
218 |
-
}
|
219 |
-
});
|
220 |
-
});
|
221 |
-
|
222 |
})(jQuery);
|
28 |
* Although scripts in the WordPress core, Plugins and Themes may be
|
29 |
* practising this, we should strive to set a better example in our own work.
|
30 |
*/
|
31 |
+
$(window).on('load', function() {
|
32 |
$('span .sbp-cloudflare-test').attr('disabled', 'disabled').css('opacity', '0.6');
|
33 |
});
|
34 |
|
155 |
} else if (response.status === 'empty_info') {
|
156 |
$('.sbp-cloudflare-warning').show();
|
157 |
} else {
|
158 |
+
|
159 |
+
$('.sbp-cloudflare-incorrect').show();
|
|
|
|
|
|
|
160 |
$('.with-preloader::before, .with-preloader::after').remove();
|
161 |
}
|
162 |
},
|
163 |
+
complete: function() {
|
164 |
$('.sbp-cloudflare-test .sbp-cloudflare-spinner').hide();
|
165 |
$('.sbp-cloudflare-test').removeAttr('disabled').css('opacity', 1);
|
166 |
$('.sbp-cloudflare-fetching').remove();
|
190 |
|
191 |
});
|
192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
})(jQuery);
|
templates/php/cache/advanced-cache.php → advanced-cache.php
RENAMED
@@ -16,13 +16,21 @@ if ( ! empty( $_COOKIE ) ) {
|
|
16 |
}
|
17 |
}
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
// Set default file name
|
20 |
$filename = 'index.html';
|
21 |
|
22 |
// Check for query strings
|
23 |
-
if ( ! empty( $_GET ) ) {
|
24 |
// Get included rules
|
25 |
-
$include_query_strings = sbp_explode_lines( '
|
26 |
|
27 |
$query_string_file_name = '';
|
28 |
// Put all query string parameters in order to generate same filename even if parameter order is different
|
@@ -48,15 +56,19 @@ if ( ! is_readable( $cache_file_path ) ) {
|
|
48 |
}
|
49 |
|
50 |
// Check if cache file is expired
|
51 |
-
$caching_expiry
|
52 |
-
|
53 |
-
|
|
|
|
|
54 |
}
|
55 |
|
56 |
-
|
57 |
-
$
|
58 |
-
|
59 |
-
|
|
|
|
|
60 |
}
|
61 |
|
62 |
// output cached file
|
@@ -89,9 +101,12 @@ function sbp_is_mobile() {
|
|
89 |
|
90 |
// generate cache path
|
91 |
function get_cache_file_path() {
|
|
|
92 |
$cache_dir = WP_CONTENT_DIR . '/cache/speed-booster';
|
93 |
|
94 |
-
'
|
|
|
|
|
95 |
|
96 |
$path = sprintf(
|
97 |
'%s%s%s%s',
|
@@ -114,6 +129,19 @@ function get_cache_file_path() {
|
|
114 |
return rtrim( $path, "/" ) . "/";
|
115 |
}
|
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
function sbp_explode_lines( $text ) {
|
118 |
if ( $text === '' ) {
|
119 |
return [];
|
16 |
}
|
17 |
}
|
18 |
|
19 |
+
// Get settings
|
20 |
+
$settings_file = WP_CONTENT_DIR . '/cache/speed-booster/settings.json';
|
21 |
+
$settings = sbp_parse_settings_file( $settings_file );
|
22 |
+
|
23 |
+
if ( ! $settings ) {
|
24 |
+
return false;
|
25 |
+
}
|
26 |
+
|
27 |
// Set default file name
|
28 |
$filename = 'index.html';
|
29 |
|
30 |
// Check for query strings
|
31 |
+
if ( ! empty( $_GET ) && isset( $settings['caching_include_query_strings'] ) ) {
|
32 |
// Get included rules
|
33 |
+
$include_query_strings = sbp_explode_lines( $settings['caching_include_query_strings'] );
|
34 |
|
35 |
$query_string_file_name = '';
|
36 |
// Put all query string parameters in order to generate same filename even if parameter order is different
|
56 |
}
|
57 |
|
58 |
// Check if cache file is expired
|
59 |
+
if ( isset( $settings['caching_expiry'] ) && ! empty( $settings['caching_expiry'] ) ) {
|
60 |
+
$caching_expiry = $settings['caching_expiry'] * HOUR_IN_SECONDS;
|
61 |
+
if ( ( filemtime( $cache_file_path ) + $caching_expiry ) < time() ) {
|
62 |
+
return false;
|
63 |
+
}
|
64 |
}
|
65 |
|
66 |
+
if ( isset( $settings['caching_exclude_urls'] ) ) {
|
67 |
+
$exclude_urls = sbp_explode_lines( $settings['caching_exclude_urls'] );
|
68 |
+
$current_url = rtrim( $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], '/' );
|
69 |
+
if ( count( $exclude_urls ) > 0 && in_array( $current_url, $exclude_urls ) ) {
|
70 |
+
return false;
|
71 |
+
}
|
72 |
}
|
73 |
|
74 |
// output cached file
|
101 |
|
102 |
// generate cache path
|
103 |
function get_cache_file_path() {
|
104 |
+
global $settings;
|
105 |
$cache_dir = WP_CONTENT_DIR . '/cache/speed-booster';
|
106 |
|
107 |
+
if ( sbp_is_mobile() && isset( $settings['caching_separate_mobile'] ) && $settings['caching_separate_mobile'] ) {
|
108 |
+
$cache_dir = WP_CONTENT_DIR . '/cache/speed-booster/mobile';
|
109 |
+
}
|
110 |
|
111 |
$path = sprintf(
|
112 |
'%s%s%s%s',
|
129 |
return rtrim( $path, "/" ) . "/";
|
130 |
}
|
131 |
|
132 |
+
// read settings file
|
133 |
+
function sbp_parse_settings_file( $settings_file ) {
|
134 |
+
if ( ! file_exists( $settings_file ) ) {
|
135 |
+
return false;
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( ! $settings = json_decode( file_get_contents( $settings_file ), true ) ) {
|
139 |
+
return false;
|
140 |
+
}
|
141 |
+
|
142 |
+
return $settings;
|
143 |
+
}
|
144 |
+
|
145 |
function sbp_explode_lines( $text ) {
|
146 |
if ( $text === '' ) {
|
147 |
return [];
|
includes/class-speed-booster-pack.php
CHANGED
@@ -24,14 +24,12 @@ use SpeedBooster\SBP_Compatibility_Checker;
|
|
24 |
use SpeedBooster\SBP_Critical_CSS;
|
25 |
use SpeedBooster\SBP_CSS_Minifier;
|
26 |
use SpeedBooster\SBP_Custom_Code_Manager;
|
27 |
-
use SpeedBooster\SBP_WP_Dashboard;
|
28 |
use SpeedBooster\SBP_Font_Optimizer;
|
29 |
use SpeedBooster\SBP_HTML_Minifier;
|
30 |
use SpeedBooster\SBP_JS_Optimizer;
|
31 |
use SpeedBooster\SBP_Lazy_Loader;
|
32 |
use SpeedBooster\SBP_Localize_Tracker;
|
33 |
use SpeedBooster\SBP_Migrator;
|
34 |
-
use SpeedBooster\SBP_Newsletter;
|
35 |
use SpeedBooster\SBP_Notice_Manager;
|
36 |
use SpeedBooster\SBP_Preboost;
|
37 |
use SpeedBooster\SBP_Special;
|
@@ -155,8 +153,6 @@ class Speed_Booster_Pack {
|
|
155 |
if ( ! $this->should_plugin_run() ) {
|
156 |
return false;
|
157 |
}
|
158 |
-
new SBP_WP_Dashboard();
|
159 |
-
new SBP_Newsletter();
|
160 |
new SBP_Migrator();
|
161 |
new SBP_JS_Optimizer();
|
162 |
new SBP_Tweaks();
|
24 |
use SpeedBooster\SBP_Critical_CSS;
|
25 |
use SpeedBooster\SBP_CSS_Minifier;
|
26 |
use SpeedBooster\SBP_Custom_Code_Manager;
|
|
|
27 |
use SpeedBooster\SBP_Font_Optimizer;
|
28 |
use SpeedBooster\SBP_HTML_Minifier;
|
29 |
use SpeedBooster\SBP_JS_Optimizer;
|
30 |
use SpeedBooster\SBP_Lazy_Loader;
|
31 |
use SpeedBooster\SBP_Localize_Tracker;
|
32 |
use SpeedBooster\SBP_Migrator;
|
|
|
33 |
use SpeedBooster\SBP_Notice_Manager;
|
34 |
use SpeedBooster\SBP_Preboost;
|
35 |
use SpeedBooster\SBP_Special;
|
153 |
if ( ! $this->should_plugin_run() ) {
|
154 |
return false;
|
155 |
}
|
|
|
|
|
156 |
new SBP_Migrator();
|
157 |
new SBP_JS_Optimizer();
|
158 |
new SBP_Tweaks();
|
includes/classes/class-sbp-advanced-cache-generator.php
DELETED
@@ -1,74 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace SpeedBooster;
|
4 |
-
|
5 |
-
// If this file is called directly, abort.
|
6 |
-
if ( ! defined( 'WPINC' ) ) {
|
7 |
-
die;
|
8 |
-
}
|
9 |
-
|
10 |
-
class SBP_Advanced_Cache_Generator {
|
11 |
-
private static $options = [];
|
12 |
-
private static $advanced_cache_template = SBP_PATH . 'templates/php/cache/advanced-cache.php';
|
13 |
-
private static $placeholders = [
|
14 |
-
'\'__SEPARATE_MOBILE_CACHING__\';' => [
|
15 |
-
'option_name' => 'caching_separate_mobile',
|
16 |
-
'method_name' => 'separate_mobile_caching',
|
17 |
-
],
|
18 |
-
'\'{{__CACHING_QUERY_STRING_INCLUDES__}}\'' => [
|
19 |
-
'option_name' => 'caching_include_query_strings',
|
20 |
-
'method_name' => 'caching_query_string_includes',
|
21 |
-
],
|
22 |
-
'\'{{__CACHING_EXPIRY__}}\'' => [
|
23 |
-
'option_name' => 'caching_expiry',
|
24 |
-
'method_name' => 'caching_expiry',
|
25 |
-
],
|
26 |
-
'\'{{__CACHING_EXCLUDE_URLS__}}\'' => [
|
27 |
-
'option_name' => 'caching_exclude_urls',
|
28 |
-
'method_name' => 'caching_exclude_urls',
|
29 |
-
],
|
30 |
-
];
|
31 |
-
|
32 |
-
public static function generate_advanced_cache_file( $options = [] ) {
|
33 |
-
self::$options = $options;
|
34 |
-
$wp_filesystem = sbp_get_filesystem();
|
35 |
-
$file_content = $wp_filesystem->get_contents( self::$advanced_cache_template );
|
36 |
-
foreach ( self::$placeholders as $placeholder => $props ) {
|
37 |
-
$method_name = 'SpeedBooster\SBP_Advanced_Cache_Generator::' . $props['method_name'];
|
38 |
-
if ( ! method_exists( SBP_Advanced_Cache_Generator::class, $props['method_name'] ) ) {
|
39 |
-
continue;
|
40 |
-
}
|
41 |
-
$option_value = false;
|
42 |
-
if ( self::$options === [] ) {
|
43 |
-
$option_value = sbp_get_option( $props['option_name'] );
|
44 |
-
} else {
|
45 |
-
$option_value = isset( self::$options[ $props['option_name'] ] ) ? self::$options[ $props['option_name'] ] : '';
|
46 |
-
}
|
47 |
-
$replace_content = '';
|
48 |
-
if ( $option_value ) {
|
49 |
-
$replace_content = call_user_func( $method_name );
|
50 |
-
}
|
51 |
-
$file_content = str_replace( "$placeholder", $replace_content, $file_content );
|
52 |
-
}
|
53 |
-
|
54 |
-
return $file_content;
|
55 |
-
}
|
56 |
-
|
57 |
-
private static function separate_mobile_caching() {
|
58 |
-
return 'if ( sbp_is_mobile() ) {
|
59 |
-
$cache_dir = WP_CONTENT_DIR . \'/cache/speed-booster/mobile\';
|
60 |
-
}';
|
61 |
-
}
|
62 |
-
|
63 |
-
private static function caching_query_string_includes() {
|
64 |
-
return '\'' . self::$options['caching_include_query_strings'] . '\'';
|
65 |
-
}
|
66 |
-
|
67 |
-
private static function caching_exclude_urls() {
|
68 |
-
return '\'' . self::$options['caching_exclude_urls'] . '\'';
|
69 |
-
}
|
70 |
-
|
71 |
-
private static function caching_expiry() {
|
72 |
-
return self::$options['caching_expiry'];
|
73 |
-
}
|
74 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/classes/class-sbp-cache.php
CHANGED
@@ -2,8 +2,6 @@
|
|
2 |
|
3 |
namespace SpeedBooster;
|
4 |
|
5 |
-
use SpeedBooster\SBP_Advanced_Cache_Generator;
|
6 |
-
|
7 |
// If this file is called directly, abort.
|
8 |
if ( ! defined( 'WPINC' ) ) {
|
9 |
die;
|
@@ -289,23 +287,28 @@ class SBP_Cache extends SBP_Abstract_Module {
|
|
289 |
public static function options_saved_listener( $saved_data ) {
|
290 |
$advanced_cache_path = WP_CONTENT_DIR . '/advanced-cache.php';
|
291 |
|
292 |
-
if (
|
293 |
-
// Delete or recreate advanced-cache.php
|
294 |
-
if ( $saved_data['module_caching'] ) {
|
295 |
-
$advanced_cache_file_content = SBP_Advanced_Cache_Generator::generate_advanced_cache_file($saved_data);
|
296 |
-
SBP_Cache::set_wp_cache_constant( true );
|
297 |
|
298 |
-
|
299 |
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
}
|
310 |
}
|
311 |
}
|
2 |
|
3 |
namespace SpeedBooster;
|
4 |
|
|
|
|
|
5 |
// If this file is called directly, abort.
|
6 |
if ( ! defined( 'WPINC' ) ) {
|
7 |
die;
|
287 |
public static function options_saved_listener( $saved_data ) {
|
288 |
$advanced_cache_path = WP_CONTENT_DIR . '/advanced-cache.php';
|
289 |
|
290 |
+
if ( ! isset( $_SERVER['KINSTA_CACHE_ZONE'] ) && ( ! defined( 'IS_PRESSABLE' ) || ! IS_PRESSABLE ) ) {
|
|
|
|
|
|
|
|
|
291 |
|
292 |
+
if ( sbp_get_option( 'module_caching' ) !== $saved_data['module_caching'] ) {
|
293 |
|
294 |
+
// Delete or recreate advanced-cache.php
|
295 |
+
if ( $saved_data['module_caching'] ) {
|
296 |
+
$sbp_advanced_cache = SBP_PATH . '/advanced-cache.php';
|
297 |
+
|
298 |
+
SBP_Cache::set_wp_cache_constant( true );
|
299 |
+
|
300 |
+
file_put_contents( WP_CONTENT_DIR . '/advanced-cache.php', file_get_contents( $sbp_advanced_cache ) );
|
301 |
+
|
302 |
+
self::create_settings_json( $saved_data );
|
303 |
+
} else {
|
304 |
+
SBP_Cache::set_wp_cache_constant( false );
|
305 |
+
if ( file_exists( $advanced_cache_path ) ) {
|
306 |
+
if ( ! unlink( $advanced_cache_path ) ) {
|
307 |
+
return wp_send_json_error( [
|
308 |
+
'notice' => esc_html__( 'advanced-cache.php can not be removed. Please remove it manually.', 'speed-booster-pack' ),
|
309 |
+
'errors' => []
|
310 |
+
] );
|
311 |
+
}
|
312 |
}
|
313 |
}
|
314 |
}
|
includes/classes/class-sbp-critical-css.php
CHANGED
@@ -23,6 +23,7 @@ class SBP_Critical_CSS extends SBP_Abstract_Module {
|
|
23 |
return $html;
|
24 |
}
|
25 |
|
|
|
26 |
// Find Default Critical CSS Code if exists
|
27 |
$criticalcss_code = sbp_get_option( 'criticalcss_default' );
|
28 |
|
23 |
return $html;
|
24 |
}
|
25 |
|
26 |
+
|
27 |
// Find Default Critical CSS Code if exists
|
28 |
$criticalcss_code = sbp_get_option( 'criticalcss_default' );
|
29 |
|
includes/classes/class-sbp-newsletter.php
DELETED
@@ -1,79 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace SpeedBooster;
|
4 |
-
|
5 |
-
// Exit if accessed directly
|
6 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
7 |
-
exit;
|
8 |
-
}
|
9 |
-
|
10 |
-
class SBP_Newsletter {
|
11 |
-
public function __construct() {
|
12 |
-
// Only admins can view SpeedBoosterPack things.
|
13 |
-
if ( ! get_transient( 'sbp_hide_newsletter_pointer' ) ) {
|
14 |
-
add_action( 'admin_enqueue_scripts', [ $this, 'my_admin_enqueue_scripts' ] );
|
15 |
-
}
|
16 |
-
|
17 |
-
add_action( 'wp_ajax_sbp_hide_newsletter_pointer', [ $this, 'hide_newsletter_pointer' ] );
|
18 |
-
}
|
19 |
-
|
20 |
-
function my_admin_enqueue_scripts() {
|
21 |
-
if ( current_user_can( 'manage_options' ) ) {
|
22 |
-
wp_enqueue_style( 'wp-pointer' );
|
23 |
-
wp_enqueue_script( 'wp-pointer' );
|
24 |
-
add_action( 'admin_print_footer_scripts', [ $this, 'my_admin_print_footer_scripts' ] );
|
25 |
-
}
|
26 |
-
}
|
27 |
-
|
28 |
-
function my_admin_print_footer_scripts() {
|
29 |
-
$current_user = wp_get_current_user();
|
30 |
-
$pointer_content = sprintf( __( '<h3>%s</h3>', 'speed-booster-pack' ), SBP_PLUGIN_NAME );
|
31 |
-
$pointer_content .= sprintf( __( '<p>If you want updates from %s, enter your email and hit the subscribe button!</p>\'+', 'speed-booster-pack' ), SBP_PLUGIN_NAME );
|
32 |
-
$pointer_content .= '\'<div>\'+
|
33 |
-
\'<form method="POST" action="https://sendfox.com/form/104ezx/3o64jv" id="sbp-subscribe-newsletter-form">\'+
|
34 |
-
\'<div class="sbp-subscribe-content-wrapper">\'+
|
35 |
-
\'<div>\'+
|
36 |
-
\'<div class="mc-field-group" style=" margin-left: 15px; width: 195px; float: left;">\'+
|
37 |
-
\'<input type="text" name="first_name" class="form-control" placeholder="Name" hidden value="' . $current_user->display_name . '" style="display:none">\'+
|
38 |
-
\'<input type="text" value="' . $current_user->user_email . '" name="email" class="form-control" placeholder="Email*" style=" width: 180px; padding: 6px 5px;">\'+
|
39 |
-
\'<input type="hidden" name="ml-submit" value="1" />\'+
|
40 |
-
\'</div>\'+
|
41 |
-
\'<input type="submit" value="Subscribe" name="subscribe" id="sbp-newsletter-subscribe-button" class="button mc-newsletter-sent" style="background: #0085ba; border-color: #006799; padding: 0px 16px; text-shadow: 0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799; height: 40px; margin-top: 1px; color: #fff; box-shadow: 0 1px 0 #006799;">\'+
|
42 |
-
\'</div>\'+
|
43 |
-
\'<div style="padding: 20px;"><label><input type="checkbox" name="gdpr" value="1" required=""> <span>I agree to receive email updates and promotions.</span></label></div>\'+
|
44 |
-
\'</div>\'+
|
45 |
-
\'<div style="padding: 10px 20px; color: darkgreen; display: none;" class="sbp-newsletter-success">' . __( 'You have successfully subscribed to our newsletter.', 'speed-booster-pack' ) . '</div>\'+
|
46 |
-
\'</form>\'+
|
47 |
-
\'</div>';
|
48 |
-
?>
|
49 |
-
<script type="text/javascript">
|
50 |
-
//<![CDATA[
|
51 |
-
jQuery(document).ready(function ($) {
|
52 |
-
$('#toplevel_page_sbp-settings').pointer({
|
53 |
-
content: '<?php echo $pointer_content; ?>',
|
54 |
-
position: {
|
55 |
-
edge: 'left',
|
56 |
-
align: 'center',
|
57 |
-
},
|
58 |
-
close: function () {
|
59 |
-
$.post(ajaxurl, {
|
60 |
-
action: 'sbp_hide_newsletter_pointer'
|
61 |
-
});
|
62 |
-
}
|
63 |
-
}).pointer('open');
|
64 |
-
});
|
65 |
-
//]]>
|
66 |
-
</script>
|
67 |
-
<?php
|
68 |
-
}
|
69 |
-
|
70 |
-
public function hide_newsletter_pointer() {
|
71 |
-
if ( isset( $_POST['action'] ) && $_POST['action'] == 'sbp_hide_newsletter_pointer' && current_user_can( 'manage_options' ) ) {
|
72 |
-
set_transient( 'sbp_hide_newsletter_pointer', '1' );
|
73 |
-
echo json_encode( [ 'status' => 'success', 'message' => 'hidden' ] );
|
74 |
-
wp_die();
|
75 |
-
}
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/classes/class-sbp-wp-dashboard.php
DELETED
@@ -1,166 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace SpeedBooster;
|
4 |
-
|
5 |
-
use SpeedBooster\SBP_Notice_Manager;
|
6 |
-
|
7 |
-
// If this file is called directly, abort.
|
8 |
-
if ( ! defined( 'WPINC' ) ) {
|
9 |
-
die;
|
10 |
-
}
|
11 |
-
|
12 |
-
class SBP_WP_Dashboard {
|
13 |
-
public function __construct() {
|
14 |
-
add_action( 'admin_bar_menu', [ $this, 'add_admin_bar_links' ], 90 );
|
15 |
-
if ( is_admin() ) {
|
16 |
-
require_once SBP_LIB_PATH . 'announce4wp/announce4wp-client.php';
|
17 |
-
$this->set_notices();
|
18 |
-
$this->initialize_announce4wp();
|
19 |
-
}
|
20 |
-
}
|
21 |
-
|
22 |
-
public function add_admin_bar_links( \WP_Admin_Bar $admin_bar ) {
|
23 |
-
if ( current_user_can( 'manage_options' ) ) {
|
24 |
-
|
25 |
-
$admin_bar->add_menu( [
|
26 |
-
'id' => 'speed_booster_pack',
|
27 |
-
'title' => 'Speed Booster',
|
28 |
-
'href' => admin_url( 'admin.php?page=sbp-settings' ),
|
29 |
-
'meta' => [
|
30 |
-
'target' => '_self',
|
31 |
-
'html' => '<style>#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item{background:url("' . SBP_URL . 'admin/images/icon.svg") no-repeat 5px center;padding-left:25px;filter: brightness(0.7) sepia(1) hue-rotate(50deg) saturate(1.5);}#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item:hover{color:white;}</style>',
|
32 |
-
],
|
33 |
-
] );
|
34 |
-
|
35 |
-
if ( sbp_get_option( 'module_caching' ) && ! sbp_should_disable_feature( 'caching' ) ) {
|
36 |
-
// Cache clear
|
37 |
-
$clear_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_cache' ), 'sbp_clear_total_cache', 'sbp_nonce' );
|
38 |
-
$sbp_admin_menu = [
|
39 |
-
'id' => 'sbp_clear_cache',
|
40 |
-
'parent' => 'speed_booster_pack',
|
41 |
-
'title' => __( 'Clear Cache', 'speed-booster-pack' ),
|
42 |
-
'href' => $clear_cache_url,
|
43 |
-
];
|
44 |
-
|
45 |
-
$admin_bar->add_node( $sbp_admin_menu );
|
46 |
-
|
47 |
-
// Cache warmup
|
48 |
-
$warmup_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_warmup_cache' ), 'sbp_warmup_cache', 'sbp_nonce' );
|
49 |
-
$sbp_admin_menu = [
|
50 |
-
'id' => 'sbp_warmup_cache',
|
51 |
-
'parent' => 'speed_booster_pack',
|
52 |
-
'title' => __( 'Warmup Cache', 'speed-booster-pack' ),
|
53 |
-
'href' => $warmup_cache_url,
|
54 |
-
];
|
55 |
-
|
56 |
-
$admin_bar->add_node( $sbp_admin_menu );
|
57 |
-
}
|
58 |
-
|
59 |
-
if ( sbp_get_option( 'localize_tracking_scripts' ) ) {
|
60 |
-
$clear_tracking_scripts_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_localized_analytics' ), 'sbp_clear_localized_analytics', 'sbp_nonce' );
|
61 |
-
$sbp_admin_menu = [
|
62 |
-
'id' => 'sbp_clear_localized_scripts',
|
63 |
-
'parent' => 'speed_booster_pack',
|
64 |
-
'title' => __( 'Clear Localized Scripts', 'speed-booster-pack' ),
|
65 |
-
'href' => $clear_tracking_scripts_url,
|
66 |
-
];
|
67 |
-
|
68 |
-
$admin_bar->add_node( $sbp_admin_menu );
|
69 |
-
}
|
70 |
-
|
71 |
-
if ( SBP_Cloudflare::is_cloudflare_active() ) {
|
72 |
-
$clear_cloudflare_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_cloudflare_cache' ), 'sbp_clear_cloudflare_cache', 'sbp_nonce' );
|
73 |
-
$sbp_admin_menu = [
|
74 |
-
'id' => 'sbp_clear_cloudflare_cache',
|
75 |
-
'parent' => 'speed_booster_pack',
|
76 |
-
'title' => __( 'Clear Cloudflare Cache', 'speed-booster-pack' ),
|
77 |
-
'href' => $clear_cloudflare_cache_url,
|
78 |
-
];
|
79 |
-
|
80 |
-
$admin_bar->add_node( $sbp_admin_menu );
|
81 |
-
}
|
82 |
-
|
83 |
-
if ( sbp_get_option( 'sucuri_enable' ) ) {
|
84 |
-
$clear_sucuri_cache_url = wp_nonce_url( add_query_arg( 'sbp_action', 'sbp_clear_sucuri_cache' ), 'sbp_clear_sucuri_cache', 'sbp_nonce' );
|
85 |
-
$sbp_admin_menu = [
|
86 |
-
'id' => 'sbp_clear_sucuri_cache',
|
87 |
-
'parent' => 'speed_booster_pack',
|
88 |
-
'title' => __( 'Clear Sucuri Cache', 'speed-booster-pack' ),
|
89 |
-
'href' => $clear_sucuri_cache_url,
|
90 |
-
];
|
91 |
-
|
92 |
-
$admin_bar->add_node( $sbp_admin_menu );
|
93 |
-
}
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
-
public function set_notices() {
|
98 |
-
// Set Sucuri Notice
|
99 |
-
if ( $transient_value = get_transient( 'sbp_clear_sucuri_cache' ) ) {
|
100 |
-
$notice_message = $transient_value == '1' ? __( 'Sucuri cache cleared.', 'speed-booster-pack' ) : __( 'Error occured while clearing Sucuri cache. ', 'speed-booster-pack' ) . get_transient( 'sbp_sucuri_error' );
|
101 |
-
$notice_type = $transient_value == '1' ? 'success' : 'error';
|
102 |
-
SBP_Notice_Manager::display_notice( 'sbp_clear_sucuri_cache', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( $notice_message, 'speed-booster-pack' ) . '</p>', $notice_type, true, 'flash' );
|
103 |
-
}
|
104 |
-
|
105 |
-
// Set Cloudflare Notice
|
106 |
-
if ( $transient_value = get_transient( 'sbp_notice_cloudflare' ) ) {
|
107 |
-
$notice_message = $transient_value == '1' ? __( 'Cloudflare cache cleared.', 'speed-booster-pack' ) : __( 'Error occured while clearing Cloudflare cache. Possible reason: Credentials invalid.', 'speed-booster-pack' );
|
108 |
-
$notice_type = $transient_value == '1' ? 'success' : 'error';
|
109 |
-
SBP_Notice_Manager::display_notice( 'sbp_notice_cloudflare', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( $notice_message, 'speed-booster-pack' ) . '</p>', $notice_type, true, 'flash' );
|
110 |
-
}
|
111 |
-
|
112 |
-
// Set Cache Clear Notice
|
113 |
-
if ( get_transient( 'sbp_notice_cache' ) ) {
|
114 |
-
SBP_Notice_Manager::display_notice( 'sbp_notice_cache', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Cache cleared.', 'speed-booster-pack' ) . '</p>', 'success', true, 'flash' );
|
115 |
-
}
|
116 |
-
|
117 |
-
// Set Localizer Cache Clear Notice
|
118 |
-
if ( get_transient( 'sbp_notice_tracker_localizer' ) ) {
|
119 |
-
SBP_Notice_Manager::display_notice( 'sbp_notice_tracker_localizer', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Localized scripts are cleared.', 'speed-booster-pack' ) . '</p>', 'success', true, 'flash' );
|
120 |
-
}
|
121 |
-
|
122 |
-
// Warmup Notice
|
123 |
-
if ( get_transient( 'sbp_warmup_started' ) ) {
|
124 |
-
// BEYNTODO: Add translator note
|
125 |
-
SBP_Notice_Manager::display_notice( 'sbp_warmup_started', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Cache warmup started.', 'speed-booster-pack' ) . '</p>', 'success', true, 'recurrent' );
|
126 |
-
}
|
127 |
-
|
128 |
-
// Warmup Notice
|
129 |
-
if ( get_transient( 'sbp_warmup_complete' ) ) {
|
130 |
-
// BEYNTODO: Add translator note
|
131 |
-
SBP_Notice_Manager::display_notice( 'sbp_warmup_complete', '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Static cache files created.', 'speed-booster-pack' ) . '</p>', 'success', true, 'recurrent' );
|
132 |
-
}
|
133 |
-
|
134 |
-
// WP-Config Inject File Error
|
135 |
-
if ( get_transient( 'sbp_wp_config_inject_error' ) ) {
|
136 |
-
SBP_Notice_Manager::display_notice( 'sbp_wp_config_inject_error', '<p><strong>' . SBP_PLUGIN_NAME . '</strong> ' . __( 'Can not write plugins/speed-booster-pack/includes/wp-config-options/wp-config-inject.php file. Some ' . SBP_PLUGIN_NAME . ' features may not work. Please check your file permissions.', 'speed-booster-pack' ) . '</p>', 'error', true, 'recurrent' );
|
137 |
-
}
|
138 |
-
|
139 |
-
// WP-Config File Error
|
140 |
-
if ( get_transient( 'sbp_wp_config_error' ) ) {
|
141 |
-
SBP_Notice_Manager::display_notice( 'sbp_wp_config_error', '<p><strong>' . SBP_PLUGIN_NAME . '</strong> ' . __( 'Can not write wp-config.php file. Some ' . SBP_PLUGIN_NAME . ' features may not work. Please check your file permissions.', 'speed-booster-pack' ) . '</p>', 'error', true, 'recurrent' );
|
142 |
-
}
|
143 |
-
|
144 |
-
// WP-Config File Error
|
145 |
-
if ( get_transient( 'sbp_warmup_errors' ) ) {
|
146 |
-
$list = '';
|
147 |
-
$errors = get_transient( 'sbp_warmup_errors' );
|
148 |
-
if ( is_array( $errors ) ) {
|
149 |
-
foreach ( $errors as $error ) {
|
150 |
-
$extras = [];
|
151 |
-
if ( isset( $error['options']['user-agent'] ) && $error['options']['user-agent'] === 'Mobile' ) {
|
152 |
-
$extras[] = '(Mobile)';
|
153 |
-
}
|
154 |
-
$list .= '<li><a href="' . $error['url'] . '" target="_blank">' . $error['url'] . ' ' . implode( ' ', $extras ) . '</a></li>';
|
155 |
-
}
|
156 |
-
SBP_Notice_Manager::display_notice( 'sbp_warmup_errors', '<p><strong>' . SBP_PLUGIN_NAME . '</strong> ' . __( 'Cache warmup completed but following pages may not be cached. Please check this pages are available. (Hover this notice to see all errors)', 'speed-booster-pack' ) . '</p><ul class="warmup-cache-error-list">' . $list . '</ul>', 'error', true, 'recurrent' );
|
157 |
-
}
|
158 |
-
}
|
159 |
-
}
|
160 |
-
|
161 |
-
private function initialize_announce4wp() {
|
162 |
-
if ( sbp_get_option( 'enable_external_notices' ) ) {
|
163 |
-
new \Announce4WP_Client( 'speed-booster-pack.php', SBP_PLUGIN_NAME, "sbp", "https://speedboosterpack.com/wp-json/a4wp/v1/" . SBP_VERSION . "/news.json", "toplevel_page_sbp-settings" );
|
164 |
-
}
|
165 |
-
}
|
166 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/sbp-helpers.php
CHANGED
@@ -1,11 +1,5 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
use SpeedBooster\SBP_Utils;
|
4 |
-
|
5 |
-
if ( ! defined( 'WPINC' ) ) {
|
6 |
-
die;
|
7 |
-
}
|
8 |
-
|
9 |
if ( ! function_exists( 'sbp_get_filesystem' ) ) {
|
10 |
function sbp_get_filesystem() {
|
11 |
global $wp_filesystem;
|
@@ -59,10 +53,10 @@ if ( ! function_exists( 'sbp_get_hosting_restrictions' ) ) {
|
|
59 |
];
|
60 |
}
|
61 |
|
62 |
-
if ( function_exists( 'is_wpe' ) || function_exists( 'is_wpe_snapshot' ) ) {
|
63 |
return [
|
64 |
'name' => 'WP Engine',
|
65 |
-
'disabled_features' => [
|
66 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'WP Engine', 'WP Engine' ),
|
67 |
];
|
68 |
}
|
@@ -70,42 +64,42 @@ if ( ! function_exists( 'sbp_get_hosting_restrictions' ) ) {
|
|
70 |
$hosting_provider_constants = [
|
71 |
'GD_SYSTEM_PLUGIN_DIR' => [
|
72 |
'name' => 'GoDaddy',
|
73 |
-
'disabled_features' => [
|
74 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'GoDaddy', 'GoDaddy' ),
|
75 |
],
|
76 |
'MM_BASE_DIR' => [
|
77 |
'name' => 'Bluehost',
|
78 |
-
'disabled_features' => [
|
79 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Bluehost', 'Bluehost' ),
|
80 |
],
|
81 |
'PAGELYBIN' => [
|
82 |
'name' => 'Pagely',
|
83 |
-
'disabled_features' => [
|
84 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Pagely', 'Pagely' ),
|
85 |
],
|
86 |
'KINSTAMU_VERSION' => [
|
87 |
'name' => 'Kinsta',
|
88 |
-
'disabled_features' => [
|
89 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Kinsta', 'Kinsta' ),
|
90 |
],
|
91 |
'FLYWHEEL_CONFIG_DIR' => [
|
92 |
'name' => 'Flywheel',
|
93 |
-
'disabled_features' => [
|
94 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Flywheel', 'Flywheel' ),
|
95 |
],
|
96 |
'IS_PRESSABLE' => [
|
97 |
'name' => 'Pressable',
|
98 |
-
'disabled_features' => [
|
99 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Pressable', 'Pressable' ),
|
100 |
],
|
101 |
'VIP_GO_ENV' => [
|
102 |
'name' => 'WordPress VIP',
|
103 |
-
'disabled_features' => [
|
104 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'WordPress VIP', 'WordPress VIP' ),
|
105 |
],
|
106 |
'KINSTA_CACHE_ZONE' => [
|
107 |
'name' => 'Kinsta',
|
108 |
-
'disabled_features' => [ 'caching'
|
109 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Kinsta', 'Kinsta' ),
|
110 |
],
|
111 |
];
|
@@ -116,10 +110,9 @@ if ( ! function_exists( 'sbp_get_hosting_restrictions' ) ) {
|
|
116 |
}
|
117 |
}
|
118 |
|
119 |
-
return [
|
120 |
-
|
121 |
-
|
122 |
-
'error_message' => ''
|
123 |
]; // Return this structure to avoid undefined index errors.
|
124 |
}
|
125 |
}
|
@@ -136,10 +129,9 @@ if ( ! function_exists( 'sbp_should_disable_feature' ) ) {
|
|
136 |
|
137 |
if ( ! get_option( 'permalink_structure' ) ) {
|
138 |
// BEYNTODO: Write text for error message.
|
139 |
-
return [
|
140 |
-
|
141 |
-
|
142 |
-
'error_message' => __( 'You should use Permalinks to enable caching module.', 'speed-booster-pack' )
|
143 |
];
|
144 |
}
|
145 |
|
@@ -169,100 +161,4 @@ if ( ! function_exists( 'sbp_get_filesystem' ) ) {
|
|
169 |
|
170 |
return $wp_filesystem;
|
171 |
}
|
172 |
-
}
|
173 |
-
|
174 |
-
if ( ! function_exists( 'sbp_posabs' ) ) {
|
175 |
-
/**
|
176 |
-
* Returns absolute value of a number. Returns 1 if value is zero.
|
177 |
-
*
|
178 |
-
* @param $value
|
179 |
-
*
|
180 |
-
* @return float|int
|
181 |
-
* @since 4.0.0
|
182 |
-
*
|
183 |
-
*/
|
184 |
-
function sbp_posabs( $value ) {
|
185 |
-
if ( 0 == $value ) {
|
186 |
-
return 1;
|
187 |
-
}
|
188 |
-
|
189 |
-
return absint( $value );
|
190 |
-
}
|
191 |
-
}
|
192 |
-
|
193 |
-
if ( ! function_exists( 'sbp_clear_cdn_url' ) ) {
|
194 |
-
/**
|
195 |
-
* Removes http(s?):// and trailing slash from the url
|
196 |
-
*
|
197 |
-
* @param $url
|
198 |
-
*
|
199 |
-
* @return string
|
200 |
-
* @since 4.0.0
|
201 |
-
*
|
202 |
-
*/
|
203 |
-
function sbp_clear_cdn_url( $url ) {
|
204 |
-
return preg_replace( "#^[^:/.]*[:/]+#i", "", rtrim( $url, '/' ) );
|
205 |
-
}
|
206 |
-
}
|
207 |
-
|
208 |
-
if ( ! function_exists( 'sbp_clear_http' ) ) {
|
209 |
-
/**
|
210 |
-
* Removes http:// from the url
|
211 |
-
*
|
212 |
-
* @param $url
|
213 |
-
*
|
214 |
-
* @return string
|
215 |
-
* @since 4.0.0
|
216 |
-
*
|
217 |
-
*/
|
218 |
-
function sbp_clear_http( $url ) {
|
219 |
-
return str_replace( "http://", "//", $url );
|
220 |
-
}
|
221 |
-
}
|
222 |
-
|
223 |
-
if ( ! function_exists( 'sbp_sanitize_strip_tags' ) ) {
|
224 |
-
/**
|
225 |
-
* Trims and strips the tags from given value. Takes one dimensional array or string as argument. Returns the modified value.
|
226 |
-
*
|
227 |
-
* @param $value array|string
|
228 |
-
*
|
229 |
-
* @return array|string
|
230 |
-
*/
|
231 |
-
function sbp_sanitize_strip_tags( $value ) {
|
232 |
-
if ( is_array( $value ) ) {
|
233 |
-
$value = array_map(
|
234 |
-
function ( $item ) {
|
235 |
-
return trim( strip_tags( $item ) );
|
236 |
-
},
|
237 |
-
$value
|
238 |
-
);
|
239 |
-
} else {
|
240 |
-
$value = trim( strip_tags( $value ) );
|
241 |
-
}
|
242 |
-
|
243 |
-
return $value;
|
244 |
-
}
|
245 |
-
}
|
246 |
-
|
247 |
-
if ( ! function_exists( 'sbp_sanitize_caching_urls' ) ) {
|
248 |
-
/**
|
249 |
-
* Sanitizes excluded URLs for caching
|
250 |
-
*
|
251 |
-
* @param $urls
|
252 |
-
*
|
253 |
-
* @return string
|
254 |
-
* @since 4.0.0
|
255 |
-
*
|
256 |
-
*/
|
257 |
-
function sbp_sanitize_caching_urls( $urls ) {
|
258 |
-
$urls = SBP_Utils::explode_lines( $urls );
|
259 |
-
foreach ( $urls as &$url ) {
|
260 |
-
$url = ltrim( $url, 'https://' );
|
261 |
-
$url = ltrim( $url, 'http://' );
|
262 |
-
$url = ltrim( $url, '//' );
|
263 |
-
$url = rtrim( $url, '/' );
|
264 |
-
}
|
265 |
-
|
266 |
-
return implode( PHP_EOL, $urls );
|
267 |
-
}
|
268 |
}
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
if ( ! function_exists( 'sbp_get_filesystem' ) ) {
|
4 |
function sbp_get_filesystem() {
|
5 |
global $wp_filesystem;
|
53 |
];
|
54 |
}
|
55 |
|
56 |
+
if ( function_exists( 'is_wpe' ) || function_exists( 'is_wpe_snapshot' ) ) { // Z_TODO: Check here
|
57 |
return [
|
58 |
'name' => 'WP Engine',
|
59 |
+
'disabled_features' => [],
|
60 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'WP Engine', 'WP Engine' ),
|
61 |
];
|
62 |
}
|
64 |
$hosting_provider_constants = [
|
65 |
'GD_SYSTEM_PLUGIN_DIR' => [
|
66 |
'name' => 'GoDaddy',
|
67 |
+
'disabled_features' => [],
|
68 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'GoDaddy', 'GoDaddy' ),
|
69 |
],
|
70 |
'MM_BASE_DIR' => [
|
71 |
'name' => 'Bluehost',
|
72 |
+
'disabled_features' => [],
|
73 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Bluehost', 'Bluehost' ),
|
74 |
],
|
75 |
'PAGELYBIN' => [
|
76 |
'name' => 'Pagely',
|
77 |
+
'disabled_features' => [],
|
78 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Pagely', 'Pagely' ),
|
79 |
],
|
80 |
'KINSTAMU_VERSION' => [
|
81 |
'name' => 'Kinsta',
|
82 |
+
'disabled_features' => [],
|
83 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Kinsta', 'Kinsta' ),
|
84 |
],
|
85 |
'FLYWHEEL_CONFIG_DIR' => [
|
86 |
'name' => 'Flywheel',
|
87 |
+
'disabled_features' => [],
|
88 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Flywheel', 'Flywheel' ),
|
89 |
],
|
90 |
'IS_PRESSABLE' => [
|
91 |
'name' => 'Pressable',
|
92 |
+
'disabled_features' => [],
|
93 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Pressable', 'Pressable' ),
|
94 |
],
|
95 |
'VIP_GO_ENV' => [
|
96 |
'name' => 'WordPress VIP',
|
97 |
+
'disabled_features' => [],
|
98 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'WordPress VIP', 'WordPress VIP' ),
|
99 |
],
|
100 |
'KINSTA_CACHE_ZONE' => [
|
101 |
'name' => 'Kinsta',
|
102 |
+
'disabled_features' => [ 'caching' ],
|
103 |
'error_message' => sprintf( __( 'Since you\'re using %s, cache feature is completely disabled to ensure compatibility with internal caching system of %s.' ), 'Kinsta', 'Kinsta' ),
|
104 |
],
|
105 |
];
|
110 |
}
|
111 |
}
|
112 |
|
113 |
+
return [ 'name' => null,
|
114 |
+
'disabled_features' => [],
|
115 |
+
'error_message' => ''
|
|
|
116 |
]; // Return this structure to avoid undefined index errors.
|
117 |
}
|
118 |
}
|
129 |
|
130 |
if ( ! get_option( 'permalink_structure' ) ) {
|
131 |
// BEYNTODO: Write text for error message.
|
132 |
+
return [ 'name' => 'Permalink',
|
133 |
+
'disabled_features' => [ 'caching' ],
|
134 |
+
'error_message' => __( 'You must enable permalinks to use caching.', 'speed-booster-pack' )
|
|
|
135 |
];
|
136 |
}
|
137 |
|
161 |
|
162 |
return $wp_filesystem;
|
163 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
speed-booster-pack.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* Plugin Name: Speed Booster Pack
|
7 |
* Plugin URI: https://speedboosterpack.com
|
8 |
* Description: PageSpeed optimization is vital for SEO: A faster website equals better conversions. Optimize & cache your site with this smart plugin!
|
9 |
-
* Version: 4.1.
|
10 |
* Author: Optimocha
|
11 |
* Author URI: https://optimocha.com
|
12 |
* License: GPLv3 or later
|
@@ -32,7 +32,7 @@ define( 'SBP_PLUGIN_NAME', 'Speed Booster Pack' );
|
|
32 |
/**
|
33 |
* Current plugin version.
|
34 |
*/
|
35 |
-
define( 'SBP_VERSION', '4.1.
|
36 |
|
37 |
/**
|
38 |
* Plugin website URL.
|
6 |
* Plugin Name: Speed Booster Pack
|
7 |
* Plugin URI: https://speedboosterpack.com
|
8 |
* Description: PageSpeed optimization is vital for SEO: A faster website equals better conversions. Optimize & cache your site with this smart plugin!
|
9 |
+
* Version: 4.1.3
|
10 |
* Author: Optimocha
|
11 |
* Author URI: https://optimocha.com
|
12 |
* License: GPLv3 or later
|
32 |
/**
|
33 |
* Current plugin version.
|
34 |
*/
|
35 |
+
define( 'SBP_VERSION', '4.1.3' );
|
36 |
|
37 |
/**
|
38 |
* Plugin website URL.
|
templates/php/wp-config/pagespeed_tricker.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if(preg_match('/Lighthouse/i',$_SERVER['HTTP_USER_AGENT'])) {
|
4 |
-
echo "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"></head><body style=\"background:#0cce6b;font:bold 15vw sans-serif;color:#fff\">You\'ve got a perfect score. Good for you. Now go and speed up your website for real, actual people.</body></html>";
|
5 |
-
exit;
|
6 |
-
}
|
7 |
-
|
8 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|