Breeze – WordPress Cache Plugin - Version 1.2.3

Version Description

  • Add: Addition in Media assets rules for browser cacheable objects.
    • Add: Addition in Font assets rules for browser cacheable object.
    • Add: Addition in Data interchange rules for browser cacheable objects.
    • Add: Addition in Manifest files rules for browser cacheable object.
    • Add: Addition in Gzip compression rules.
    • Fix: Improvise the handling of the Request header while the varnish is disable
    • Fix: Improvise the condition of Option "Enable cache for logged-in users"
Download this release

Release Info

Developer adeelkhan
Plugin Icon 128x128 Breeze – WordPress Cache Plugin
Version 1.2.3
Comparing to
See all releases

Code changes from version 1.2.2 to 1.2.3

breeze.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Breeze
4
  * Description: Breeze is a WordPress cache plugin with extensive options to speed up your website. All the options including Varnish Cache are compatible with Cloudways hosting.
5
- * Version: 1.2.2
6
  * Text Domain: breeze
7
  * Domain Path: /languages
8
  * Author: Cloudways
@@ -37,7 +37,7 @@ if ( ! defined( 'BREEZE_PLUGIN_DIR' ) ) {
37
  define( 'BREEZE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
38
  }
39
  if ( ! defined( 'BREEZE_VERSION' ) ) {
40
- define( 'BREEZE_VERSION', '1.2.2' );
41
  }
42
  if ( ! defined( 'BREEZE_SITEURL' ) ) {
43
  define( 'BREEZE_SITEURL', get_site_url() );
2
  /**
3
  * Plugin Name: Breeze
4
  * Description: Breeze is a WordPress cache plugin with extensive options to speed up your website. All the options including Varnish Cache are compatible with Cloudways hosting.
5
+ * Version: 1.2.3
6
  * Text Domain: breeze
7
  * Domain Path: /languages
8
  * Author: Cloudways
37
  define( 'BREEZE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
38
  }
39
  if ( ! defined( 'BREEZE_VERSION' ) ) {
40
+ define( 'BREEZE_VERSION', '1.2.3' );
41
  }
42
  if ( ! defined( 'BREEZE_SITEURL' ) ) {
43
  define( 'BREEZE_SITEURL', get_site_url() );
inc/breeze-configuration.php CHANGED
@@ -113,6 +113,7 @@ class Breeze_Configuration {
113
  $delay_js = array_unique( $delay_js );
114
  }
115
 
 
116
  if ( ! empty( $exclude_css ) ) {
117
  $exclude_css = array_unique( $exclude_css );
118
  }
@@ -275,23 +276,63 @@ class Breeze_Configuration {
275
  $args['content'] = 'SetEnv BREEZE_BROWSER_CACHE_ON 1' . PHP_EOL .
276
  '<IfModule mod_expires.c>' . PHP_EOL .
277
  ' ExpiresActive On' . PHP_EOL .
278
- ' ExpiresByType image/gif "access 1 year"' . PHP_EOL .
279
- ' ExpiresByType image/jpg "access 1 year"' . PHP_EOL .
280
- ' ExpiresByType image/jpeg "access 1 year"' . PHP_EOL .
281
- ' ExpiresByType image/png "access 1 year"' . PHP_EOL .
282
- ' ExpiresByType image/x-icon "access 1 year"' . PHP_EOL .
283
- ' ExpiresByType text/html "access plus 0 seconds"' . PHP_EOL .
284
- ' ExpiresByType text/xml "access plus 0 seconds"' . PHP_EOL .
285
- ' ExpiresByType text/css "access 1 month"' . PHP_EOL .
286
- ' ExpiresByType text/javascript "access 1 month"' . PHP_EOL .
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  ' ExpiresByType application/xml "access plus 0 seconds"' . PHP_EOL .
288
  ' ExpiresByType application/json "access plus 0 seconds"' . PHP_EOL .
289
- ' ExpiresByType application/javascript "access 1 month"' . PHP_EOL .
290
- ' ExpiresByType application/x-javascript "access 1 month"' . PHP_EOL .
291
- ' ExpiresByType application/xhtml-xml "access 1 month"' . PHP_EOL .
292
- ' ExpiresByType application/pdf "access 1 month"' . PHP_EOL .
293
- ' ExpiresByType application/x-shockwave-flash "access 1 month"' . PHP_EOL .
294
- ' ExpiresDefault "access 1 month"' . PHP_EOL .
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
295
  '</IfModule>' . PHP_EOL;
296
 
297
  $args['conditions'] = array(
@@ -324,12 +365,21 @@ class Breeze_Configuration {
324
  $args['content'] = 'SetEnv BREEZE_GZIP_ON 1' . PHP_EOL .
325
  '<IfModule mod_deflate.c>' . PHP_EOL .
326
  ' AddType x-font/woff .woff' . PHP_EOL .
327
- ' AddOutputFilterByType DEFLATE image/svg+xml' . PHP_EOL .
328
  ' AddOutputFilterByType DEFLATE text/plain' . PHP_EOL .
 
329
  ' AddOutputFilterByType DEFLATE text/html' . PHP_EOL .
330
  ' AddOutputFilterByType DEFLATE text/xml' . PHP_EOL .
331
  ' AddOutputFilterByType DEFLATE text/css' . PHP_EOL .
 
 
332
  ' AddOutputFilterByType DEFLATE text/javascript' . PHP_EOL .
 
 
 
 
 
 
 
333
  ' AddOutputFilterByType DEFLATE application/xml' . PHP_EOL .
334
  ' AddOutputFilterByType DEFLATE application/xhtml+xml' . PHP_EOL .
335
  ' AddOutputFilterByType DEFLATE application/rss+xml' . PHP_EOL .
@@ -337,7 +387,14 @@ class Breeze_Configuration {
337
  ' AddOutputFilterByType DEFLATE application/x-javascript' . PHP_EOL .
338
  ' AddOutputFilterByType DEFLATE application/x-font-ttf' . PHP_EOL .
339
  ' AddOutputFilterByType DEFLATE application/vnd.ms-fontobject' . PHP_EOL .
340
- ' AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf' . PHP_EOL .
 
 
 
 
 
 
 
341
  '</IfModule>' . PHP_EOL;
342
 
343
  $args['conditions'] = array(
113
  $delay_js = array_unique( $delay_js );
114
  }
115
 
116
+
117
  if ( ! empty( $exclude_css ) ) {
118
  $exclude_css = array_unique( $exclude_css );
119
  }
276
  $args['content'] = 'SetEnv BREEZE_BROWSER_CACHE_ON 1' . PHP_EOL .
277
  '<IfModule mod_expires.c>' . PHP_EOL .
278
  ' ExpiresActive On' . PHP_EOL .
279
+ ' ExpiresDefault "access plus 1 month"' . PHP_EOL .
280
+
281
+ ' # Assets' . PHP_EOL .
282
+ ' ExpiresByType text/css "access plus 1 month"' . PHP_EOL .
283
+ ' ExpiresByType application/javascript "access plus 1 month"' . PHP_EOL .
284
+ ' ExpiresByType application/x-javascript "access plus 1 month"' . PHP_EOL .
285
+ ' ExpiresByType text/javascript "access plus 1 month"' . PHP_EOL .
286
+
287
+ ' # Media assets ' . PHP_EOL .
288
+ ' ExpiresByType audio/ogg "access plus 1 year"' . PHP_EOL .
289
+ ' ExpiresByType image/bmp "access plus 1 year"' . PHP_EOL .
290
+ ' ExpiresByType image/gif "access plus 1 year"' . PHP_EOL .
291
+ ' ExpiresByType image/jpeg "access plus 1 year"' . PHP_EOL .
292
+ ' ExpiresByType image/png "access plus 1 year"' . PHP_EOL .
293
+ ' ExpiresByType image/svg+xml "access plus 1 year"' . PHP_EOL .
294
+ ' ExpiresByType image/webp "access plus 1 year"' . PHP_EOL .
295
+ ' ExpiresByType video/mp4 "access plus 1 year"' . PHP_EOL .
296
+ ' ExpiresByType video/ogg "access plus 1 year"' . PHP_EOL .
297
+ ' ExpiresByType video/webm "access plus 1 year"' . PHP_EOL .
298
+ ' # Font assets ' . PHP_EOL .
299
+ ' ExpiresByType application/vnd.ms-fontobject "access plus 1 year"' . PHP_EOL .
300
+ ' ExpiresByType font/eot "access plus 1 year"' . PHP_EOL .
301
+ ' ExpiresByType font/opentype "access plus 1 year"' . PHP_EOL .
302
+ ' ExpiresByType application/x-font-ttf "access plus 1 year"' . PHP_EOL .
303
+ ' ExpiresByType application/font-woff "access plus 1 year"' . PHP_EOL .
304
+ ' ExpiresByType application/x-font-woff "access plus 1 year"' . PHP_EOL .
305
+ ' ExpiresByType font/woff "access plus 1 year"' . PHP_EOL .
306
+ ' ExpiresByType application/font-woff2 "access plus 1 year"' . PHP_EOL .
307
+
308
+ ' # Data interchange' . PHP_EOL .
309
  ' ExpiresByType application/xml "access plus 0 seconds"' . PHP_EOL .
310
  ' ExpiresByType application/json "access plus 0 seconds"' . PHP_EOL .
311
+ ' ExpiresByType application/ld+json "access plus 0 seconds"' . PHP_EOL .
312
+ ' ExpiresByType application/schema+json "access plus 0 seconds"' . PHP_EOL .
313
+ ' ExpiresByType application/vnd.geo+json "access plus 0 seconds"' . PHP_EOL .
314
+ ' ExpiresByType text/xml "access plus 0 seconds"' . PHP_EOL .
315
+ ' ExpiresByType application/rss+xml "access plus 1 hour"' . PHP_EOL .
316
+ ' ExpiresByType application/rdf+xml "access plus 1 hour"' . PHP_EOL .
317
+ ' ExpiresByType application/atom+xml "access plus 1 hour"' . PHP_EOL .
318
+
319
+ ' # Manifest files' . PHP_EOL .
320
+ ' ExpiresByType application/manifest+json "access plus 1 week"' . PHP_EOL .
321
+ ' ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"' . PHP_EOL .
322
+ ' ExpiresByType text/cache-manifest "access plus 0 seconds"' . PHP_EOL .
323
+
324
+ ' # Favicon' . PHP_EOL .
325
+ ' ExpiresByType image/vnd.microsoft.icon "access plus 1 week"' . PHP_EOL .
326
+ ' ExpiresByType image/x-icon "access plus 1 week"' . PHP_EOL .
327
+ ' # HTML no caching' . PHP_EOL .
328
+ ' ExpiresByType text/html "access plus 0 seconds"' . PHP_EOL .
329
+
330
+ ' # Other' . PHP_EOL .
331
+ ' ExpiresByType application/xhtml-xml "access plus 1 month"' . PHP_EOL .
332
+ ' ExpiresByType application/pdf "access plus 1 month"' . PHP_EOL .
333
+ ' ExpiresByType application/x-shockwave-flash "access plus 1 month"' . PHP_EOL .
334
+ ' ExpiresByType text/x-cross-domain-policy "access plus 1 week"' . PHP_EOL .
335
+
336
  '</IfModule>' . PHP_EOL;
337
 
338
  $args['conditions'] = array(
365
  $args['content'] = 'SetEnv BREEZE_GZIP_ON 1' . PHP_EOL .
366
  '<IfModule mod_deflate.c>' . PHP_EOL .
367
  ' AddType x-font/woff .woff' . PHP_EOL .
 
368
  ' AddOutputFilterByType DEFLATE text/plain' . PHP_EOL .
369
+ ' AddOutputFilterByType DEFLATE image/svg+xml' . PHP_EOL .
370
  ' AddOutputFilterByType DEFLATE text/html' . PHP_EOL .
371
  ' AddOutputFilterByType DEFLATE text/xml' . PHP_EOL .
372
  ' AddOutputFilterByType DEFLATE text/css' . PHP_EOL .
373
+ ' AddOutputFilterByType DEFLATE text/vtt' . PHP_EOL .
374
+ ' AddOutputFilterByType DEFLATE text/x-component' . PHP_EOL .
375
  ' AddOutputFilterByType DEFLATE text/javascript' . PHP_EOL .
376
+ ' AddOutputFilterByType DEFLATE application/js' . PHP_EOL .
377
+ ' AddOutputFilterByType DEFLATE application/x-httpd-php' . PHP_EOL .
378
+ ' AddOutputFilterByType DEFLATE application/x-httpd-fastphp' . PHP_EOL .
379
+ ' AddOutputFilterByType DEFLATE application/atom+xml' . PHP_EOL .
380
+ ' AddOutputFilterByType DEFLATE application/json' . PHP_EOL .
381
+ ' AddOutputFilterByType DEFLATE application/ld+json' . PHP_EOL .
382
+ ' AddOutputFilterByType DEFLATE application/x-web-app-manifest+json' . PHP_EOL .
383
  ' AddOutputFilterByType DEFLATE application/xml' . PHP_EOL .
384
  ' AddOutputFilterByType DEFLATE application/xhtml+xml' . PHP_EOL .
385
  ' AddOutputFilterByType DEFLATE application/rss+xml' . PHP_EOL .
387
  ' AddOutputFilterByType DEFLATE application/x-javascript' . PHP_EOL .
388
  ' AddOutputFilterByType DEFLATE application/x-font-ttf' . PHP_EOL .
389
  ' AddOutputFilterByType DEFLATE application/vnd.ms-fontobject' . PHP_EOL .
390
+ ' AddOutputFilterByType DEFLATE font/opentype' . PHP_EOL .
391
+ ' AddOutputFilterByType DEFLATE font/ttf' . PHP_EOL .
392
+ ' AddOutputFilterByType DEFLATE font/eot font/otf' . PHP_EOL .
393
+ ' AddOutputFilterByType DEFLATE font/otf' . PHP_EOL .
394
+ ' AddOutputFilterByType DEFLATE font/woff' . PHP_EOL .
395
+ ' AddOutputFilterByType DEFLATE application/x-font-woff' . PHP_EOL .
396
+ ' AddOutputFilterByType DEFLATE application/font-woff2' . PHP_EOL .
397
+ ' AddOutputFilterByType DEFLATE image/x-icon' . PHP_EOL .
398
  '</IfModule>' . PHP_EOL;
399
 
400
  $args['conditions'] = array(
inc/cache/execute-cache.php CHANGED
@@ -4,6 +4,25 @@
4
  */
5
  defined( 'ABSPATH' ) || exit;
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  // Load helper functions.
8
  require_once dirname( __DIR__ ) . '/functions.php';
9
 
@@ -368,7 +387,7 @@ function breeze_get_url_path() {
368
  $host = ( isset( $_SERVER['HTTP_HOST'] ) ) ? $_SERVER['HTTP_HOST'] : '';
369
  $domain = ( ( ( ! empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== 'off' ) || ( ! empty( $_SERVER['SERVER_PORT'] ) && $_SERVER['SERVER_PORT'] == 443 ) ) ? 'https://' : 'http://' );
370
 
371
- return $domain . rtrim( $host, '/' ) . $_SERVER['REQUEST_URI'];
372
  }
373
 
374
  /**
@@ -395,11 +414,6 @@ function breeze_serve_cache( $filename, $url_path, $X1, $opts ) {
395
  $modified_time = (int) @filemtime( $path );
396
  }
397
 
398
- if ( ! empty( $opts['breeze-browser-cache'] ) && ! empty( $modified_time ) && ! empty( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) && strtotime( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) === $modified_time ) {
399
- header( $_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified', true, 304 );
400
- exit;
401
- }
402
-
403
  if ( @file_exists( $path ) ) {
404
 
405
  $cacheFile = file_get_contents( $path );
@@ -424,7 +438,6 @@ function breeze_serve_cache( $filename, $url_path, $X1, $opts ) {
424
 
425
  $content = gzencode( $datas['body'], 9 );
426
  header( 'Content-Encoding: gzip' );
427
- header( 'cache-control: must-revalidate' );
428
  header( 'Content-Length: ' . strlen( $content ) );
429
  header( 'Vary: Accept-Encoding' );
430
  echo $content;
4
  */
5
  defined( 'ABSPATH' ) || exit;
6
 
7
+ if ( isset( $GLOBALS['breeze_config'], $GLOBALS['breeze_config']['disable_per_adminuser'] ) ) {
8
+ $breeze_is_cache_disabled = $GLOBALS['breeze_config']['disable_per_adminuser'];
9
+ $breeze_is_cache_disabled = filter_var( $breeze_is_cache_disabled, FILTER_VALIDATE_BOOLEAN );
10
+
11
+ $wp_cookies = array( 'wordpressuser_', 'wordpresspass_', 'wordpress_sec_', 'wordpress_logged_in_' );
12
+
13
+ $breeze_user_logged = false;
14
+ foreach ( $_COOKIE as $key => $value ) {
15
+ // Logged in!
16
+ if ( strpos( $key, 'wordpress_logged_in_' ) !== false ) {
17
+ $breeze_user_logged = true;
18
+ }
19
+ }
20
+
21
+ if ( true === $breeze_user_logged && true === $breeze_is_cache_disabled ) {
22
+ return;
23
+ }
24
+
25
+ }
26
  // Load helper functions.
27
  require_once dirname( __DIR__ ) . '/functions.php';
28
 
387
  $host = ( isset( $_SERVER['HTTP_HOST'] ) ) ? $_SERVER['HTTP_HOST'] : '';
388
  $domain = ( ( ( ! empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== 'off' ) || ( ! empty( $_SERVER['SERVER_PORT'] ) && $_SERVER['SERVER_PORT'] == 443 ) ) ? 'https://' : 'http://' );
389
 
390
+ return $domain . rtrim( $host, '/' ) . $_SERVER['REQUEST_URI'];
391
  }
392
 
393
  /**
414
  $modified_time = (int) @filemtime( $path );
415
  }
416
 
 
 
 
 
 
417
  if ( @file_exists( $path ) ) {
418
 
419
  $cacheFile = file_get_contents( $path );
438
 
439
  $content = gzencode( $datas['body'], 9 );
440
  header( 'Content-Encoding: gzip' );
 
441
  header( 'Content-Length: ' . strlen( $content ) );
442
  header( 'Vary: Accept-Encoding' );
443
  echo $content;
inc/minification/breeze-minify-main.php CHANGED
@@ -272,7 +272,12 @@ class Breeze_Minify {
272
 
273
  $content = apply_filters( 'breeze_filter_html_before_minify', $content );
274
 
275
- if ( ! empty( $conf ) && $conf['breeze-disable-admin'] && ( current_user_can( 'administrator' ) || current_user_can( 'editor' ) || current_user_can( 'author' ) || current_user_can( 'contributor' ) ) ) {
 
 
 
 
 
276
  $content = apply_filters( 'breeze_html_after_minify', $content );
277
 
278
  } else {
272
 
273
  $content = apply_filters( 'breeze_filter_html_before_minify', $content );
274
 
275
+ if ( ! isset( $conf['breeze-disable-admin'] ) ) {
276
+ $conf['breeze-disable-admin'] = true;
277
+ }
278
+
279
+ $breeze_is_cache_disabled = filter_var( $conf['breeze-disable-admin'], FILTER_VALIDATE_BOOLEAN );
280
+ if ( ! empty( $conf ) && true === $breeze_is_cache_disabled && is_user_logged_in() ) {
281
  $content = apply_filters( 'breeze_html_after_minify', $content );
282
 
283
  } else {
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: Cloudways
3
  Tags: cache,caching, performance, wp-cache, cdn, combine, compress, speed plugin, database cache,gzip, http compression, js cache, minify, optimize, page cache, performance, speed, expire headers
4
  Requires at least: 4.5
5
- Tested up to: 5.7
6
- Stable tag: 1.2.2
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -145,6 +145,21 @@ Using Gzip, Breeze compresses the request files, further reducing the size of th
145
 
146
  == Changelog ==
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  = 1.2.2 =
149
 
150
  * Add: Export settings via Command Line Interface (wp-cli).
2
  Contributors: Cloudways
3
  Tags: cache,caching, performance, wp-cache, cdn, combine, compress, speed plugin, database cache,gzip, http compression, js cache, minify, optimize, page cache, performance, speed, expire headers
4
  Requires at least: 4.5
5
+ Tested up to: 5.8
6
+ Stable tag: 1.2.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
145
 
146
  == Changelog ==
147
 
148
+
149
+
150
+ = 1.2.3 =
151
+
152
+
153
+ * Add: Addition in Media assets rules for browser cacheable objects.
154
+ * Add: Addition in Font assets rules for browser cacheable object.
155
+ * Add: Addition in Data interchange rules for browser cacheable objects.
156
+ * Add: Addition in Manifest files rules for browser cacheable object.
157
+ * Add: Addition in Gzip compression rules.
158
+ * Fix: Improvise the handling of the Request header while the varnish is disable
159
+ * Fix: Improvise the condition of Option "Enable cache for logged-in users"
160
+
161
+
162
+
163
  = 1.2.2 =
164
 
165
  * Add: Export settings via Command Line Interface (wp-cli).
views/breeze-setting-views.php CHANGED
@@ -8,7 +8,7 @@ $tabs = array(
8
  'database' => __( 'DATABASE', 'breeze' ),
9
  'cdn' => __( 'CDN', 'breeze' ),
10
  'varnish' => __( 'VARNISH', 'breeze' ),
11
- 'import_export' => __( 'Settings import/export', 'breeze' ),
12
  'faq' => __( 'FAQs', 'breeze' ),
13
  );
14
 
8
  'database' => __( 'DATABASE', 'breeze' ),
9
  'cdn' => __( 'CDN', 'breeze' ),
10
  'varnish' => __( 'VARNISH', 'breeze' ),
11
+ 'import_export' => __( 'IMPORT/EXPORT', 'breeze' ),
12
  'faq' => __( 'FAQs', 'breeze' ),
13
  );
14
 
views/tabs/advanced.php CHANGED
@@ -53,9 +53,9 @@ if ( ! isset( $advanced['breeze-enable-js-delay'] ) ) {
53
  $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALIDATE_BOOLEAN );
54
  ?>
55
  <table cellspacing="15" id="advanced-options-tab">
56
- <tr>
57
- <td><label for="bz-lazy-load" class="breeze_tool_tip"><?php _e( 'Lazy-Load images', 'breeze' ); ?></label></td>
58
- <td>
59
  <?php
60
  $disabled = 'disabled';
61
 
@@ -63,19 +63,19 @@ $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALI
63
  $disabled = '';
64
  }
65
  ?>
66
- <input type="checkbox" id="bz-lazy-load" name="bz-lazy-load"
67
- value='1' <?php checked( $advanced['breeze-lazy-load'], '1' ); ?> <?php echo $disabled; ?>/>
68
- <span class="breeze_tool_tip">
69
  <?php _e( 'Images will begin to load before being displayed on screen.', 'breeze' ); ?>
70
  </span>
71
  <?php
72
  if ( ! empty( $disabled ) ) {
73
  ?>
74
- <br/>
75
- <span class="breeze_tool_tip" style="color: #ff0000">
76
  <?php _e( 'This option requires the library PHP DOMDocument and PHP DOMXPath', 'breeze' ); ?>
77
  </span>
78
- <br/>
79
  <?php
80
  } else {
81
  echo '<br/>';
@@ -89,28 +89,27 @@ $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALI
89
  } else {
90
  $hide = '';
91
  }
92
-
93
  } else {
94
  $hide = ' style="display:none"';
95
  }
96
 
97
  ?>
98
- <br/>
99
- <span <?php echo $hide; ?> id="native-lazy-option">
100
- <input type="checkbox" id="bz-lazy-load-nat" name="bz-lazy-load-nat"
101
- value='1' <?php checked( $advanced['breeze-lazy-load-native'], '1' ); ?>/>
102
- <span class="breeze_tool_tip">
103
- <strong><?php _e( 'Enable native browser lazy load', 'breeze' ); ?></strong><br/>
104
- <?php _e( '<strong>Note</strong>: This is not supported by all browsers.', 'breeze' ); ?>
105
- </span>
106
- </span>
107
- </td>
108
- </tr>
109
- <tr>
110
- <td>
111
- <label for="exclude-urls" class="breeze_tool_tip"><?php _e( 'Never Cache these URLs', 'breeze' ); ?></label>
112
- </td>
113
- <td>
114
  <?php
115
  $css_output = '';
116
  if ( ! empty( $advanced['breeze-exclude-urls'] ) ) {
@@ -118,64 +117,64 @@ $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALI
118
  $css_output = esc_textarea( $output );
119
  }
120
  ?>
121
- <textarea cols="100" rows="7" id="exclude-urls" name="exclude-urls"><?php echo $css_output; ?></textarea>
122
- <br/>
123
- <span class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e( 'Add the URLs of the pages (one per line) you wish to exclude from the WordPress internal cache. To exclude URLs from the Varnish cache, please refer to this ', 'breeze' ); ?><a
124
- href="https://support.cloudways.com/how-to-exclude-url-from-varnish/"
125
- target="_blank"><?php _e( 'Knowledge Base', 'breeze' ); ?></a><?php _e( ' article.', 'breeze' ); ?> </span>
126
  <?php if ( false === $excluded_url_list ) { ?>
127
- <br/>
128
- <span class="breeze_tool_tip" style="color: #ff0000">
129
  <?php _e( 'One (or more) URL is invalid. Please check and correct the entry.', 'breeze' ); ?>
130
  </span>
131
  <?php } ?>
132
- </td>
133
- </tr>
134
- <tr>
135
- <td>
136
- <label class="breeze_tool_tip"><?php _e( 'Group Files', 'breeze' ); ?></label>
137
- </td>
138
- <td>
139
- <ul>
140
- <li>
141
- <input type="checkbox" name="group-css" id="group-css"
142
- value="1" <?php checked( $advanced['breeze-group-css'], '1' ); ?>/>
143
- <label class="breeze_tool_tip" for="group-css"><?php _e( 'CSS', 'breeze' ); ?></label>
144
- </li>
145
- <li>
146
- <input type="checkbox" name="group-js" id="group-js"
147
- value="1" <?php checked( $advanced['breeze-group-js'], '1' ); ?>/>
148
- <label class="breeze_tool_tip" for="group-js"><?php _e( 'JS', 'breeze' ); ?></label>
149
- </li>
150
- <li>
151
  <span class="breeze_tool_tip">
152
  <b>Note:&nbsp;</b><?php _e( 'Group CSS and JS files to combine them into a single file. This will reduce the number of HTTP requests to your server.', 'breeze' ); ?><br>
153
  <b><?php _e( 'Important: Enable Minification to use this option.', 'breeze' ); ?></b>
154
  </span>
155
- </li>
156
- </ul>
157
- </td>
158
- </tr>
159
- <tr>
160
- <td>
161
- <label class="breeze_tool_tip"><?php _e( 'Preload links', 'breeze' ); ?></label>
162
- </td>
163
- <td>
164
- <input type="checkbox" name="preload-links" id="preload-links"
165
- value="1" <?php checked( $advanced['breeze-preload-links'], '1' ); ?>/>
166
- <label class="breeze_tool_tip" for="preload-links"><?php _e( 'Activate preload links feature', 'breeze' ); ?></label>
167
- <br/>
168
- <span class="breeze_tool_tip">
169
  <b>Note:&nbsp;</b><?php _e( 'When users hover over links, the cache is created in advance. The page will load faster upon link visiting.', 'breeze' ); ?><br/>
170
  <b><?php _e( 'Important: This feature is supported by Chromium based browsers (Chrome, Opera, Microsoft Edge Chromium, Brave...)', 'breeze' ); ?>;</b>
171
  </span>
172
- </td>
173
- </tr>
174
- <tr>
175
- <td>
176
- <label for="exclude-css" class="breeze_tool_tip"><?php _e( 'Exclude CSS', 'breeze' ); ?></label>
177
- </td>
178
- <td>
179
  <?php
180
  $css_output = '';
181
  if ( ! empty( $advanced['breeze-exclude-css'] ) ) {
@@ -183,23 +182,23 @@ $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALI
183
  $css_output = esc_textarea( $output );
184
  }
185
  ?>
186
- <textarea cols="100" rows="7" id="exclude-css" name="exclude-css"><?php echo $css_output; ?></textarea>
187
  <?php if ( false === $excluded_css_check_extension ) { ?>
188
- <br/><span class="breeze_tool_tip"
189
- style="color: #ff0000"><?php _e( 'One (or more) URL is incorrect. Please confirm that all URLs have the .css extension', 'breeze' ); ?></span>
190
  <?php } ?>
191
  <?php if ( false === $excluded_css_check ) { ?>
192
- <br/><span class="breeze_tool_tip" style="color: #ff0000"><?php _e( 'One (or more) URL is invalid. Please check and correct the entry.', 'breeze' ); ?></span>
193
  <?php } ?>
194
- <br/>
195
- <span class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e( 'Use this option to exclude CSS files from Minification and Grouping. Enter the URLs of CSS files on each line.', 'breeze' ); ?></span>
196
- </td>
197
- </tr>
198
- <tr>
199
- <td>
200
- <label for="exclude-js" class="breeze_tool_tip"><?php _e( 'Exclude JS', 'breeze' ); ?></label>
201
- </td>
202
- <td>
203
  <?php
204
  $js_output = '';
205
  if ( ! empty( $advanced['breeze-exclude-js'] ) ) {
@@ -207,195 +206,195 @@ $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALI
207
  $js_output = esc_textarea( $output );
208
  }
209
  ?>
210
- <textarea cols="100" rows="7" id="exclude-js" name="exclude-js"><?php echo $js_output; ?></textarea>
211
  <?php if ( false === $excluded_js_check_extension ) { ?>
212
- <br/><span class="breeze_tool_tip"
213
- style="color: #ff0000"><?php _e( 'One (or more) URL is incorrect. Please confirm that all URLs have the .js extension', 'breeze' ); ?></span>
214
  <?php } ?>
215
  <?php if ( false === $excluded_js_check ) { ?>
216
- <br/><span class="breeze_tool_tip" style="color: #ff0000"><?php _e( 'One (or more) URL is invalid. Please check and correct the entry.', 'breeze' ); ?></span>
217
  <?php } ?>
218
- <br/>
219
- <span class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e( 'Use this option to exclude JS files from Minification and Grouping. Enter the URLs of JS files on each line.', 'breeze' ); ?></span>
220
- </td>
221
- </tr>
222
- <tr>
223
- <td>
224
- <label for="breeze-preload-font" class="breeze_tool_tip"><?php _e( 'Preload your webfonts', 'breeze' ); ?></label>
225
- </td>
226
- <td>
227
- <div class="breeze-list-url">
228
  <?php if ( ! empty( $advanced['breeze-preload-fonts'] ) ) : ?>
229
  <?php foreach ( $advanced['breeze-preload-fonts'] as $font_url ) : ?>
230
- <div class="breeze-input-group">
231
  <span class="sort-handle">
232
  <span class="dashicons dashicons-arrow-up moveUp"></span>
233
  <span class="dashicons dashicons-arrow-down moveDown"></span>
234
  </span>
235
- <input type="text" size="98"
236
- class="breeze-input-url"
237
- name="breeze-preload-font[]"
238
- placeholder="<?php _e( 'Enter Font/CSS URL...', 'breeze' ); ?>"
239
- value="<?php echo esc_html( $font_url ); ?>"/>
240
- <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
241
- </div>
242
  <?php endforeach; ?>
243
  <?php else : ?>
244
- <div class="breeze-input-group">
245
  <span class="sort-handle">
246
  <span class="dashicons dashicons-arrow-up moveUp"></span>
247
  <span class="dashicons dashicons-arrow-down moveDown"></span>
248
  </span>
249
- <input type="text" size="98"
250
- class="breeze-input-url"
251
- id="breeze-preload-font"
252
- name="breeze-preload-font[]"
253
- placeholder="<?php _e( 'Enter Font/CSS URL...', 'breeze' ); ?>"
254
- value=""/>
255
- <span class="dashicons dashicons-no" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
256
- </div>
257
  <?php endif; ?>
258
- </div>
259
- <div style="margin: 10px 0">
260
- <button type="button" class="button add-url" id="add-breeze-preload-fonts">
261
  <?php _e( 'Add URL', 'breeze' ); ?>
262
- </button>
263
- </div>
264
- <div>
265
  <span class="breeze_tool_tip">
266
  <b>Note:&nbsp;</b>
267
  <?php _e( 'Specify the local font URL or the URL for the CSS file which loads only fonts.', 'breeze' ); ?>
268
  </span>
269
- <span class="breeze_tool_tip">
270
  <?php _e( 'Load WOFF format fonts for the best performance.', 'breeze' ); ?>
271
  </span>
272
- <span class="breeze_tool_tip">
273
  <?php _e( 'Do not preload the whole website CSS file as it will slow down your website.', 'breeze' ); ?>
274
  </span>
275
- <span class="breeze_tool_tip">
276
  <?php _e( 'Do not add Google Fonts links as those already use preload.', 'breeze' ); ?>
277
  </span>
278
- <br/>
279
- <span class="breeze_tool_tip">
280
- <?php $theme_url = get_template_directory_uri() . '/assets/fonts/my-font.woff'; ?>
281
- <?php _e( 'Example:<code>' . $theme_url . '</code>', 'breeze' ); ?>
282
  </span>
283
- </div>
284
- </td>
285
- </tr>
286
- <tr>
287
- <td>
288
- <label for="move-to-footer-js" class="breeze_tool_tip"><?php _e( 'Move JS files to footer', 'breeze' ); ?></label>
289
- </td>
290
- <td>
291
- <div class="breeze-list-url">
292
  <?php if ( ! empty( $advanced['breeze-move-to-footer-js'] ) ) : ?>
293
  <?php foreach ( $advanced['breeze-move-to-footer-js'] as $js_url ) : ?>
294
- <div class="breeze-input-group">
295
  <span class="sort-handle">
296
  <span class="dashicons dashicons-arrow-up moveUp"></span>
297
  <span class="dashicons dashicons-arrow-down moveDown"></span>
298
  </span>
299
- <input type="text" size="98"
300
- class="breeze-input-url"
301
- name="move-to-footer-js[]"
302
- placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
303
- value="<?php echo esc_html( $js_url ); ?>"/>
304
- <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
305
- </div>
306
  <?php endforeach; ?>
307
  <?php else : ?>
308
- <div class="breeze-input-group">
309
  <span class="sort-handle">
310
  <span class="dashicons dashicons-arrow-up moveUp"></span>
311
  <span class="dashicons dashicons-arrow-down moveDown"></span>
312
  </span>
313
- <input type="text" size="98"
314
- class="breeze-input-url"
315
- id="move-to-footer-js"
316
- name="move-to-footer-js[]"
317
- placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
318
- value=""/>
319
- <span class="dashicons dashicons-no" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
320
- </div>
321
  <?php endif; ?>
322
- </div>
323
- <div style="margin: 10px 0">
324
- <button type="button" class="button add-url" id="add-move-to-footer-js">
325
  <?php _e( 'Add URL', 'breeze' ); ?>
326
- </button>
327
- </div>
328
- <div>
329
  <span class="breeze_tool_tip">
330
  <b>Note:&nbsp;</b>
331
  <?php _e( 'Enter the complete URLs of JS files to be moved to the footer during minification process.', 'breeze' ); ?>
332
  </span>
333
- <span class="breeze_tool_tip">
334
  <?php _e( 'You should add the URL of original files as URL of minified files are not supported.', 'breeze' ); ?>
335
  </span>
336
- </div>
337
- </td>
338
- </tr>
339
- <tr>
340
- <td>
341
- <label for="defer-js" class="breeze_tool_tip"><?php _e( 'JS files with deferred loading', 'breeze' ); ?></label>
342
- </td>
343
- <td>
344
- <div class="breeze-list-url">
345
  <?php if ( ! empty( $advanced['breeze-defer-js'] ) ) : ?>
346
  <?php foreach ( $advanced['breeze-defer-js'] as $js_url ) : ?>
347
- <div class="breeze-input-group">
348
  <span class="sort-handle">
349
  <span class="dashicons dashicons-arrow-up moveUp"></span>
350
  <span class="dashicons dashicons-arrow-down moveDown"></span>
351
  </span>
352
- <input type="text" size="98"
353
- class="breeze-input-url"
354
- name="defer-js[]"
355
- placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
356
- value="<?php echo esc_html( $js_url ); ?>"/>
357
- <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
358
- </div>
359
  <?php endforeach; ?>
360
  <?php else : ?>
361
- <div class="breeze-input-group">
362
  <span class="sort-handle">
363
  <span class="dashicons dashicons-arrow-up moveUp"></span>
364
  <span class="dashicons dashicons-arrow-down moveDown"></span>
365
  </span>
366
- <input type="text" size="98"
367
- class="breeze-input-url"
368
- name="defer-js[]"
369
- id="defer-js"
370
- placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
371
- value=""/>
372
- <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
373
- </div>
374
  <?php endif; ?>
375
- </div>
376
- <div style="margin: 10px 0">
377
- <button type="button" class="button add-url" id="add-defer-js">
378
  <?php _e( 'Add URL', 'breeze' ); ?>
379
- </button>
380
- </div>
381
- <div>
382
  <span class="breeze_tool_tip">
383
  <b>Note:&nbsp;</b>
384
  <?php _e( 'You should add the URL of original files as URL of minified files are not supported.', 'breeze' ); ?>
385
  </span>
386
- </div>
387
- </td>
388
- </tr>
389
- <tr>
390
- <td>
391
- <label for="delay-js-scripts" class="breeze_tool_tip"><?php _e( 'Delay JS inline scripts', 'breeze' ); ?></label>
392
- </td>
393
- <td>
394
- <input type="checkbox" name="enable-js-delay" id="enable-js-delay"
395
- value="1" <?php checked( $advanced['breeze-enable-js-delay'], '1' ); ?>/>
396
- <label class="breeze_tool_tip" for="enable-js-delay"><?php _e( 'Enable delay inline JavaScript', 'breeze' ); ?></label>
397
- <br/>
398
- <br/>
399
  <?php
400
  $js_output = '';
401
  if ( ! empty( $advanced['breeze-delay-js-scripts'] ) ) {
@@ -408,18 +407,18 @@ $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALI
408
  $display_text_area = 'style="display:block"';
409
  }
410
  ?>
411
- <div <?php echo $display_text_area; ?> id="breeze-delay-js-scripts-div">
412
- <textarea cols="100" rows="7" id="delay-js-scripts" name="delay-js-scripts"><?php echo $js_output; ?></textarea>
413
- <br/>
414
- <span class="breeze_tool_tip">
415
- <strong>Notes:&nbsp;</strong> <br/>
416
- <?php _e( 'You can add specififc keywords to identify the inline JavaScript to be delayed. Each script identifying keyword must be added on a new line.', 'breeze' ); ?>
417
- <a href="https://www.cloudways.com/blog/breeze-1-2-version-released/" target="_blank"><?php _e( 'More info here', 'breeze' ); ?></a><br/>
418
- <span style="color: #ff0000">
419
- <?php _e( 'Please clear Varnish after applying the new settings.', 'breeze' ); ?>
420
- </span>
421
- </span>
422
- </div>
423
- </td>
424
- </tr>
425
  </table>
53
  $js_inline_enable = filter_var( $advanced['breeze-enable-js-delay'], FILTER_VALIDATE_BOOLEAN );
54
  ?>
55
  <table cellspacing="15" id="advanced-options-tab">
56
+ <tr>
57
+ <td><label for="bz-lazy-load" class="breeze_tool_tip"><?php _e( 'Lazy-Load images', 'breeze' ); ?></label></td>
58
+ <td>
59
  <?php
60
  $disabled = 'disabled';
61
 
63
  $disabled = '';
64
  }
65
  ?>
66
+ <input type="checkbox" id="bz-lazy-load" name="bz-lazy-load"
67
+ value='1' <?php checked( $advanced['breeze-lazy-load'], '1' ); ?> <?php echo $disabled; ?>/>
68
+ <span class="breeze_tool_tip">
69
  <?php _e( 'Images will begin to load before being displayed on screen.', 'breeze' ); ?>
70
  </span>
71
  <?php
72
  if ( ! empty( $disabled ) ) {
73
  ?>
74
+ <br/>
75
+ <span class="breeze_tool_tip" style="color: #ff0000">
76
  <?php _e( 'This option requires the library PHP DOMDocument and PHP DOMXPath', 'breeze' ); ?>
77
  </span>
78
+ <br/>
79
  <?php
80
  } else {
81
  echo '<br/>';
89
  } else {
90
  $hide = '';
91
  }
 
92
  } else {
93
  $hide = ' style="display:none"';
94
  }
95
 
96
  ?>
97
+ <br/>
98
+ <span <?php echo $hide; ?> id="native-lazy-option">
99
+ <input type="checkbox" id="bz-lazy-load-nat" name="bz-lazy-load-nat"
100
+ value='1' <?php checked( $advanced['breeze-lazy-load-native'], '1' ); ?>/>
101
+ <span class="breeze_tool_tip">
102
+ <strong><?php _e( 'Enable native browser lazy load', 'breeze' ); ?></strong><br/>
103
+ <?php _e( '<strong>Note</strong>: This is not supported by all browsers.', 'breeze' ); ?>
104
+ </span>
105
+ </span>
106
+ </td>
107
+ </tr>
108
+ <tr>
109
+ <td>
110
+ <label for="exclude-urls" class="breeze_tool_tip"><?php _e( 'Never Cache these URLs', 'breeze' ); ?></label>
111
+ </td>
112
+ <td>
113
  <?php
114
  $css_output = '';
115
  if ( ! empty( $advanced['breeze-exclude-urls'] ) ) {
117
  $css_output = esc_textarea( $output );
118
  }
119
  ?>
120
+ <textarea cols="100" rows="7" id="exclude-urls" name="exclude-urls"><?php echo $css_output; ?></textarea>
121
+ <br/>
122
+ <span class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e( 'Add the URLs of the pages (one per line) you wish to exclude from the WordPress internal cache. To exclude URLs from the Varnish cache, please refer to this ', 'breeze' ); ?><a
123
+ href="https://support.cloudways.com/how-to-exclude-url-from-varnish/"
124
+ target="_blank"><?php _e( 'Knowledge Base', 'breeze' ); ?></a><?php _e( ' article.', 'breeze' ); ?> </span>
125
  <?php if ( false === $excluded_url_list ) { ?>
126
+ <br/>
127
+ <span class="breeze_tool_tip" style="color: #ff0000">
128
  <?php _e( 'One (or more) URL is invalid. Please check and correct the entry.', 'breeze' ); ?>
129
  </span>
130
  <?php } ?>
131
+ </td>
132
+ </tr>
133
+ <tr>
134
+ <td>
135
+ <label class="breeze_tool_tip"><?php _e( 'Group Files', 'breeze' ); ?></label>
136
+ </td>
137
+ <td>
138
+ <ul>
139
+ <li>
140
+ <input type="checkbox" name="group-css" id="group-css"
141
+ value="1" <?php checked( $advanced['breeze-group-css'], '1' ); ?>/>
142
+ <label class="breeze_tool_tip" for="group-css"><?php _e( 'CSS', 'breeze' ); ?></label>
143
+ </li>
144
+ <li>
145
+ <input type="checkbox" name="group-js" id="group-js"
146
+ value="1" <?php checked( $advanced['breeze-group-js'], '1' ); ?>/>
147
+ <label class="breeze_tool_tip" for="group-js"><?php _e( 'JS', 'breeze' ); ?></label>
148
+ </li>
149
+ <li>
150
  <span class="breeze_tool_tip">
151
  <b>Note:&nbsp;</b><?php _e( 'Group CSS and JS files to combine them into a single file. This will reduce the number of HTTP requests to your server.', 'breeze' ); ?><br>
152
  <b><?php _e( 'Important: Enable Minification to use this option.', 'breeze' ); ?></b>
153
  </span>
154
+ </li>
155
+ </ul>
156
+ </td>
157
+ </tr>
158
+ <tr>
159
+ <td>
160
+ <label class="breeze_tool_tip"><?php _e( 'Preload links', 'breeze' ); ?></label>
161
+ </td>
162
+ <td>
163
+ <input type="checkbox" name="preload-links" id="preload-links"
164
+ value="1" <?php checked( $advanced['breeze-preload-links'], '1' ); ?>/>
165
+ <label class="breeze_tool_tip" for="preload-links"><?php _e( 'Activate preload links feature', 'breeze' ); ?></label>
166
+ <br/>
167
+ <span class="breeze_tool_tip">
168
  <b>Note:&nbsp;</b><?php _e( 'When users hover over links, the cache is created in advance. The page will load faster upon link visiting.', 'breeze' ); ?><br/>
169
  <b><?php _e( 'Important: This feature is supported by Chromium based browsers (Chrome, Opera, Microsoft Edge Chromium, Brave...)', 'breeze' ); ?>;</b>
170
  </span>
171
+ </td>
172
+ </tr>
173
+ <tr>
174
+ <td>
175
+ <label for="exclude-css" class="breeze_tool_tip"><?php _e( 'Exclude CSS', 'breeze' ); ?></label>
176
+ </td>
177
+ <td>
178
  <?php
179
  $css_output = '';
180
  if ( ! empty( $advanced['breeze-exclude-css'] ) ) {
182
  $css_output = esc_textarea( $output );
183
  }
184
  ?>
185
+ <textarea cols="100" rows="7" id="exclude-css" name="exclude-css"><?php echo $css_output; ?></textarea>
186
  <?php if ( false === $excluded_css_check_extension ) { ?>
187
+ <br/><span class="breeze_tool_tip"
188
+ style="color: #ff0000"><?php _e( 'One (or more) URL is incorrect. Please confirm that all URLs have the .css extension', 'breeze' ); ?></span>
189
  <?php } ?>
190
  <?php if ( false === $excluded_css_check ) { ?>
191
+ <br/><span class="breeze_tool_tip" style="color: #ff0000"><?php _e( 'One (or more) URL is invalid. Please check and correct the entry.', 'breeze' ); ?></span>
192
  <?php } ?>
193
+ <br/>
194
+ <span class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e( 'Use this option to exclude CSS files from Minification and Grouping. Enter the URLs of CSS files on each line.', 'breeze' ); ?></span>
195
+ </td>
196
+ </tr>
197
+ <tr>
198
+ <td>
199
+ <label for="exclude-js" class="breeze_tool_tip"><?php _e( 'Exclude JS', 'breeze' ); ?></label>
200
+ </td>
201
+ <td>
202
  <?php
203
  $js_output = '';
204
  if ( ! empty( $advanced['breeze-exclude-js'] ) ) {
206
  $js_output = esc_textarea( $output );
207
  }
208
  ?>
209
+ <textarea cols="100" rows="7" id="exclude-js" name="exclude-js"><?php echo $js_output; ?></textarea>
210
  <?php if ( false === $excluded_js_check_extension ) { ?>
211
+ <br/><span class="breeze_tool_tip"
212
+ style="color: #ff0000"><?php _e( 'One (or more) URL is incorrect. Please confirm that all URLs have the .js extension', 'breeze' ); ?></span>
213
  <?php } ?>
214
  <?php if ( false === $excluded_js_check ) { ?>
215
+ <br/><span class="breeze_tool_tip" style="color: #ff0000"><?php _e( 'One (or more) URL is invalid. Please check and correct the entry.', 'breeze' ); ?></span>
216
  <?php } ?>
217
+ <br/>
218
+ <span class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e( 'Use this option to exclude JS files from Minification and Grouping. Enter the URLs of JS files on each line.', 'breeze' ); ?></span>
219
+ </td>
220
+ </tr>
221
+ <tr>
222
+ <td>
223
+ <label for="breeze-preload-font" class="breeze_tool_tip"><?php _e( 'Preload your webfonts', 'breeze' ); ?></label>
224
+ </td>
225
+ <td>
226
+ <div class="breeze-list-url">
227
  <?php if ( ! empty( $advanced['breeze-preload-fonts'] ) ) : ?>
228
  <?php foreach ( $advanced['breeze-preload-fonts'] as $font_url ) : ?>
229
+ <div class="breeze-input-group">
230
  <span class="sort-handle">
231
  <span class="dashicons dashicons-arrow-up moveUp"></span>
232
  <span class="dashicons dashicons-arrow-down moveDown"></span>
233
  </span>
234
+ <input type="text" size="98"
235
+ class="breeze-input-url"
236
+ name="breeze-preload-font[]"
237
+ placeholder="<?php _e( 'Enter Font/CSS URL...', 'breeze' ); ?>"
238
+ value="<?php echo esc_html( $font_url ); ?>"/>
239
+ <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
240
+ </div>
241
  <?php endforeach; ?>
242
  <?php else : ?>
243
+ <div class="breeze-input-group">
244
  <span class="sort-handle">
245
  <span class="dashicons dashicons-arrow-up moveUp"></span>
246
  <span class="dashicons dashicons-arrow-down moveDown"></span>
247
  </span>
248
+ <input type="text" size="98"
249
+ class="breeze-input-url"
250
+ id="breeze-preload-font"
251
+ name="breeze-preload-font[]"
252
+ placeholder="<?php _e( 'Enter Font/CSS URL...', 'breeze' ); ?>"
253
+ value=""/>
254
+ <span class="dashicons dashicons-no" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
255
+ </div>
256
  <?php endif; ?>
257
+ </div>
258
+ <div style="margin: 10px 0">
259
+ <button type="button" class="button add-url" id="add-breeze-preload-fonts">
260
  <?php _e( 'Add URL', 'breeze' ); ?>
261
+ </button>
262
+ </div>
263
+ <div>
264
  <span class="breeze_tool_tip">
265
  <b>Note:&nbsp;</b>
266
  <?php _e( 'Specify the local font URL or the URL for the CSS file which loads only fonts.', 'breeze' ); ?>
267
  </span>
268
+ <span class="breeze_tool_tip">
269
  <?php _e( 'Load WOFF format fonts for the best performance.', 'breeze' ); ?>
270
  </span>
271
+ <span class="breeze_tool_tip">
272
  <?php _e( 'Do not preload the whole website CSS file as it will slow down your website.', 'breeze' ); ?>
273
  </span>
274
+ <span class="breeze_tool_tip">
275
  <?php _e( 'Do not add Google Fonts links as those already use preload.', 'breeze' ); ?>
276
  </span>
277
+ <br/>
278
+ <span class="breeze_tool_tip">
279
+ <?php $theme_url = get_template_directory_uri() . '/assets/fonts/my-font.woff'; ?>
280
+ <?php _e( 'Example:<code>' . $theme_url . '</code>', 'breeze' ); ?>
281
  </span>
282
+ </div>
283
+ </td>
284
+ </tr>
285
+ <tr>
286
+ <td>
287
+ <label for="move-to-footer-js" class="breeze_tool_tip"><?php _e( 'Move JS files to footer', 'breeze' ); ?></label>
288
+ </td>
289
+ <td>
290
+ <div class="breeze-list-url">
291
  <?php if ( ! empty( $advanced['breeze-move-to-footer-js'] ) ) : ?>
292
  <?php foreach ( $advanced['breeze-move-to-footer-js'] as $js_url ) : ?>
293
+ <div class="breeze-input-group">
294
  <span class="sort-handle">
295
  <span class="dashicons dashicons-arrow-up moveUp"></span>
296
  <span class="dashicons dashicons-arrow-down moveDown"></span>
297
  </span>
298
+ <input type="text" size="98"
299
+ class="breeze-input-url"
300
+ name="move-to-footer-js[]"
301
+ placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
302
+ value="<?php echo esc_html( $js_url ); ?>"/>
303
+ <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
304
+ </div>
305
  <?php endforeach; ?>
306
  <?php else : ?>
307
+ <div class="breeze-input-group">
308
  <span class="sort-handle">
309
  <span class="dashicons dashicons-arrow-up moveUp"></span>
310
  <span class="dashicons dashicons-arrow-down moveDown"></span>
311
  </span>
312
+ <input type="text" size="98"
313
+ class="breeze-input-url"
314
+ id="move-to-footer-js"
315
+ name="move-to-footer-js[]"
316
+ placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
317
+ value=""/>
318
+ <span class="dashicons dashicons-no" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
319
+ </div>
320
  <?php endif; ?>
321
+ </div>
322
+ <div style="margin: 10px 0">
323
+ <button type="button" class="button add-url" id="add-move-to-footer-js">
324
  <?php _e( 'Add URL', 'breeze' ); ?>
325
+ </button>
326
+ </div>
327
+ <div>
328
  <span class="breeze_tool_tip">
329
  <b>Note:&nbsp;</b>
330
  <?php _e( 'Enter the complete URLs of JS files to be moved to the footer during minification process.', 'breeze' ); ?>
331
  </span>
332
+ <span class="breeze_tool_tip">
333
  <?php _e( 'You should add the URL of original files as URL of minified files are not supported.', 'breeze' ); ?>
334
  </span>
335
+ </div>
336
+ </td>
337
+ </tr>
338
+ <tr>
339
+ <td>
340
+ <label for="defer-js" class="breeze_tool_tip"><?php _e( 'JS files with deferred loading', 'breeze' ); ?></label>
341
+ </td>
342
+ <td>
343
+ <div class="breeze-list-url">
344
  <?php if ( ! empty( $advanced['breeze-defer-js'] ) ) : ?>
345
  <?php foreach ( $advanced['breeze-defer-js'] as $js_url ) : ?>
346
+ <div class="breeze-input-group">
347
  <span class="sort-handle">
348
  <span class="dashicons dashicons-arrow-up moveUp"></span>
349
  <span class="dashicons dashicons-arrow-down moveDown"></span>
350
  </span>
351
+ <input type="text" size="98"
352
+ class="breeze-input-url"
353
+ name="defer-js[]"
354
+ placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
355
+ value="<?php echo esc_html( $js_url ); ?>"/>
356
+ <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
357
+ </div>
358
  <?php endforeach; ?>
359
  <?php else : ?>
360
+ <div class="breeze-input-group">
361
  <span class="sort-handle">
362
  <span class="dashicons dashicons-arrow-up moveUp"></span>
363
  <span class="dashicons dashicons-arrow-down moveDown"></span>
364
  </span>
365
+ <input type="text" size="98"
366
+ class="breeze-input-url"
367
+ name="defer-js[]"
368
+ id="defer-js"
369
+ placeholder="<?php _e( 'Enter URL...', 'breeze' ); ?>"
370
+ value=""/>
371
+ <span class="dashicons dashicons-no item-remove" title="<?php _e( 'Remove', 'breeze' ); ?>"></span>
372
+ </div>
373
  <?php endif; ?>
374
+ </div>
375
+ <div style="margin: 10px 0">
376
+ <button type="button" class="button add-url" id="add-defer-js">
377
  <?php _e( 'Add URL', 'breeze' ); ?>
378
+ </button>
379
+ </div>
380
+ <div>
381
  <span class="breeze_tool_tip">
382
  <b>Note:&nbsp;</b>
383
  <?php _e( 'You should add the URL of original files as URL of minified files are not supported.', 'breeze' ); ?>
384
  </span>
385
+ </div>
386
+ </td>
387
+ </tr>
388
+ <tr>
389
+ <td>
390
+ <label for="delay-js-scripts" class="breeze_tool_tip"><?php _e( 'Delay JS inline scripts', 'breeze' ); ?></label>
391
+ </td>
392
+ <td>
393
+ <input type="checkbox" name="enable-js-delay" id="enable-js-delay"
394
+ value="1" <?php checked( $advanced['breeze-enable-js-delay'], '1' ); ?>/>
395
+ <label class="breeze_tool_tip" for="enable-js-delay"><?php _e( 'Enable delay inline JavaScript', 'breeze' ); ?></label>
396
+ <br/>
397
+ <br/>
398
  <?php
399
  $js_output = '';
400
  if ( ! empty( $advanced['breeze-delay-js-scripts'] ) ) {
407
  $display_text_area = 'style="display:block"';
408
  }
409
  ?>
410
+ <div <?php echo $display_text_area; ?> id="breeze-delay-js-scripts-div">
411
+ <textarea cols="100" rows="7" id="delay-js-scripts" name="delay-js-scripts"><?php echo $js_output; ?></textarea>
412
+ <br/>
413
+ <span class="breeze_tool_tip">
414
+ <strong>Notes:&nbsp;</strong> <br/>
415
+ <?php _e( 'You can add specififc keywords to identify the inline JavaScript to be delayed. Each script identifying keyword must be added on a new line.', 'breeze' ); ?>
416
+ <a href="https://www.cloudways.com/blog/breeze-1-2-version-released/" target="_blank"><?php _e( 'More info here', 'breeze' ); ?></a><br/>
417
+ <span style="color: #ff0000">
418
+ <?php _e( 'Please clear Varnish after applying the new settings.', 'breeze' ); ?>
419
+ </span>
420
+ </span>
421
+ </div>
422
+ </td>
423
+ </tr>
424
  </table>
views/tabs/basic.php CHANGED
@@ -187,7 +187,7 @@ $basic = breeze_get_option( 'basic_settings', true );
187
  <input type="checkbox" name="breeze-admin-cache" id="breeze-admin-cache"
188
  value="0" <?php ( isset( $basic['breeze-disable-admin'] ) ) ? checked( $basic['breeze-disable-admin'], '0' ) : ''; ?> />
189
  <label class="breeze_tool_tip" for="breeze-admin-cache">
190
- <?php _e( 'Enable cache for WP standard user roles: Administrator, Editor, Author, Contributor.', 'breeze' ); ?>
191
 
192
  </label>
193
  <br/>
187
  <input type="checkbox" name="breeze-admin-cache" id="breeze-admin-cache"
188
  value="0" <?php ( isset( $basic['breeze-disable-admin'] ) ) ? checked( $basic['breeze-disable-admin'], '0' ) : ''; ?> />
189
  <label class="breeze_tool_tip" for="breeze-admin-cache">
190
+ <?php _e( 'Enable/Disable cache for authenticated users.', 'breeze' ); ?>
191
 
192
  </label>
193
  <br/>
views/tabs/faq.php CHANGED
@@ -1,169 +1,169 @@
1
- <?php
2
- defined( 'ABSPATH' ) or die;
3
- ?>
4
- <div id="faq-content">
5
- <div class="faq-block">
6
- <h3 class="faq-question"><?php _e( 'Delay inline JavaScript issue', 'breeze' ); ?></h3>
7
- <div class="faq-answer">
8
- <p>
9
- <?php _e( 'If JavaScript errors show up in front-end you can try the following solutions.', 'breeze' ); ?><br/>
10
- <?php _e( '- You can disable the option altogether.', 'breeze' ); ?><br/>
11
- <?php _e( '- You can leave the option enabled and identify which line found in the textarea is causing the issue, then remove only that online that line.', 'breeze' ); ?>
12
- </p>
13
- </div>
14
- </div>
15
-
16
- <div class="faq-block">
17
- <h3 class="faq-question"><?php _e( 'Does Breeze support Varnish and to what extent?', 'breeze' ); ?></h3>
18
- <div class="faq-answer">
19
- <p><?php _e( 'Breeze, by default, supports Varnish. It has been tested to be fully compatible with Cloudways Servers that come with Varnish pre-installed. If you are using hosting providers other than Cloudways, we suggest you confirm Varnish support with your hosting provider.', 'breeze' ); ?></p>
20
- </div>
21
- </div>
22
-
23
- <div class="faq-block">
24
- <h3 class="faq-question"><?php _e( 'Does Breeze support WooCommerce?', 'breeze' ); ?></h3>
25
- <div class="faq-answer">
26
- <p><?php _e( 'Breeze is fully compatible with WooCommerce, out of the box. It does not require any special configurations.', 'breeze' ); ?></p>
27
- </div>
28
- </div>
29
-
30
- <div class="faq-block">
31
- <h3 class="faq-question"><?php _e( 'Does Breeze support WordPress Multisite?', 'breeze' ); ?></h3>
32
- <div class="faq-answer">
33
- <p><?php _e( 'Breeze is fully compatible with WordPress Multisite without the need for any extra configuration.', 'breeze' ); ?></p>
34
- </div>
35
- </div>
36
-
37
- <div class="faq-block">
38
- <h3 class="faq-question"><?php _e( 'How does Breeze handle WordPress multisite?', 'breeze' ); ?></h3>
39
- <div class="faq-answer">
40
- <p><?php _e( 'Breeze handles all WordPress multisite instances globally. All the settings for multisite are now handled on the network level.', 'breeze' ); ?></p>
41
- </div>
42
- </div>
43
-
44
- <div class="faq-block">
45
- <h3 class="faq-question"><?php _e( 'Is Breeze compatible with other WordPress Cache plugins?', 'breeze' ); ?></h3>
46
- <div class="faq-answer">
47
- <p><?php _e( 'We DO NOT recommend using two WordPress cache plugins at the same time on any WordPress website.', 'breeze' ); ?></p>
48
- <p><?php _e( 'We strongly recommend that you use Breeze as the only cache plugin for your website. If there are any other cache plugins installed, please ensure that you have disabled them prior to proceeding with the Breeze installation.', 'breeze' ); ?></p>
49
- </div>
50
- </div>
51
-
52
- <div class="faq-block">
53
- <h3 class="faq-question"><?php _e( 'Is Breeze compatible with HTTPS?', 'breeze' ); ?></h3>
54
- <div class="faq-answer">
55
- <p><?php _e( 'Breeze does not require any special configuration to work with HTTP or HTTPS pages.', 'breeze' ); ?></p>
56
- </div>
57
- </div>
58
-
59
- <div class="faq-block">
60
- <h3 class="faq-question"><?php _e( 'Does Breeze have compatibility issues with other known plugins?', 'breeze' ); ?></h3>
61
- <div class="faq-answer">
62
- <p><?php _e( 'Breeze has been tested with popular plugins available on WordPress.org. Please feel free to report any incompatibilities on the WordPress Support Forums or on ', 'breeze' ); ?>
63
- <a href="https://community.cloudways.com/" target="_blank"><?php _e( 'Cloudways Community Forum.', 'breeze' ); ?></a>
64
- </p>
65
- </div>
66
- </div>
67
-
68
- <div class="faq-block">
69
- <h3 class="faq-question"><?php _e( 'Does Breeze support CDN?', 'breeze' ); ?></h3>
70
- <div class="faq-answer">
71
- <p><?php _e( 'Breeze supports CDN integration. It allows all static assets (such as images, CSS and JS files) to be served via CDN.', 'breeze' ); ?></p>
72
- </div>
73
- </div>
74
-
75
- <div class="faq-block">
76
- <h3 class="faq-question"><?php _e( 'What does Breeze’s Database Optimization feature do?', 'breeze' ); ?></h3>
77
- <div class="faq-answer">
78
- <p><?php _e( 'WordPress databases are notorious for storing information like post revisions, spam comments and much more. Over time, databases l become bloated and it is a good practice to clear out unwanted information to reduce database size and improve optimization.', 'breeze' ); ?></p>
79
- <p><?php _e( 'Breeze’s database optimization cleans out unwanted information in a single click.', 'breeze' ); ?></p>
80
- </div>
81
- </div>
82
-
83
- <div class="faq-block">
84
- <h3 class="faq-question"><?php _e( 'Will comments and other dynamic parts of my blog appear immediately?', 'breeze' ); ?></h3>
85
- <div class="faq-answer">
86
- <p><?php _e( 'Comments will appear upon moderation as per the comment system (or policy) set in place by the blog owner. Other dynamic changes such as any modifications in files will require a full cache purge.', 'breeze' ); ?></p>
87
- </div>
88
- </div>
89
-
90
- <div class="faq-block">
91
- <h3 class="faq-question"><?php _e( 'Can I exclude URLs of individual files and pages from cache?', 'breeze' ); ?></h3>
92
- <div class="faq-answer">
93
- <p><?php _e( 'You can exclude a file by mentioning its URL or file type (by mentioning file extension) in the exclude fields (available in the Breeze settings). Exclude will not let the cache impact that URL or file type.', 'breeze' ); ?></p>
94
- <p><?php _e( 'If Varnish is active, you will need to exclude URLs and file type(s) in the Varnish configuration. If you are hosting WordPress websites on Cloudways servers, follow ', 'breeze' ); ?>
95
- <a href="https://support.cloudways.com/how-to-exclude-url-from-varnish/" target="_blank"><?php _e( 'this KB to exclude URLs from the Varnish cache.', 'breeze' ); ?></a>
96
- </p>
97
- </div>
98
- </div>
99
-
100
- <div class="faq-block">
101
- <h3 class="faq-question"><?php _e( 'Does it work with all hosting providers?', 'breeze' ); ?></h3>
102
- <div class="faq-answer">
103
- <p><?php _e( 'Breeze has been tested to work with all major hosting providers. In addition, major Breeze options such as Gzip, browser cache, minification, grouping, database optimization. CDN integration will work as expected on all hosting providers.', 'breeze' ); ?></p>
104
- </div>
105
- </div>
106
-
107
- <div class="faq-block">
108
- <h3 class="faq-question"><?php _e( 'Where can I get support for Breeze?', 'breeze' ); ?></h3>
109
- <div class="faq-answer">
110
- <p><?php _e( 'You can get your questions answered on the WordPress support forums. If you are a Cloudways customer, please feel free to start a discussion at', 'breeze' ); ?>
111
- <a href="https://community.cloudways.com/" target="_blank"><?php _e( 'Cloudways Community Forum.', 'breeze' ); ?></a>
112
- </p>
113
- </div>
114
- </div>
115
-
116
- <div class="faq-block">
117
- <h3 class="faq-question"><?php _e( 'How can I test and verify the results?', 'breeze' ); ?></h3>
118
- <div class="faq-answer">
119
- <p><?php _e( 'You will be able to see the impact of the Breeze Cache Plugin almost immediately. We also recommend using the following tools for generating metrics:', 'breeze' ); ?></p>
120
- <ul style="margin-top: 10px">
121
- <li><a href="https://developers.google.com/speed/pagespeed/" target="_blank"><?php _e( 'Google Page Speed', 'breeze' ); ?></a></li>
122
- <li><a href="https://www.webpagetest.org/test" target="_blank"><?php _e( 'WebPagetest', 'breeze' ); ?></a></li>
123
- <li><a href="https://tools.pingdom.com/" target="_blank"><?php _e( 'Pingdom', 'breeze' ); ?></a></li>
124
- </ul>
125
- </div>
126
- </div>
127
-
128
- <div class="faq-block">
129
- <h3 class="faq-question"><?php _e( 'Does Breeze plugin work with Visual Builder?', 'breeze' ); ?></h3>
130
- <div class="faq-answer">
131
- <p><?php _e( 'Yes, Breeze Plugin is compatible with Visual Builder.', 'breeze' ); ?></p>
132
- </div>
133
- </div>
134
-
135
- <div class="faq-block">
136
- <h3 class="faq-question"><?php _e( 'What popular CDN are supported by Breeze Plugin?', 'breeze' ); ?></h3>
137
- <div class="faq-answer">
138
- <p><?php _e( 'Breeze supports the following three popular CDNs:', 'breeze' ); ?></p>
139
- <ul style="margin-top: 10px">
140
- <li><a href="https://support.cloudways.com/how-to-use-breeze-with-maxcdn/" target="_blank"><?php _e( 'MaxCDN', 'breeze' ); ?></a></li>
141
- <li><a href="https://support.cloudways.com/how-to-use-breeze-with-keycdn/" target="_blank"><?php _e( 'KeyCDN', 'breeze' ); ?></a></li>
142
- <li><a href="https://support.cloudways.com/how-to-use-breeze-with-amazon-cloudfront/" target="_blank"><?php _e( 'Amazon Cloudfront', 'breeze' ); ?></a></li>
143
- </ul>
144
- </div>
145
- </div>
146
-
147
- <div class="faq-block">
148
- <h3 class="faq-question"><?php _e( 'Does Breeze support Push CDN?', 'breeze' ); ?></h3>
149
- <div class="faq-answer">
150
- <p><?php _e( 'No, Breeze does not support Push CDN. However, you could use Breeze with Push CDNs using third party plugins.', 'breeze' ); ?></p>
151
- </div>
152
- </div>
153
-
154
- <div class="faq-block">
155
- <h3 class="faq-question"><?php _e( 'Does Breeze Work With CloudFlare?', 'breeze' ); ?></h3>
156
- <div class="faq-answer">
157
- <p><?php _e( 'Yes. The process of setting up CloudFlare with Breeze is easy. Check out the following ', 'breeze' ); ?>
158
- <a href="https://support.cloudways.com/can-i-use-cloudflare-cdn/" target="_blank"><?php _e( 'KnowledgeBase article for details.', 'breeze' ); ?></a>
159
- </p>
160
- </div>
161
- </div>
162
-
163
- <div class="faq-block">
164
- <h3 class="faq-question"><?php _e( 'How Breeze cache uses Gzip?', 'breeze' ); ?></h3>
165
- <div class="faq-answer">
166
- <p><?php _e( 'Using Gzip, Breeze compresses the request files, further reducing the size of the download files and speeding up the user experience.', 'breeze' ); ?></p>
167
- </div>
168
- </div>
169
- </div>
1
+ <?php
2
+ defined( 'ABSPATH' ) or die;
3
+ ?>
4
+ <div id="faq-content">
5
+ <div class="faq-block">
6
+ <h3 class="faq-question"><?php _e( 'Delay inline JavaScript issue', 'breeze' ); ?></h3>
7
+ <div class="faq-answer">
8
+ <p>
9
+ <?php _e( 'If JavaScript errors show up in front-end you can try the following solutions.', 'breeze' ); ?><br/>
10
+ <?php _e( '- You can disable the option altogether.', 'breeze' ); ?><br/>
11
+ <?php _e( '- You can leave the option enabled and identify which line found in the textarea is causing the issue, then remove only that online that line.', 'breeze' ); ?>
12
+ </p>
13
+ </div>
14
+ </div>
15
+
16
+ <div class="faq-block">
17
+ <h3 class="faq-question"><?php _e( 'Does Breeze support Varnish and to what extent?', 'breeze' ); ?></h3>
18
+ <div class="faq-answer">
19
+ <p><?php _e( 'Breeze, by default, supports Varnish. It has been tested to be fully compatible with Cloudways Servers that come with Varnish pre-installed. If you are using hosting providers other than Cloudways, we suggest you confirm Varnish support with your hosting provider.', 'breeze' ); ?></p>
20
+ </div>
21
+ </div>
22
+
23
+ <div class="faq-block">
24
+ <h3 class="faq-question"><?php _e( 'Does Breeze support WooCommerce?', 'breeze' ); ?></h3>
25
+ <div class="faq-answer">
26
+ <p><?php _e( 'Breeze is fully compatible with WooCommerce, out of the box. It does not require any special configurations.', 'breeze' ); ?></p>
27
+ </div>
28
+ </div>
29
+
30
+ <div class="faq-block">
31
+ <h3 class="faq-question"><?php _e( 'Does Breeze support WordPress Multisite?', 'breeze' ); ?></h3>
32
+ <div class="faq-answer">
33
+ <p><?php _e( 'Breeze is fully compatible with WordPress Multisite without the need for any extra configuration.', 'breeze' ); ?></p>
34
+ </div>
35
+ </div>
36
+
37
+ <div class="faq-block">
38
+ <h3 class="faq-question"><?php _e( 'How does Breeze handle WordPress multisite?', 'breeze' ); ?></h3>
39
+ <div class="faq-answer">
40
+ <p><?php _e( 'Breeze handles all WordPress multisite instances globally. All the settings for multisite are now handled on the network level.', 'breeze' ); ?></p>
41
+ </div>
42
+ </div>
43
+
44
+ <div class="faq-block">
45
+ <h3 class="faq-question"><?php _e( 'Is Breeze compatible with other WordPress Cache plugins?', 'breeze' ); ?></h3>
46
+ <div class="faq-answer">
47
+ <p><?php _e( 'We DO NOT recommend using two WordPress cache plugins at the same time on any WordPress website.', 'breeze' ); ?></p>
48
+ <p><?php _e( 'We strongly recommend that you use Breeze as the only cache plugin for your website. If there are any other cache plugins installed, please ensure that you have disabled them prior to proceeding with the Breeze installation.', 'breeze' ); ?></p>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="faq-block">
53
+ <h3 class="faq-question"><?php _e( 'Is Breeze compatible with HTTPS?', 'breeze' ); ?></h3>
54
+ <div class="faq-answer">
55
+ <p><?php _e( 'Breeze does not require any special configuration to work with HTTP or HTTPS pages.', 'breeze' ); ?></p>
56
+ </div>
57
+ </div>
58
+
59
+ <div class="faq-block">
60
+ <h3 class="faq-question"><?php _e( 'Does Breeze have compatibility issues with other known plugins?', 'breeze' ); ?></h3>
61
+ <div class="faq-answer">
62
+ <p><?php _e( 'Breeze has been tested with popular plugins available on WordPress.org. Please feel free to report any incompatibilities on the WordPress Support Forums or on ', 'breeze' ); ?>
63
+ <a href="https://community.cloudways.com/" target="_blank"><?php _e( 'Cloudways Community Forum.', 'breeze' ); ?></a>
64
+ </p>
65
+ </div>
66
+ </div>
67
+
68
+ <div class="faq-block">
69
+ <h3 class="faq-question"><?php _e( 'Does Breeze support CDN?', 'breeze' ); ?></h3>
70
+ <div class="faq-answer">
71
+ <p><?php _e( 'Breeze supports CDN integration. It allows all static assets (such as images, CSS and JS files) to be served via CDN.', 'breeze' ); ?></p>
72
+ </div>
73
+ </div>
74
+
75
+ <div class="faq-block">
76
+ <h3 class="faq-question"><?php _e( 'What does Breeze’s Database Optimization feature do?', 'breeze' ); ?></h3>
77
+ <div class="faq-answer">
78
+ <p><?php _e( 'WordPress databases are notorious for storing information like post revisions, spam comments and much more. Over time, databases l become bloated and it is a good practice to clear out unwanted information to reduce database size and improve optimization.', 'breeze' ); ?></p>
79
+ <p><?php _e( 'Breeze’s database optimization cleans out unwanted information in a single click.', 'breeze' ); ?></p>
80
+ </div>
81
+ </div>
82
+
83
+ <div class="faq-block">
84
+ <h3 class="faq-question"><?php _e( 'Will comments and other dynamic parts of my blog appear immediately?', 'breeze' ); ?></h3>
85
+ <div class="faq-answer">
86
+ <p><?php _e( 'Comments will appear upon moderation as per the comment system (or policy) set in place by the blog owner. Other dynamic changes such as any modifications in files will require a full cache purge.', 'breeze' ); ?></p>
87
+ </div>
88
+ </div>
89
+
90
+ <div class="faq-block">
91
+ <h3 class="faq-question"><?php _e( 'Can I exclude URLs of individual files and pages from cache?', 'breeze' ); ?></h3>
92
+ <div class="faq-answer">
93
+ <p><?php _e( 'You can exclude a file by mentioning its URL or file type (by mentioning file extension) in the exclude fields (available in the Breeze settings). Exclude will not let the cache impact that URL or file type.', 'breeze' ); ?></p>
94
+ <p><?php _e( 'If Varnish is active, you will need to exclude URLs and file type(s) in the Varnish configuration. If you are hosting WordPress websites on Cloudways servers, follow ', 'breeze' ); ?>
95
+ <a href="https://support.cloudways.com/how-to-exclude-url-from-varnish/" target="_blank"><?php _e( 'this KB to exclude URLs from the Varnish cache.', 'breeze' ); ?></a>
96
+ </p>
97
+ </div>
98
+ </div>
99
+
100
+ <div class="faq-block">
101
+ <h3 class="faq-question"><?php _e( 'Does it work with all hosting providers?', 'breeze' ); ?></h3>
102
+ <div class="faq-answer">
103
+ <p><?php _e( 'Breeze has been tested to work with all major hosting providers. In addition, major Breeze options such as Gzip, browser cache, minification, grouping, database optimization. CDN integration will work as expected on all hosting providers.', 'breeze' ); ?></p>
104
+ </div>
105
+ </div>
106
+
107
+ <div class="faq-block">
108
+ <h3 class="faq-question"><?php _e( 'Where can I get support for Breeze?', 'breeze' ); ?></h3>
109
+ <div class="faq-answer">
110
+ <p><?php _e( 'You can get your questions answered on the WordPress support forums. If you are a Cloudways customer, please feel free to start a discussion at', 'breeze' ); ?>
111
+ <a href="https://community.cloudways.com/" target="_blank"><?php _e( 'Cloudways Community Forum.', 'breeze' ); ?></a>
112
+ </p>
113
+ </div>
114
+ </div>
115
+
116
+ <div class="faq-block">
117
+ <h3 class="faq-question"><?php _e( 'How can I test and verify the results?', 'breeze' ); ?></h3>
118
+ <div class="faq-answer">
119
+ <p><?php _e( 'You will be able to see the impact of the Breeze Cache Plugin almost immediately. We also recommend using the following tools for generating metrics:', 'breeze' ); ?></p>
120
+ <ul style="margin-top: 10px">
121
+ <li><a href="https://developers.google.com/speed/pagespeed/" target="_blank"><?php _e( 'Google Page Speed', 'breeze' ); ?></a></li>
122
+ <li><a href="https://www.webpagetest.org/test" target="_blank"><?php _e( 'WebPagetest', 'breeze' ); ?></a></li>
123
+ <li><a href="https://tools.pingdom.com/" target="_blank"><?php _e( 'Pingdom', 'breeze' ); ?></a></li>
124
+ </ul>
125
+ </div>
126
+ </div>
127
+
128
+ <div class="faq-block">
129
+ <h3 class="faq-question"><?php _e( 'Does Breeze plugin work with Visual Builder?', 'breeze' ); ?></h3>
130
+ <div class="faq-answer">
131
+ <p><?php _e( 'Yes, Breeze Plugin is compatible with Visual Builder.', 'breeze' ); ?></p>
132
+ </div>
133
+ </div>
134
+
135
+ <div class="faq-block">
136
+ <h3 class="faq-question"><?php _e( 'What popular CDN are supported by Breeze Plugin?', 'breeze' ); ?></h3>
137
+ <div class="faq-answer">
138
+ <p><?php _e( 'Breeze supports the following three popular CDNs:', 'breeze' ); ?></p>
139
+ <ul style="margin-top: 10px">
140
+ <li><a href="https://support.cloudways.com/how-to-use-breeze-with-maxcdn/" target="_blank"><?php _e( 'MaxCDN', 'breeze' ); ?></a></li>
141
+ <li><a href="https://support.cloudways.com/how-to-use-breeze-with-keycdn/" target="_blank"><?php _e( 'KeyCDN', 'breeze' ); ?></a></li>
142
+ <li><a href="https://support.cloudways.com/how-to-use-breeze-with-amazon-cloudfront/" target="_blank"><?php _e( 'Amazon Cloudfront', 'breeze' ); ?></a></li>
143
+ </ul>
144
+ </div>
145
+ </div>
146
+
147
+ <div class="faq-block">
148
+ <h3 class="faq-question"><?php _e( 'Does Breeze support Push CDN?', 'breeze' ); ?></h3>
149
+ <div class="faq-answer">
150
+ <p><?php _e( 'No, Breeze does not support Push CDN. However, you could use Breeze with Push CDNs using third party plugins.', 'breeze' ); ?></p>
151
+ </div>
152
+ </div>
153
+
154
+ <div class="faq-block">
155
+ <h3 class="faq-question"><?php _e( 'Does Breeze Work With CloudFlare?', 'breeze' ); ?></h3>
156
+ <div class="faq-answer">
157
+ <p><?php _e( 'Yes. The process of setting up CloudFlare with Breeze is easy. Check out the following ', 'breeze' ); ?>
158
+ <a href="https://support.cloudways.com/can-i-use-cloudflare-cdn/" target="_blank"><?php _e( 'KnowledgeBase article for details.', 'breeze' ); ?></a>
159
+ </p>
160
+ </div>
161
+ </div>
162
+
163
+ <div class="faq-block">
164
+ <h3 class="faq-question"><?php _e( 'How Breeze cache uses Gzip?', 'breeze' ); ?></h3>
165
+ <div class="faq-answer">
166
+ <p><?php _e( 'Using Gzip, Breeze compresses the request files, further reducing the size of the download files and speeding up the user experience.', 'breeze' ); ?></p>
167
+ </div>
168
+ </div>
169
+ </div>