Breeze – WordPress Cache Plugin - Version 1.0.4

Version Description

  • Fix: Browser Cache issues with WooCommerce session
  • Fix: Clearing Breeze rules from .htaccess upon deactivating of GZIP/Broswer Cache
  • Fix: Regex fix for accepting source url's without quotes while enabling minifcation
  • Add: FAQ section added
Download this release

Release Info

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

Code changes from version 1.0.3-beta to 1.0.4

assets/css/style.css CHANGED
@@ -90,3 +90,36 @@ label.breeze_tool_tip{
90
  vertical-align: middle !important;
91
  }
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  vertical-align: middle !important;
91
  }
92
 
93
+ .ui-accordion-header:after {
94
+ font-family: dashicons;
95
+ content: "\f347";
96
+ float: right;
97
+ }
98
+ .ui-accordion-header[aria-expanded='true']:after {
99
+ content: "\f343";
100
+ }
101
+
102
+ /*Style for FAQ tab*/
103
+ #faq-content {
104
+ margin: 20px;
105
+ }
106
+
107
+ .faq-block {
108
+ border: 1px solid;
109
+ border-color: #eee transparent;
110
+ padding-bottom: 10px;
111
+ }
112
+
113
+ .faq-question {
114
+ cursor: pointer;
115
+ margin: 0;
116
+ padding: 1em 0;
117
+ }
118
+
119
+ .faq-question:focus {
120
+ outline: none;
121
+ }
122
+
123
+ .faq-answer * {
124
+ font-size: 14px;
125
+ }
assets/js/breeze-configuration.js CHANGED
@@ -51,4 +51,9 @@ jQuery(document).ready(function($){
51
 
52
  setTabFromCookie();
53
 
 
 
 
 
 
54
  });
51
 
52
  setTabFromCookie();
53
 
54
+ $('#faq-content').accordion({
55
+ collapsible: true,
56
+ animate: 200,
57
+ header: '.faq-question'
58
+ });
59
  });
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.0.3-beta
6
  * Text Domain: breeze
7
  * Domain Path: /languages
8
  * Author: Cloudways
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.0.4
6
  * Text Domain: breeze
7
  * Domain Path: /languages
8
  * Author: Cloudways
inc/cache/ecommerce-cache.php CHANGED
@@ -36,7 +36,7 @@ class Breeze_Ecommerce_Cache {
36
  }
37
  Breeze_ConfigCache::write_config_cache();
38
  }
39
- if (!empty($check) && $check == 1) {
40
  global $wp_filesystem;
41
  if ( empty( $wp_filesystem ) ) {
42
  require_once( ABSPATH . '/wp-admin/includes/file.php' );
@@ -47,160 +47,119 @@ class Breeze_Ecommerce_Cache {
47
  }
48
  }
49
 
50
- // Exclude pages of Ecommerce from cache
51
- public function ecommerce_exclude_pages() {
 
 
52
  $urls = array();
 
 
 
 
 
 
53
 
54
- // WooCommerce
55
- if ( function_exists( 'WC' ) && function_exists( 'wc_get_page_id' ) ) {
56
- if( wc_get_page_id( 'checkout' ) && wc_get_page_id( 'checkout' ) != '-1' ) {
57
- $checkout_urls = $this->breeze_translated_post_urls( wc_get_page_id( 'checkout' ), 'page', '(.*)' );
58
- $urls = array_merge( $urls, $checkout_urls );
59
  }
60
- if ( wc_get_page_id( 'cart' ) && wc_get_page_id( 'cart' ) != '-1' ) {
61
- $cart_urls = $this->breeze_translated_post_urls( wc_get_page_id( 'cart' ) );
62
- $urls = array_merge( $urls, $cart_urls );
 
 
63
  }
64
 
65
- if ( wc_get_page_id( 'myaccount' ) && wc_get_page_id( 'myaccount' ) != '-1' ) {
66
- $cart_urls = $this->breeze_translated_post_urls( wc_get_page_id( 'myaccount' ), 'page', '(.*)' );
67
- $urls = array_merge( $urls, $cart_urls );
 
68
  }
 
 
 
 
69
  }
70
- return $urls;
71
- }
72
 
73
- /**
74
- * Check whether the plugin is active by checking the active_plugins list.
75
- */
76
- public static function breeze_is_plugin_active( $plugin ) {
77
- return in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || self::breeze_is_plugin_active_for_network( $plugin );
78
  }
79
 
80
- /**
81
- * Check whether the plugin is active for the entire network.
82
  */
83
- public static function breeze_is_plugin_active_for_network( $plugin ) {
84
- if ( !is_multisite() ) {
85
- return false;
86
- }
87
 
88
- $plugins = get_site_option( 'active_sitewide_plugins');
89
- if ( isset($plugins[$plugin]) ) {
90
- return true;
 
 
91
  }
92
 
93
- return false;
94
  }
95
 
96
- /**
97
- * Get all translated path of a specific post with ID.
98
- *
99
- * @param int $post_id Post ID
100
- * @param string $post_type Post Type
101
- * @param string $regex Regex to include at the end
102
- * @return array $urls
103
- */
104
- public function breeze_translated_post_urls( $post_id, $post_type = 'page', $regex = null ) {
105
- $urls = array();
106
- $permark_link = get_option('permalink_structure');
107
- if(empty($permark_link)){
108
- if(!empty($regex)){
109
- $urls[]= get_permalink( $post_id ).'&'. $regex;
110
- }else{
111
- $urls[]= get_permalink( $post_id );
112
- }
113
- return $urls;
114
- }
115
- $path = parse_url( get_permalink( $post_id ), PHP_URL_PATH );
116
- $langs = $this->get_all_languages();
117
- if ( empty( $path ) ) {
118
- return $urls;
119
- }
120
 
121
- // WPML
122
- if ( self::breeze_is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) ) {
123
- foreach( $langs as $lang ) {
124
- $urls[] = parse_url( get_permalink( icl_object_id( $post_id, $post_type, true, $lang ) ), PHP_URL_PATH ) . $regex;
125
- }
126
- }
 
 
 
 
 
127
 
128
- // qTranslate & qTranslate-x
129
- if ( self::breeze_is_plugin_active( 'qtranslate/qtranslate.php' ) || self::breeze_is_plugin_active( 'qtranslate-x/qtranslate.php' ) ) {
130
- $langs = $GLOBALS['q_config']['enabled_languages'];
131
- $langs = array_diff( $langs, array( $GLOBALS['q_config']['default_language'] ) );
132
- $url = get_permalink( $post_id );
133
- $urls[] = parse_url( get_permalink( $post_id ), PHP_URL_PATH ) . $regex;
134
-
135
- foreach( $langs as $lang ) {
136
- if ( self::breeze_is_plugin_active( 'qtranslate/qtranslate.php' ) ) {
137
- $urls[] = parse_url( qtrans_convertURL( $url, $lang, true ), PHP_URL_PATH ) . $regex;
138
- } else if ( self::breeze_is_plugin_active( 'qtranslate/qtranslate.php' ) ) {
139
- $urls[] = parse_url( qtranxf_convertURL( $url, $lang, true ), PHP_URL_PATH ) . $regex;
140
  }
141
  }
142
  }
143
 
144
- // Polylang
145
- if ( self::breeze_is_plugin_active( 'polylang/polylang.php' ) || self::breeze_is_plugin_active( 'polylang-pro/polylang.php' ) ) {
146
- if ( function_exists( 'PLL' ) && is_object( PLL()->model ) ) {
147
- $translations = pll_get_post_translations( $post_id );
148
- } else if ( is_object( $GLOBALS['polylang']->model ) ) {
149
- $translations = $GLOBALS['polylang']->model->get_translations( 'page', $post_id );
150
- }
151
 
152
- if ( ! empty( $translations ) ) {
153
- foreach ( $translations as $post_id ) {
154
- $urls[] = parse_url( get_permalink( $post_id ), PHP_URL_PATH ) . $regex;
155
  }
156
  }
157
  }
158
 
159
- if ( trim( $path, '/' ) != '' ) {
160
- $urls[] = $path . $regex;
161
- }
162
- $urls = array_unique( $urls );
 
 
163
 
164
- return $urls;
165
- }
 
 
 
166
 
167
- /**
168
- * Check if a translation plugin is activated
169
- *
170
- * @return bool True if a plugin is activated
171
- */
172
- public static function check_trans_plugin() {
173
- if ( self::breeze_is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) // WPML
174
- || self::breeze_is_plugin_active( 'qtranslate/qtranslate.php' ) // qTranslate
175
- || self::breeze_is_plugin_active( 'qtranslate-x/qtranslate.php' ) // qTranslate-x
176
- || self::breeze_is_plugin_active( 'polylang/polylang.php' ) // Polylang
177
- || self::breeze_is_plugin_active( 'polylang-pro/polylang.php' ) ) { // Polylang Pro
178
- return true;
179
  }
180
 
181
- return false;
182
  }
183
- /**
184
- * Get info of all active languages
185
- *
186
- * @return array List of language code
187
- */
188
- public static function get_all_languages() {
189
- if( ! self::check_trans_plugin() ) {
190
- return false;
191
- }
192
-
193
- if ( self::breeze_is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) ) {
194
- return array_keys( $GLOBALS['sitepress']->get_active_languages() );
195
- }
196
 
197
- if ( self::breeze_is_plugin_active( 'qtranslate/qtranslate.php' ) || self::breeze_is_plugin_active( 'qtranslate-x/qtranslate.php' ) ) {
198
- return $GLOBALS['q_config']['enabled_languages'];
199
- }
200
-
201
- if ( self::breeze_is_plugin_active( 'polylang/polylang.php' ) || self::breeze_is_plugin_active( 'polylang-pro/polylang.php' ) ) {
202
- return pll_languages_list();
203
- }
204
  }
205
 
206
  public static function factory() {
36
  }
37
  Breeze_ConfigCache::write_config_cache();
38
  }
39
+ if (!empty($check)) {
40
  global $wp_filesystem;
41
  if ( empty( $wp_filesystem ) ) {
42
  require_once( ABSPATH . '/wp-admin/includes/file.php' );
47
  }
48
  }
49
 
50
+ /**
51
+ * Exclude pages of e-commerce from cache
52
+ */
53
+ public function ecommerce_exclude_pages(){
54
  $urls = array();
55
+ $regex = '*';
56
+
57
+ if(class_exists('WooCommerce') && function_exists('wc_get_page_id')){
58
+ $cardId = wc_get_page_id('cart');
59
+ $checkoutId = wc_get_page_id('checkout');
60
+ $myaccountId = wc_get_page_id('myaccount');
61
 
62
+ if($cardId > 0){
63
+ $urls[] = $this->get_basic_urls($cardId);
64
+ // Get url through multi-languages plugin
65
+ $urls = $this->get_translate_urls($urls, $cardId);
 
66
  }
67
+
68
+ if($checkoutId > 0){
69
+ $urls[] = $this->get_basic_urls($checkoutId , $regex);
70
+ // Get url through multi-languages plugin
71
+ $urls = $this->get_translate_urls($urls, $checkoutId, $regex );
72
  }
73
 
74
+ if($myaccountId > 0){
75
+ $urls[] = $this->get_basic_urls($myaccountId , $regex);
76
+ // Get url through multi-languages plugin
77
+ $urls = $this->get_translate_urls($urls, $myaccountId, $regex );
78
  }
79
+
80
+ // Process urls to return
81
+ $urls = array_unique($urls);
82
+ $urls = array_map(array($this,'rtrim_urls'),$urls);
83
  }
 
 
84
 
85
+ return $urls;
 
 
 
 
86
  }
87
 
88
+ /*
89
+ * Return basic url without translate plugin
90
  */
91
+ public function get_basic_urls($postID , $regex = null){
92
+ $permalink = get_option('permalink_structure');
 
 
93
 
94
+ if(!empty($permalink)) {
95
+ // Custom URL structure
96
+ $url = parse_url(get_permalink($postID),PHP_URL_PATH);
97
+ }else {
98
+ $url = get_permalink($postID);
99
  }
100
 
101
+ return $url . $regex;
102
  }
103
 
104
+ /*
105
+ * Return translate url without translate plugin
106
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
 
108
+ public function get_translate_urls($urls ,$postID , $regex = null){
109
+ // WPML plugin
110
+ if ( class_exists('SitePress')){
111
+ global $sitepress;
112
+ if(isset($sitepress)){
113
+ $active_languages = $sitepress->get_active_languages();
114
+
115
+ if(!empty($active_languages)){
116
+ $languages = array_keys($active_languages);
117
+ foreach ($languages as $language){
118
+ $translatedId = icl_object_id($postID, 'page', false, $language);
119
 
120
+ if(empty($translatedId)) continue;
121
+
122
+ $urls[] = $this->get_basic_urls($translatedId,$regex);
123
+ }
 
 
 
 
 
 
 
 
124
  }
125
  }
126
  }
127
 
128
+ // Polylang plugin
129
+ if( class_exists('Polylang') && function_exists('pll_languages_list') && function_exists('PLL')){
130
+ $translatedId = pll_get_post_translations($postID);
 
 
 
 
131
 
132
+ if(!empty($translatedId)){
133
+ foreach ($translatedId as $id){
134
+ $urls[] = $this->get_basic_urls($id,$regex);
135
  }
136
  }
137
  }
138
 
139
+ // qTranslate-x plugin
140
+ require_once (ABSPATH.'wp-admin/includes/plugin.php');
141
+ if(is_plugin_active('qtranslate-x/qtranslate.php')){
142
+ global $q_config;
143
+ if(isset($q_config) && function_exists('qtranxf_convertURL')){
144
+ $url = $this->get_basic_urls($postID);
145
 
146
+ if(!empty($q_config['enabled_languages'])){
147
+ foreach ($q_config['enabled_languages'] as $language){
148
+ $urls[] = qtranxf_convertURL( $url, $language , true);
149
+ }
150
+ }
151
 
152
+ }
 
 
 
 
 
 
 
 
 
 
 
153
  }
154
 
155
+ return $urls;
156
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
+ /*
159
+ * Remove '/' chacracter of end url
160
+ */
161
+ public function rtrim_urls($url){
162
+ return rtrim($url,'/');
 
 
163
  }
164
 
165
  public static function factory() {
inc/cache/execute-cache.php CHANGED
@@ -74,8 +74,8 @@ if (!$check_exclude) {
74
  // Detect devices
75
  if ($detect->isMobile() && !$detect->isTablet()) {
76
  // The first X will be D for Desktop cache
77
- // M for Mobile cache
78
- // T for Tablet cache
79
  if ((int)$devices['breeze-mobile-cache'] == 1) {
80
  $X1 = 'D';
81
  $filename .= '_breeze_cache_desktop';
74
  // Detect devices
75
  if ($detect->isMobile() && !$detect->isTablet()) {
76
  // The first X will be D for Desktop cache
77
+ // M for Mobile cache
78
+ // T for Tablet cache
79
  if ((int)$devices['breeze-mobile-cache'] == 1) {
80
  $X1 = 'D';
81
  $filename .= '_breeze_cache_desktop';
inc/minification/breeze-minification-scripts.php CHANGED
@@ -113,7 +113,8 @@ class Breeze_MinificationScripts extends Breeze_MinificationBase {
113
  $tag='';
114
  continue;
115
  }
116
- if(preg_match('#src=("|\')(.*)("|\')#Usmi',$tag,$source)) {
 
117
  if ($this->isremovable($tag,$this->jsremovables)) {
118
  $this->content = str_replace($tag,'',$this->content);
119
  continue;
113
  $tag='';
114
  continue;
115
  }
116
+ if(preg_match('/src=("|\')?(.*?(\ |\>))("|\')?/Usmi',$tag,$source)) {
117
+ $source[2] = substr($source[2], 0, -1);
118
  if ($this->isremovable($tag,$this->jsremovables)) {
119
  $this->content = str_replace($tag,'',$this->content);
120
  continue;
readme.txt CHANGED
@@ -3,7 +3,7 @@ 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: 4.8
6
- Stable tag: 1.0.3-beta
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -25,8 +25,6 @@ What makes Breeze WordPress Cache Plugin awesome is that it comes with builtin s
25
 
26
  **Support:** We love to provide support! Post your questions on the WordPress.org support forums, or if you are a Cloudways Customer you may ask questions on the <a href="https://community.cloudways.com/">Cloudways Community Forum</a>.
27
 
28
- **Note:** This plugin is still in Beta phase and this plugin is tested on Cloudways WordPress hosting servers.
29
-
30
  **Special Thanks:** We would like to give special mention to WP Speed Of Light for being an inspiration for Breeze.
31
 
32
  == Installation ==
@@ -106,9 +104,7 @@ If Varnish is active, you will need to exclude URLs and file type(s) in the Varn
106
 
107
  = Does it work with all hosting providers? =
108
 
109
- Breeze is in Beta phase and has not yet been tested on hosting providers other than Cloudways.
110
- However, major Breeze options such as Gzip, browser cache, minification, grouping, database optimization. CDN integration will work as expected on other hosting providers.
111
-
112
 
113
  = Where can I get support for Breeze? =
114
 
@@ -116,6 +112,12 @@ You can get your questions answered on the WordPress support forums. If you are
116
 
117
  == Changelog ==
118
 
 
 
 
 
 
 
119
  = 1.0.3-beta =
120
  * Fix : Disabled browser cache for WooCommerce cart, shop and account pages
121
  * Fix : Removal of htaccess when disabling browser cache and gzip compression options
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: 4.8
6
+ Stable tag: 1.0.4
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
25
 
26
  **Support:** We love to provide support! Post your questions on the WordPress.org support forums, or if you are a Cloudways Customer you may ask questions on the <a href="https://community.cloudways.com/">Cloudways Community Forum</a>.
27
 
 
 
28
  **Special Thanks:** We would like to give special mention to WP Speed Of Light for being an inspiration for Breeze.
29
 
30
  == Installation ==
104
 
105
  = Does it work with all hosting providers? =
106
 
107
+ 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.
 
 
108
 
109
  = Where can I get support for Breeze? =
110
 
112
 
113
  == Changelog ==
114
 
115
+ = 1.0.4 =
116
+ * Fix: Browser Cache issues with WooCommerce session
117
+ * Fix: Clearing Breeze rules from .htaccess upon deactivating of GZIP/Broswer Cache
118
+ * Fix: Regex fix for accepting source url's without quotes while enabling minifcation
119
+ * Add: FAQ section added
120
+
121
  = 1.0.3-beta =
122
  * Fix : Disabled browser cache for WooCommerce cart, shop and account pages
123
  * Fix : Removal of htaccess when disabling browser cache and gzip compression options
views/breeze-setting-views.php CHANGED
@@ -1,10 +1,13 @@
1
  <?php
 
 
2
  $tabs = array(
3
  'basic' => __('BASIC OPTIONS', 'breeze'),
4
  'advanced' => __('ADVANCED OPTIONS', 'breeze'),
5
  'database' => __('DATABASE', 'breeze'),
6
  'cdn' => __('CDN', 'breeze'),
7
  'varnish' => __('VARNISH', 'breeze'),
 
8
  );
9
  ?>
10
  <?php if (isset($_REQUEST['database-cleanup']) && $_REQUEST['database-cleanup'] == 'success'): ?>
@@ -21,10 +24,6 @@ $tabs = array(
21
  </a>
22
  </div>
23
 
24
- <div class="breeze-desc" style="margin-bottom: 10px">
25
- <span><?php _e('This plugin is in Beta phase. Please feel free to report any issues on the WordPress Support Forums or on', 'breeze'); ?></span>
26
- <a href="https://community.cloudways.com/" target="_blank"><?php _e('Cloudways Community Forum', 'breeze') ?></a>
27
- </div>
28
  <h1></h1>
29
 
30
  <div style="clear: both"></div>
@@ -52,13 +51,14 @@ $tabs = array(
52
  <input type="submit" class="button button-primary" value="Optimize"/>
53
  </p>';
54
  }else{
55
- echo '<p class="submit">
56
- <input type="submit" class="button button-primary" value="Save Changes"/>
57
- </p>';
 
 
58
  }
59
  echo '</form>';
60
  echo '</div>';
61
-
62
  }
63
  ?>
64
  </div>
1
  <?php
2
+ defined('ABSPATH') or die;
3
+
4
  $tabs = array(
5
  'basic' => __('BASIC OPTIONS', 'breeze'),
6
  'advanced' => __('ADVANCED OPTIONS', 'breeze'),
7
  'database' => __('DATABASE', 'breeze'),
8
  'cdn' => __('CDN', 'breeze'),
9
  'varnish' => __('VARNISH', 'breeze'),
10
+ 'faq' => __('FAQs', 'breeze'),
11
  );
12
  ?>
13
  <?php if (isset($_REQUEST['database-cleanup']) && $_REQUEST['database-cleanup'] == 'success'): ?>
24
  </a>
25
  </div>
26
 
 
 
 
 
27
  <h1></h1>
28
 
29
  <div style="clear: both"></div>
51
  <input type="submit" class="button button-primary" value="Optimize"/>
52
  </p>';
53
  }else{
54
+ if ($key != 'faq') {
55
+ echo '<p class="submit">
56
+ <input type="submit" class="button button-primary" value="Save Changes"/>
57
+ </p>';
58
+ }
59
  }
60
  echo '</form>';
61
  echo '</div>';
 
62
  }
63
  ?>
64
  </div>
views/tabs/advanced.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $advanced = get_option('breeze_advanced_settings');
3
  ?>
4
  <table cellspacing="15">
1
  <?php
2
+ defined('ABSPATH') or die;
3
+
4
  $advanced = get_option('breeze_advanced_settings');
5
  ?>
6
  <table cellspacing="15">
views/tabs/basic.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $basic = get_option('breeze_basic_settings');
3
  ?>
4
  <table cellspacing="15">
1
  <?php
2
+ defined('ABSPATH') or die;
3
+
4
  $basic = get_option('breeze_basic_settings');
5
  ?>
6
  <table cellspacing="15">
views/tabs/cdn.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $cdn_integration = get_option('breeze_cdn_integration');
3
 
4
  $cdn_content_value = '';
@@ -26,9 +28,9 @@
26
  </td>
27
  <td>
28
  <input type="text" id="cdn-url" name="cdn-url" size="50" placeholder="<?php _e('https://www.domain.com','breeze')?>" value="<?php echo (($cdn_integration['cdn-url'])?esc_html($cdn_integration['cdn-url']):''); ?>"/>
29
- <label style="vertical-align: baseline" class="breeze_tool_tip"><?php _e('Enter the URL of CDN.', 'breeze')?></label>
30
  <br>
31
- <label class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e('Use double slash ‘//’ at the start or url, if you have some pages on HTTP and some are on HTTPS.', 'breeze') ?></label>
32
  </td>
33
  </tr>
34
  <tr>
1
  <?php
2
+ defined('ABSPATH') or die;
3
+
4
  $cdn_integration = get_option('breeze_cdn_integration');
5
 
6
  $cdn_content_value = '';
28
  </td>
29
  <td>
30
  <input type="text" id="cdn-url" name="cdn-url" size="50" placeholder="<?php _e('https://www.domain.com','breeze')?>" value="<?php echo (($cdn_integration['cdn-url'])?esc_html($cdn_integration['cdn-url']):''); ?>"/>
31
+ <label style="vertical-align: baseline" class="breeze_tool_tip"><?php _e('Enter CDN CNAME.', 'breeze')?></label>
32
  <br>
33
+ <label class="breeze_tool_tip"><b>Note:&nbsp;</b><?php _e('Use double slash ‘//’ at the start of CDN CNAME, if you have some pages on HTTP and some are on HTTPS.', 'breeze') ?></label>
34
  </td>
35
  </tr>
36
  <tr>
views/tabs/database.php CHANGED
@@ -1,3 +1,6 @@
 
 
 
1
  <div class="breeze-top-notice">
2
  <label class="breeze_tool_tip"><?php _e('Important: Backup your databases before using the following options!','breeze')?></label>
3
  </div>
1
+ <?php
2
+ defined('ABSPATH') or die;
3
+ ?>
4
  <div class="breeze-top-notice">
5
  <label class="breeze_tool_tip"><?php _e('Important: Backup your databases before using the following options!','breeze')?></label>
6
  </div>
views/tabs/faq.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined('ABSPATH') or die;
3
+
4
+ wp_enqueue_script('jquery-ui', '//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js');
5
+ ?>
6
+ <div id="faq-content">
7
+ <div class="faq-block">
8
+ <h3 class="faq-question"><?php _e('Does Breeze support Varnish and to what extent?', 'breeze') ?></h3>
9
+ <div class="faq-answer">
10
+ <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>
11
+ </div>
12
+ </div>
13
+
14
+ <div class="faq-block">
15
+ <h3 class="faq-question"><?php _e('Does Breeze support WooCommerce?', 'breeze') ?></h3>
16
+ <div class="faq-answer">
17
+ <p><?php _e('Breeze is fully compatible with WooCommerce, out of the box. It does not require any special configurations.', 'breeze') ?></p>
18
+ </div>
19
+ </div>
20
+
21
+ <div class="faq-block">
22
+ <h3 class="faq-question"><?php _e('Does Breeze support WordPress Multisite?', 'breeze') ?></h3>
23
+ <div class="faq-answer">
24
+ <p><?php _e('Breeze is fully compatible with WordPress Multisite without the need for any extra configuration.', 'breeze') ?></p>
25
+ </div>
26
+ </div>
27
+
28
+ <div class="faq-block">
29
+ <h3 class="faq-question"><?php _e('Is Breeze compatible with other WordPress Cache plugins?', 'breeze') ?></h3>
30
+ <div class="faq-answer">
31
+ <p><?php _e('We DO NOT recommend using two WordPress cache plugins at the same time on any WordPress website.', 'breeze') ?></p>
32
+ <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>
33
+ </div>
34
+ </div>
35
+
36
+ <div class="faq-block">
37
+ <h3 class="faq-question"><?php _e('Is Breeze compatible with HTTPS?', 'breeze') ?></h3>
38
+ <div class="faq-answer">
39
+ <p><?php _e('Breeze does not require any special configuration to work with HTTP or HTTPS pages.', 'breeze') ?></p>
40
+ </div>
41
+ </div>
42
+
43
+ <div class="faq-block">
44
+ <h3 class="faq-question"><?php _e('Does Breeze have compatibility issues with other known plugins?', 'breeze') ?></h3>
45
+ <div class="faq-answer">
46
+ <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') ?>
47
+ <a href="https://community.cloudways.com/" target="_blank"><?php _e('Cloudways Community Forum.', 'breeze') ?></a>
48
+ </p>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="faq-block">
53
+ <h3 class="faq-question"><?php _e('Does Breeze support CDN?', 'breeze') ?></h3>
54
+ <div class="faq-answer">
55
+ <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>
56
+ </div>
57
+ </div>
58
+
59
+ <div class="faq-block">
60
+ <h3 class="faq-question"><?php _e('What does Breeze’s Database Optimization feature do?', 'breeze') ?></h3>
61
+ <div class="faq-answer">
62
+ <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>
63
+ <p><?php _e('Breeze’s database optimization cleans out unwanted information in a single click.', 'breeze') ?></p>
64
+ </div>
65
+ </div>
66
+
67
+ <div class="faq-block">
68
+ <h3 class="faq-question"><?php _e('Will comments and other dynamic parts of my blog appear immediately?', 'breeze') ?></h3>
69
+ <div class="faq-answer">
70
+ <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>
71
+ </div>
72
+ </div>
73
+
74
+ <div class="faq-block">
75
+ <h3 class="faq-question"><?php _e('Can I exclude URLs of individual files and pages from cache?', 'breeze') ?></h3>
76
+ <div class="faq-answer">
77
+ <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>
78
+ <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') ?>
79
+ <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>
80
+ </p>
81
+ </div>
82
+ </div>
83
+
84
+ <div class="faq-block">
85
+ <h3 class="faq-question"><?php _e('Does it work with all hosting providers?', 'breeze') ?></h3>
86
+ <div class="faq-answer">
87
+ <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>
88
+ </div>
89
+ </div>
90
+
91
+ <div class="faq-block">
92
+ <h3 class="faq-question"><?php _e('Where can I get support for Breeze?', 'breeze') ?></h3>
93
+ <div class="faq-answer">
94
+ <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') ?>
95
+ <a href="https://community.cloudways.com/" target="_blank"><?php _e('Cloudways Community Forum.', 'breeze') ?></a>
96
+ </p>
97
+ </div>
98
+ </div>
99
+
100
+ <div class="faq-block">
101
+ <h3 class="faq-question"><?php _e('How can I test and verify the results (mentioned on the page)?', 'breeze') ?></h3>
102
+ <div class="faq-answer">
103
+ <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>
104
+ <ul>
105
+ <li><a href="https://developers.google.com/speed/pagespeed/" target="_blank"><?php _e('Google Page Speed', 'breeze') ?></a></li>
106
+ <li><a href="https://www.webpagetest.org/test" target="_blank"><?php _e('WebPagetest', 'breeze') ?></a></li>
107
+ <li><a href="https://tools.pingdom.com/" target="_blank"><?php _e('Pingdom', 'breeze') ?></a></li>
108
+ </ul>
109
+ </div>
110
+ </div>
111
+
112
+ <div class="faq-block">
113
+ <h3 class="faq-question"><?php _e('Does Breeze plugin work with Visual Builder(insert link)?', 'breeze') ?></h3>
114
+ <div class="faq-answer">
115
+ <p><?php _e('Yes, Breeze Plugin is compatible with Visual Builder.', 'breeze') ?></p>
116
+ </div>
117
+ </div>
118
+
119
+ <div class="faq-block">
120
+ <h3 class="faq-question"><?php _e('What popular CDN are supported by Breze Plugin?', 'breeze') ?></h3>
121
+ <div class="faq-answer">
122
+ <p><?php _e('Breeze supports the following three popular CDNs:', 'breeze') ?></p>
123
+ <ul>
124
+ <li><a href="https://support.cloudways.com/how-to-use-breeze-with-maxcdn/" target="_blank"><?php _e('MaxCDN', 'breeze') ?></a></li>
125
+ <li><a href="https://support.cloudways.com/how-to-use-breeze-with-keycdn/" target="_blank"><?php _e('KeyCDN', 'breeze') ?></a></li>
126
+ <li><a href="https://support.cloudways.com/how-to-use-breeze-with-amazon-cloudfront/" target="_blank"><?php _e('Amazon Cloudfront', 'breeze') ?></a></li>
127
+ </ul>
128
+ </div>
129
+ </div>
130
+
131
+ <div class="faq-block">
132
+ <h3 class="faq-question"><?php _e('Does Breeze support Push CDN?', 'breeze') ?></h3>
133
+ <div class="faq-answer">
134
+ <p><?php _e('No, Breeze does not support Push CDN. However, you could use Breeze with Push CDNs using third party plugins.', 'breeze') ?></p>
135
+ </div>
136
+ </div>
137
+
138
+ <div class="faq-block">
139
+ <h3 class="faq-question"><?php _e('Does Breeze Work With CloudFlare?', 'breeze') ?></h3>
140
+ <div class="faq-answer">
141
+ <p><?php _e('Yes. The process of setting up CloudFlare with Breeze is easy. Check out the ', 'breeze') ?>
142
+ <a href="https://support.cloudways.com/can-i-use-cloudflare-cdn/" target="_blank"><?php _e('following KnowledgeBase article for details.', 'breeze') ?></a>
143
+ </p>
144
+ </div>
145
+ </div>
146
+
147
+ <div class="faq-block">
148
+ <h3 class="faq-question"><?php _e('How Breeze cache uses Gzip?', 'breeze') ?></h3>
149
+ <div class="faq-answer">
150
+ <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>
151
+ </div>
152
+ </div>
153
+ </div>
views/tabs/varnish.php CHANGED
@@ -1,6 +1,8 @@
1
  <?php
2
- $varnish = get_option('breeze_varnish_cache');
3
- $check_varnish = Breeze_Admin::check_varnish();
 
 
4
  ?>
5
  <div class="breeze-top-notice">
6
  <label class="breeze_tool_tip"><?php _e('By default Varnish is enabled on all WordPress websites hosted on Cloudways.','breeze')?></label>
1
  <?php
2
+ defined('ABSPATH') or die;
3
+
4
+ $varnish = get_option('breeze_varnish_cache');
5
+ $check_varnish = Breeze_Admin::check_varnish();
6
  ?>
7
  <div class="breeze-top-notice">
8
  <label class="breeze_tool_tip"><?php _e('By default Varnish is enabled on all WordPress websites hosted on Cloudways.','breeze')?></label>