Completed
Push — master ( 8cd4be...fd6893 )
by frank
02:38
created
classes/autoptimizeExtra.php 1 patch
Spacing   +199 added lines, -199 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles autoptimizeExtra frontend features + admin options page
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -28,9 +28,9 @@  discard block
 block discarded – undo
28 28
      *
29 29
      * @param array $options Optional. Allows overriding options without having to specify them via admin options page.
30 30
      */
31
-    public function __construct( $options = array() )
31
+    public function __construct($options = array())
32 32
     {
33
-        if ( empty( $options ) ) {
33
+        if (empty($options)) {
34 34
             $options = self::fetch_options();
35 35
         }
36 36
 
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
      */
48 48
     public static function instance()
49 49
     {
50
-        if ( null === self::$instance ) {
50
+        if (null === self::$instance) {
51 51
             self::$instance = new self();
52 52
         }
53 53
 
@@ -56,19 +56,19 @@  discard block
 block discarded – undo
56 56
 
57 57
     public function run()
58 58
     {
59
-        if ( is_admin() ) {
60
-            if ( is_multisite() && is_network_admin() && autoptimizeOptionWrapper::is_ao_active_for_network() ) {
61
-                add_action( 'network_admin_menu', array( $this, 'admin_menu' ) );
59
+        if (is_admin()) {
60
+            if (is_multisite() && is_network_admin() && autoptimizeOptionWrapper::is_ao_active_for_network()) {
61
+                add_action('network_admin_menu', array($this, 'admin_menu'));
62 62
             } else {
63
-                add_action( 'admin_menu', array( $this, 'admin_menu' ) );
63
+                add_action('admin_menu', array($this, 'admin_menu'));
64 64
             }
65
-            add_filter( 'autoptimize_filter_settingsscreen_tabs', array( $this, 'add_extra_tab' ) );
65
+            add_filter('autoptimize_filter_settingsscreen_tabs', array($this, 'add_extra_tab'));
66 66
         } else {
67
-            add_action( 'wp', array( $this, 'run_on_frontend' ) );
67
+            add_action('wp', array($this, 'run_on_frontend'));
68 68
         }
69 69
     }
70 70
 
71
-    public function set_options( array $options )
71
+    public function set_options(array $options)
72 72
     {
73 73
         $this->options = $options;
74 74
 
@@ -77,8 +77,8 @@  discard block
 block discarded – undo
77 77
 
78 78
     public static function fetch_options()
79 79
     {
80
-        $value = autoptimizeOptionWrapper::get_option( 'autoptimize_extra_settings' );
81
-        if ( empty( $value ) ) {
80
+        $value = autoptimizeOptionWrapper::get_option('autoptimize_extra_settings');
81
+        if (empty($value)) {
82 82
             // Fallback to returning defaults when no stored option exists yet.
83 83
             $value = autoptimizeConfig::get_ao_extra_default_options();
84 84
         }
@@ -89,55 +89,55 @@  discard block
 block discarded – undo
89 89
     public function disable_emojis()
90 90
     {
91 91
         // Removing all actions related to emojis!
92
-        remove_action( 'admin_print_styles', 'print_emoji_styles' );
93
-        remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
94
-        remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
95
-        remove_action( 'wp_print_styles', 'print_emoji_styles' );
96
-        remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
97
-        remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
98
-        remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
92
+        remove_action('admin_print_styles', 'print_emoji_styles');
93
+        remove_action('wp_head', 'print_emoji_detection_script', 7);
94
+        remove_action('admin_print_scripts', 'print_emoji_detection_script');
95
+        remove_action('wp_print_styles', 'print_emoji_styles');
96
+        remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
97
+        remove_filter('the_content_feed', 'wp_staticize_emoji');
98
+        remove_filter('comment_text_rss', 'wp_staticize_emoji');
99 99
 
100 100
         // Removes TinyMCE emojis.
101
-        add_filter( 'tiny_mce_plugins', array( $this, 'filter_disable_emojis_tinymce' ) );
101
+        add_filter('tiny_mce_plugins', array($this, 'filter_disable_emojis_tinymce'));
102 102
 
103 103
         // Removes emoji dns-preftech.
104
-        add_filter( 'wp_resource_hints', array( $this, 'filter_remove_emoji_dns_prefetch' ), 10, 2 );
104
+        add_filter('wp_resource_hints', array($this, 'filter_remove_emoji_dns_prefetch'), 10, 2);
105 105
     }
106 106
 
107
-    public function filter_disable_emojis_tinymce( $plugins )
107
+    public function filter_disable_emojis_tinymce($plugins)
108 108
     {
109
-        if ( is_array( $plugins ) ) {
110
-            return array_diff( $plugins, array( 'wpemoji' ) );
109
+        if (is_array($plugins)) {
110
+            return array_diff($plugins, array('wpemoji'));
111 111
         } else {
112 112
             return array();
113 113
         }
114 114
     }
115 115
 
116
-    public function filter_remove_qs( $src )
116
+    public function filter_remove_qs($src)
117 117
     {
118
-        if ( strpos( $src, '?ver=' ) ) {
119
-            $src = remove_query_arg( 'ver', $src );
118
+        if (strpos($src, '?ver=')) {
119
+            $src = remove_query_arg('ver', $src);
120 120
         }
121 121
 
122 122
         return $src;
123 123
     }
124 124
 
125
-    public function extra_async_js( $in )
125
+    public function extra_async_js($in)
126 126
     {
127 127
         $exclusions = array();
128
-        if ( ! empty( $in ) ) {
129
-            $exclusions = array_fill_keys( array_filter( array_map( 'trim', explode( ',', $in ) ) ), '' );
128
+        if (!empty($in)) {
129
+            $exclusions = array_fill_keys(array_filter(array_map('trim', explode(',', $in))), '');
130 130
         }
131 131
 
132 132
         $settings = $this->options['autoptimize_extra_text_field_3'];
133
-        $async    = array_fill_keys( array_filter( array_map( 'trim', explode( ',', $settings ) ) ), '' );
134
-        $attr     = apply_filters( 'autoptimize_filter_extra_async', 'async' );
135
-        foreach ( $async as $k => $v ) {
136
-            $async[ $k ] = $attr;
133
+        $async    = array_fill_keys(array_filter(array_map('trim', explode(',', $settings))), '');
134
+        $attr     = apply_filters('autoptimize_filter_extra_async', 'async');
135
+        foreach ($async as $k => $v) {
136
+            $async[$k] = $attr;
137 137
         }
138 138
 
139 139
         // Merge exclusions & asyncs in one array and return to AO API.
140
-        $merged = array_merge( $exclusions, $async );
140
+        $merged = array_merge($exclusions, $async);
141 141
 
142 142
         return $merged;
143 143
     }
@@ -148,68 +148,68 @@  discard block
 block discarded – undo
148 148
         // for optimizations are met, this to ensure e.g. removing querystrings
149 149
         // is not done when optimizing for logged in users is off, breaking
150 150
         // some pagebuilders (Divi & Elementor).
151
-        if ( false === autoptimizeMain::should_buffer() ) {
151
+        if (false === autoptimizeMain::should_buffer()) {
152 152
             return;
153 153
         }
154 154
 
155 155
         $options = $this->options;
156 156
 
157 157
         // Disable emojis if specified.
158
-        if ( ! empty( $options['autoptimize_extra_checkbox_field_1'] ) ) {
158
+        if (!empty($options['autoptimize_extra_checkbox_field_1'])) {
159 159
             $this->disable_emojis();
160 160
         }
161 161
 
162 162
         // Remove version query parameters.
163
-        if ( ! empty( $options['autoptimize_extra_checkbox_field_0'] ) ) {
164
-            add_filter( 'script_loader_src', array( $this, 'filter_remove_qs' ), 15, 1 );
165
-            add_filter( 'style_loader_src', array( $this, 'filter_remove_qs' ), 15, 1 );
163
+        if (!empty($options['autoptimize_extra_checkbox_field_0'])) {
164
+            add_filter('script_loader_src', array($this, 'filter_remove_qs'), 15, 1);
165
+            add_filter('style_loader_src', array($this, 'filter_remove_qs'), 15, 1);
166 166
         }
167 167
 
168 168
         // Avoiding conflicts of interest when async-javascript plugin is active!
169
-        $async_js_plugin_active = autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' );
170
-        if ( ! empty( $options['autoptimize_extra_text_field_3'] ) && ! $async_js_plugin_active ) {
171
-            add_filter( 'autoptimize_filter_js_exclude', array( $this, 'extra_async_js' ), 10, 1 );
169
+        $async_js_plugin_active = autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php');
170
+        if (!empty($options['autoptimize_extra_text_field_3']) && !$async_js_plugin_active) {
171
+            add_filter('autoptimize_filter_js_exclude', array($this, 'extra_async_js'), 10, 1);
172 172
         }
173 173
 
174 174
         // Optimize google fonts!
175
-        if ( ! empty( $options['autoptimize_extra_radio_field_4'] ) && ( '1' !== $options['autoptimize_extra_radio_field_4'] ) ) {
176
-            add_filter( 'wp_resource_hints', array( $this, 'filter_remove_gfonts_dnsprefetch' ), 10, 2 );
177
-            add_filter( 'autoptimize_html_after_minify', array( $this, 'filter_optimize_google_fonts' ), 10, 1 );
178
-            add_filter( 'autoptimize_extra_filter_tobepreconn', array( $this, 'filter_preconnect_google_fonts' ), 10, 1 );
175
+        if (!empty($options['autoptimize_extra_radio_field_4']) && ('1' !== $options['autoptimize_extra_radio_field_4'])) {
176
+            add_filter('wp_resource_hints', array($this, 'filter_remove_gfonts_dnsprefetch'), 10, 2);
177
+            add_filter('autoptimize_html_after_minify', array($this, 'filter_optimize_google_fonts'), 10, 1);
178
+            add_filter('autoptimize_extra_filter_tobepreconn', array($this, 'filter_preconnect_google_fonts'), 10, 1);
179 179
         }
180 180
 
181 181
         // Preconnect!
182
-        if ( ! empty( $options['autoptimize_extra_text_field_2'] ) || has_filter( 'autoptimize_extra_filter_tobepreconn' ) ) {
183
-            add_filter( 'wp_resource_hints', array( $this, 'filter_preconnect' ), 10, 2 );
182
+        if (!empty($options['autoptimize_extra_text_field_2']) || has_filter('autoptimize_extra_filter_tobepreconn')) {
183
+            add_filter('wp_resource_hints', array($this, 'filter_preconnect'), 10, 2);
184 184
         }
185 185
 
186 186
         // Preload!
187
-        if ( ! empty( $options['autoptimize_extra_text_field_7'] ) || has_filter( 'autoptimize_filter_extra_tobepreloaded' ) ) {
188
-            add_filter( 'autoptimize_html_after_minify', array( $this, 'filter_preload' ), 10, 2 );
187
+        if (!empty($options['autoptimize_extra_text_field_7']) || has_filter('autoptimize_filter_extra_tobepreloaded')) {
188
+            add_filter('autoptimize_html_after_minify', array($this, 'filter_preload'), 10, 2);
189 189
         }
190 190
     }
191 191
 
192
-    public function filter_remove_emoji_dns_prefetch( $urls, $relation_type )
192
+    public function filter_remove_emoji_dns_prefetch($urls, $relation_type)
193 193
     {
194
-        $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/' );
194
+        $emoji_svg_url = apply_filters('emoji_svg_url', 'https://s.w.org/images/core/emoji/');
195 195
 
196
-        return $this->filter_remove_dns_prefetch( $urls, $relation_type, $emoji_svg_url );
196
+        return $this->filter_remove_dns_prefetch($urls, $relation_type, $emoji_svg_url);
197 197
     }
198 198
 
199
-    public function filter_remove_gfonts_dnsprefetch( $urls, $relation_type )
199
+    public function filter_remove_gfonts_dnsprefetch($urls, $relation_type)
200 200
     {
201
-        return $this->filter_remove_dns_prefetch( $urls, $relation_type, 'fonts.googleapis.com' );
201
+        return $this->filter_remove_dns_prefetch($urls, $relation_type, 'fonts.googleapis.com');
202 202
     }
203 203
 
204
-    public function filter_remove_dns_prefetch( $urls, $relation_type, $url_to_remove )
204
+    public function filter_remove_dns_prefetch($urls, $relation_type, $url_to_remove)
205 205
     {
206 206
         $url_to_remove = (string) $url_to_remove;
207 207
 
208
-        if ( ! empty( $url_to_remove ) && 'dns-prefetch' === $relation_type ) {
208
+        if (!empty($url_to_remove) && 'dns-prefetch' === $relation_type) {
209 209
             $cnt = 0;
210
-            foreach ( $urls as $url ) {
211
-                if ( false !== strpos( $url, $url_to_remove ) ) {
212
-                    unset( $urls[ $cnt ] );
210
+            foreach ($urls as $url) {
211
+                if (false !== strpos($url, $url_to_remove)) {
212
+                    unset($urls[$cnt]);
213 213
                 }
214 214
                 $cnt++;
215 215
             }
@@ -218,153 +218,153 @@  discard block
 block discarded – undo
218 218
         return $urls;
219 219
     }
220 220
 
221
-    public function filter_optimize_google_fonts( $in )
221
+    public function filter_optimize_google_fonts($in)
222 222
     {
223 223
         // Extract fonts, partly based on wp rocket's extraction code.
224
-        $markup = preg_replace( '/<!--(.*)-->/Uis', '', $in );
225
-        preg_match_all( '#<link(?:\s+(?:(?!href\s*=\s*)[^>])+)?(?:\s+href\s*=\s*([\'"])((?:https?:)?\/\/fonts\.googleapis\.com\/css(?:(?!\1).)+)\1)(?:\s+[^>]*)?>#iU', $markup, $matches );
224
+        $markup = preg_replace('/<!--(.*)-->/Uis', '', $in);
225
+        preg_match_all('#<link(?:\s+(?:(?!href\s*=\s*)[^>])+)?(?:\s+href\s*=\s*([\'"])((?:https?:)?\/\/fonts\.googleapis\.com\/css(?:(?!\1).)+)\1)(?:\s+[^>]*)?>#iU', $markup, $matches);
226 226
 
227 227
         $fonts_collection = array();
228
-        if ( ! $matches[2] ) {
228
+        if (!$matches[2]) {
229 229
             return $in;
230 230
         }
231 231
 
232 232
         // Store them in $fonts array.
233 233
         $i = 0;
234
-        foreach ( $matches[2] as $font ) {
235
-            if ( ! preg_match( '/rel=["\']dns-prefetch["\']/', $matches[0][ $i ] ) ) {
234
+        foreach ($matches[2] as $font) {
235
+            if (!preg_match('/rel=["\']dns-prefetch["\']/', $matches[0][$i])) {
236 236
                 // Get fonts name.
237
-                $font = str_replace( array( '%7C', '%7c' ), '|', $font );
238
-                if ( strpos( $font, 'fonts.googleapis.com/css2' ) !== false ) {
237
+                $font = str_replace(array('%7C', '%7c'), '|', $font);
238
+                if (strpos($font, 'fonts.googleapis.com/css2') !== false) {
239 239
                     // (Somewhat) change Google Fonts APIv2 syntax back to v1.
240 240
                     // todo: support for 100..900
241
-                    $font = rawurldecode( $font );
242
-                    $font = str_replace( array( 'css2?', 'ital,wght@', 'wght@', 'ital@', '0,', '1,', ':1', ';', '&family=' ), array( 'css?', '', '', '', '', 'italic', ':italic', ',', '%7C' ), $font );
241
+                    $font = rawurldecode($font);
242
+                    $font = str_replace(array('css2?', 'ital,wght@', 'wght@', 'ital@', '0,', '1,', ':1', ';', '&family='), array('css?', '', '', '', '', 'italic', ':italic', ',', '%7C'), $font);
243 243
                 }
244
-                $font = explode( 'family=', $font );
245
-                $font = ( isset( $font[1] ) ) ? explode( '&', $font[1] ) : array();
244
+                $font = explode('family=', $font);
245
+                $font = (isset($font[1])) ? explode('&', $font[1]) : array();
246 246
                 // Add font to $fonts[$i] but make sure not to pollute with an empty family!
247
-                $_thisfont = array_values( array_filter( explode( '|', reset( $font ) ) ) );
248
-                if ( ! empty( $_thisfont ) ) {
249
-                    $fonts_collection[ $i ]['fonts'] = $_thisfont;
247
+                $_thisfont = array_values(array_filter(explode('|', reset($font))));
248
+                if (!empty($_thisfont)) {
249
+                    $fonts_collection[$i]['fonts'] = $_thisfont;
250 250
                     // And add subset if any!
251
-                    $subset = ( is_array( $font ) ) ? end( $font ) : '';
252
-                    if ( false !== strpos( $subset, 'subset=' ) ) {
253
-                        $subset                            = str_replace( array( '%2C', '%2c' ), ',', $subset );
254
-                        $subset                            = explode( 'subset=', $subset );
255
-                        $fonts_collection[ $i ]['subsets'] = explode( ',', $subset[1] );
251
+                    $subset = (is_array($font)) ? end($font) : '';
252
+                    if (false !== strpos($subset, 'subset=')) {
253
+                        $subset                            = str_replace(array('%2C', '%2c'), ',', $subset);
254
+                        $subset                            = explode('subset=', $subset);
255
+                        $fonts_collection[$i]['subsets'] = explode(',', $subset[1]);
256 256
                     }
257 257
                 }
258 258
                 // And remove Google Fonts.
259
-                $in = str_replace( $matches[0][ $i ], '', $in );
259
+                $in = str_replace($matches[0][$i], '', $in);
260 260
             }
261 261
             $i++;
262 262
         }
263 263
 
264 264
         $options      = $this->options;
265 265
         $fonts_markup = '';
266
-        if ( '2' === $options['autoptimize_extra_radio_field_4'] ) {
266
+        if ('2' === $options['autoptimize_extra_radio_field_4']) {
267 267
             // Remove Google Fonts.
268
-            unset( $fonts_collection );
268
+            unset($fonts_collection);
269 269
             return $in;
270
-        } elseif ( '3' === $options['autoptimize_extra_radio_field_4'] || '5' === $options['autoptimize_extra_radio_field_4'] ) {
270
+        } elseif ('3' === $options['autoptimize_extra_radio_field_4'] || '5' === $options['autoptimize_extra_radio_field_4']) {
271 271
             // Aggregate & link!
272 272
             $fonts_string  = '';
273 273
             $subset_string = '';
274
-            foreach ( $fonts_collection as $font ) {
275
-                $fonts_string .= '|' . trim( implode( '|', $font['fonts'] ), '|' );
276
-                if ( ! empty( $font['subsets'] ) ) {
277
-                    $subset_string .= ',' . trim( implode( ',', $font['subsets'] ), ',' );
274
+            foreach ($fonts_collection as $font) {
275
+                $fonts_string .= '|'.trim(implode('|', $font['fonts']), '|');
276
+                if (!empty($font['subsets'])) {
277
+                    $subset_string .= ','.trim(implode(',', $font['subsets']), ',');
278 278
                 }
279 279
             }
280 280
 
281
-            if ( ! empty( $subset_string ) ) {
282
-                $subset_string = str_replace( ',', '%2C', ltrim( $subset_string, ',' ) );
283
-                $fonts_string  = $fonts_string . '&#038;subset=' . $subset_string;
281
+            if (!empty($subset_string)) {
282
+                $subset_string = str_replace(',', '%2C', ltrim($subset_string, ','));
283
+                $fonts_string  = $fonts_string.'&#038;subset='.$subset_string;
284 284
             }
285 285
 
286
-            $fonts_string = apply_filters( 'autoptimize_filter_extra_gfont_fontstring', str_replace( '|', '%7C', ltrim( $fonts_string, '|' ) ) );
286
+            $fonts_string = apply_filters('autoptimize_filter_extra_gfont_fontstring', str_replace('|', '%7C', ltrim($fonts_string, '|')));
287 287
             // only add display parameter if there is none in $fonts_string (by virtue of the filter).
288
-            if ( strpos( $fonts_string, 'display=' ) === false ) {
289
-                $fonts_string .= apply_filters( 'autoptimize_filter_extra_gfont_display', '&amp;display=swap' );
288
+            if (strpos($fonts_string, 'display=') === false) {
289
+                $fonts_string .= apply_filters('autoptimize_filter_extra_gfont_display', '&amp;display=swap');
290 290
             }
291 291
 
292
-            if ( ! empty( $fonts_string ) ) {
293
-                if ( '5' === $options['autoptimize_extra_radio_field_4'] ) {
294
-                    $rel_string = 'rel="stylesheet" media="print" onload="' . autoptimizeConfig::get_ao_css_preload_onload() . '"';
292
+            if (!empty($fonts_string)) {
293
+                if ('5' === $options['autoptimize_extra_radio_field_4']) {
294
+                    $rel_string = 'rel="stylesheet" media="print" onload="'.autoptimizeConfig::get_ao_css_preload_onload().'"';
295 295
                 } else {
296 296
                     $rel_string = 'rel="stylesheet"';
297 297
                 }
298
-                $fonts_markup = '<link ' . $rel_string . ' id="ao_optimized_gfonts" href="https://fonts.googleapis.com/css?family=' . $fonts_string . '" />';
298
+                $fonts_markup = '<link '.$rel_string.' id="ao_optimized_gfonts" href="https://fonts.googleapis.com/css?family='.$fonts_string.'" />';
299 299
             }
300
-        } elseif ( '4' === $options['autoptimize_extra_radio_field_4'] ) {
300
+        } elseif ('4' === $options['autoptimize_extra_radio_field_4']) {
301 301
             // Aggregate & load async (webfont.js impl.)!
302 302
             $fonts_array = array();
303
-            foreach ( $fonts_collection as $_fonts ) {
304
-                if ( ! empty( $_fonts['subsets'] ) ) {
305
-                    $_subset = implode( ',', $_fonts['subsets'] );
306
-                    foreach ( $_fonts['fonts'] as $key => $_one_font ) {
307
-                        $_one_font               = $_one_font . ':' . $_subset;
308
-                        $_fonts['fonts'][ $key ] = $_one_font;
303
+            foreach ($fonts_collection as $_fonts) {
304
+                if (!empty($_fonts['subsets'])) {
305
+                    $_subset = implode(',', $_fonts['subsets']);
306
+                    foreach ($_fonts['fonts'] as $key => $_one_font) {
307
+                        $_one_font               = $_one_font.':'.$_subset;
308
+                        $_fonts['fonts'][$key] = $_one_font;
309 309
                     }
310 310
                 }
311
-                $fonts_array = array_merge( $fonts_array, $_fonts['fonts'] );
311
+                $fonts_array = array_merge($fonts_array, $_fonts['fonts']);
312 312
             }
313 313
 
314
-            $fonts_array = array_map( 'urldecode', $fonts_array );
314
+            $fonts_array = array_map('urldecode', $fonts_array);
315 315
             $fonts_array = array_map(
316
-                function( $_f ) {
317
-                    return trim( $_f, ',' );
316
+                function($_f) {
317
+                    return trim($_f, ',');
318 318
                 },
319 319
                 $fonts_array
320 320
             );
321 321
 
322 322
             // type attrib on <script not added by default.
323 323
             $type_js = '';
324
-            if ( apply_filters( 'autoptimize_filter_cssjs_addtype', false ) ) {
324
+            if (apply_filters('autoptimize_filter_cssjs_addtype', false)) {
325 325
                 $type_js = 'type="text/javascript" ';
326 326
             }
327 327
 
328
-            $fonts_markup         = '<script ' . $type_js . 'data-cfasync="false" id="ao_optimized_gfonts_config">WebFontConfig={google:{families:' . wp_json_encode( $fonts_array ) . ' },classes:false, events:false, timeout:1500};</script>';
329
-            $fonts_library_markup = '<script ' . $type_js . 'data-cfasync="false" id="ao_optimized_gfonts_webfontloader">(function() {var wf = document.createElement(\'script\');wf.src=\'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js\';wf.type=\'text/javascript\';wf.async=\'true\';var s=document.getElementsByTagName(\'script\')[0];s.parentNode.insertBefore(wf, s);})();</script>';
330
-            $in                   = substr_replace( $in, $fonts_library_markup . '</head>', strpos( $in, '</head>' ), strlen( '</head>' ) );
328
+            $fonts_markup         = '<script '.$type_js.'data-cfasync="false" id="ao_optimized_gfonts_config">WebFontConfig={google:{families:'.wp_json_encode($fonts_array).' },classes:false, events:false, timeout:1500};</script>';
329
+            $fonts_library_markup = '<script '.$type_js.'data-cfasync="false" id="ao_optimized_gfonts_webfontloader">(function() {var wf = document.createElement(\'script\');wf.src=\'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js\';wf.type=\'text/javascript\';wf.async=\'true\';var s=document.getElementsByTagName(\'script\')[0];s.parentNode.insertBefore(wf, s);})();</script>';
330
+            $in                   = substr_replace($in, $fonts_library_markup.'</head>', strpos($in, '</head>'), strlen('</head>'));
331 331
         }
332 332
 
333 333
         // Replace back in markup.
334
-        $inject_point = apply_filters( 'autoptimize_filter_extra_gfont_injectpoint', '<link' );
335
-        $out          = substr_replace( $in, $fonts_markup . $inject_point, strpos( $in, $inject_point ), strlen( $inject_point ) );
336
-        unset( $fonts_collection );
334
+        $inject_point = apply_filters('autoptimize_filter_extra_gfont_injectpoint', '<link');
335
+        $out          = substr_replace($in, $fonts_markup.$inject_point, strpos($in, $inject_point), strlen($inject_point));
336
+        unset($fonts_collection);
337 337
 
338 338
         return $out;
339 339
     }
340 340
 
341
-    public function filter_preconnect( $hints, $relation_type )
341
+    public function filter_preconnect($hints, $relation_type)
342 342
     {
343 343
         $options  = $this->options;
344 344
         $preconns = array();
345 345
 
346 346
         // Get settings and store in array.
347
-        if ( array_key_exists( 'autoptimize_extra_text_field_2', $options ) ) {
348
-            $preconns = array_filter( array_map( 'trim', explode( ',', $options['autoptimize_extra_text_field_2'] ) ) );
347
+        if (array_key_exists('autoptimize_extra_text_field_2', $options)) {
348
+            $preconns = array_filter(array_map('trim', explode(',', $options['autoptimize_extra_text_field_2'])));
349 349
         }
350
-        $preconns = apply_filters( 'autoptimize_extra_filter_tobepreconn', $preconns );
350
+        $preconns = apply_filters('autoptimize_extra_filter_tobepreconn', $preconns);
351 351
 
352 352
         // Walk array, extract domain and add to new array with crossorigin attribute.
353
-        foreach ( $preconns as $preconn ) {
353
+        foreach ($preconns as $preconn) {
354 354
             $domain = '';
355
-            $parsed = parse_url( $preconn );
356
-            if ( is_array( $parsed ) && ! empty( $parsed['host'] ) && empty( $parsed['scheme'] ) ) {
357
-                $domain = '//' . $parsed['host'];
358
-            } elseif ( is_array( $parsed ) && ! empty( $parsed['host'] ) ) {
359
-                $domain = $parsed['scheme'] . '://' . $parsed['host'];
355
+            $parsed = parse_url($preconn);
356
+            if (is_array($parsed) && !empty($parsed['host']) && empty($parsed['scheme'])) {
357
+                $domain = '//'.$parsed['host'];
358
+            } elseif (is_array($parsed) && !empty($parsed['host'])) {
359
+                $domain = $parsed['scheme'].'://'.$parsed['host'];
360 360
             }
361 361
 
362
-            if ( ! empty( $domain ) ) {
363
-                $hint = array( 'href' => $domain );
362
+            if (!empty($domain)) {
363
+                $hint = array('href' => $domain);
364 364
                 // Fonts don't get preconnected unless crossorigin flag is set, non-fonts don't get preconnected if origin flag is set
365 365
                 // so hardcode fonts.gstatic.com to come with crossorigin and have filter to add other domains if needed.
366
-                $crossorigins = apply_filters( 'autoptimize_extra_filter_preconn_crossorigin', array( 'https://fonts.gstatic.com' ) );
367
-                if ( in_array( $domain, $crossorigins ) ) {
366
+                $crossorigins = apply_filters('autoptimize_extra_filter_preconn_crossorigin', array('https://fonts.gstatic.com'));
367
+                if (in_array($domain, $crossorigins)) {
368 368
                     $hint['crossorigin'] = 'anonymous';
369 369
                 }
370 370
                 $new_hints[] = $hint;
@@ -372,21 +372,21 @@  discard block
 block discarded – undo
372 372
         }
373 373
 
374 374
         // Merge in WP's preconnect hints.
375
-        if ( 'preconnect' === $relation_type && ! empty( $new_hints ) ) {
376
-            $hints = array_merge( $hints, $new_hints );
375
+        if ('preconnect' === $relation_type && !empty($new_hints)) {
376
+            $hints = array_merge($hints, $new_hints);
377 377
         }
378 378
 
379 379
         return $hints;
380 380
     }
381 381
 
382
-    public function filter_preconnect_google_fonts( $in )
382
+    public function filter_preconnect_google_fonts($in)
383 383
     {
384
-        if ( '2' !== $this->options['autoptimize_extra_radio_field_4'] ) {
384
+        if ('2' !== $this->options['autoptimize_extra_radio_field_4']) {
385 385
             // Preconnect to fonts.gstatic.com unless we remove gfonts.
386 386
             $in[] = 'https://fonts.gstatic.com';
387 387
         }
388 388
 
389
-        if ( '4' === $this->options['autoptimize_extra_radio_field_4'] ) {
389
+        if ('4' === $this->options['autoptimize_extra_radio_field_4']) {
390 390
             // Preconnect even more hosts for webfont.js!
391 391
             $in[] = 'https://ajax.googleapis.com';
392 392
             $in[] = 'https://fonts.googleapis.com';
@@ -395,76 +395,76 @@  discard block
 block discarded – undo
395 395
         return $in;
396 396
     }
397 397
 
398
-    public function filter_preload( $in ) {
398
+    public function filter_preload($in) {
399 399
         // make array from comma separated list.
400 400
         $options  = $this->options;
401 401
         $preloads = array();
402
-        if ( array_key_exists( 'autoptimize_extra_text_field_7', $options ) ) {
403
-            $preloads = array_filter( array_map( 'trim', explode( ',', $options['autoptimize_extra_text_field_7'] ) ) );
402
+        if (array_key_exists('autoptimize_extra_text_field_7', $options)) {
403
+            $preloads = array_filter(array_map('trim', explode(',', $options['autoptimize_extra_text_field_7'])));
404 404
         }
405
-        $preloads = apply_filters( 'autoptimize_filter_extra_tobepreloaded', $preloads );
405
+        $preloads = apply_filters('autoptimize_filter_extra_tobepreloaded', $preloads);
406 406
 
407 407
         // immediately return if nothing to be preloaded.
408
-        if ( empty( $preloads ) ) {
408
+        if (empty($preloads)) {
409 409
             return $in;
410 410
         }
411 411
 
412 412
         // iterate through array and add preload link to tmp string.
413 413
         $preload_output = '';
414
-        foreach ( $preloads as $preload ) {
414
+        foreach ($preloads as $preload) {
415 415
             $crossorigin = '';
416 416
             $preload_as  = '';
417 417
             $mime_type   = '';
418
-            $_preload    = strtok( $preload, '?' );
418
+            $_preload    = strtok($preload, '?');
419 419
 
420
-            if ( autoptimizeUtils::str_ends_in( $_preload, '.css' ) ) {
420
+            if (autoptimizeUtils::str_ends_in($_preload, '.css')) {
421 421
                 $preload_as = 'style';
422
-            } elseif ( autoptimizeUtils::str_ends_in( $_preload, '.js' ) ) {
422
+            } elseif (autoptimizeUtils::str_ends_in($_preload, '.js')) {
423 423
                 $preload_as = 'script';
424
-            } elseif ( autoptimizeUtils::str_ends_in( $_preload, '.woff' ) || autoptimizeUtils::str_ends_in( $_preload, '.woff2' ) || autoptimizeUtils::str_ends_in( $_preload, '.ttf' ) || autoptimizeUtils::str_ends_in( $_preload, '.eot' ) || autoptimizeUtils::str_ends_in( $_preload, '.otf' ) ) {
424
+            } elseif (autoptimizeUtils::str_ends_in($_preload, '.woff') || autoptimizeUtils::str_ends_in($_preload, '.woff2') || autoptimizeUtils::str_ends_in($_preload, '.ttf') || autoptimizeUtils::str_ends_in($_preload, '.eot') || autoptimizeUtils::str_ends_in($_preload, '.otf')) {
425 425
                 $preload_as  = 'font';
426 426
                 $crossorigin = ' crossorigin';
427
-                $mime_type   = ' type="font/' . pathinfo( $_preload, PATHINFO_EXTENSION ) . '"';
428
-                if ( ' type="font/eot"' === $mime_type ) {
427
+                $mime_type   = ' type="font/'.pathinfo($_preload, PATHINFO_EXTENSION).'"';
428
+                if (' type="font/eot"' === $mime_type) {
429 429
                     $mime_type = 'application/vnd.ms-fontobject';
430 430
                 }
431
-            } elseif ( autoptimizeUtils::str_ends_in( $_preload, '.jpeg' ) || autoptimizeUtils::str_ends_in( $_preload, '.jpg' ) || autoptimizeUtils::str_ends_in( $_preload, '.webp' ) || autoptimizeUtils::str_ends_in( $_preload, '.png' ) || autoptimizeUtils::str_ends_in( $_preload, '.gif' ) ) {
431
+            } elseif (autoptimizeUtils::str_ends_in($_preload, '.jpeg') || autoptimizeUtils::str_ends_in($_preload, '.jpg') || autoptimizeUtils::str_ends_in($_preload, '.webp') || autoptimizeUtils::str_ends_in($_preload, '.png') || autoptimizeUtils::str_ends_in($_preload, '.gif')) {
432 432
                 $preload_as = 'image';
433 433
             } else {
434 434
                 $preload_as = 'other';
435 435
             }
436 436
 
437
-            $preload_output .= '<link rel="preload" href="' . $preload . '" as="' . $preload_as . '"' . $mime_type . $crossorigin . '>';
437
+            $preload_output .= '<link rel="preload" href="'.$preload.'" as="'.$preload_as.'"'.$mime_type.$crossorigin.'>';
438 438
         }
439
-        $preload_output = apply_filters( 'autoptimize_filter_extra_preload_output', $preload_output );
439
+        $preload_output = apply_filters('autoptimize_filter_extra_preload_output', $preload_output);
440 440
 
441 441
         // add string to head (before first link node by default).
442
-        $preload_inject = apply_filters( 'autoptimize_filter_extra_preload_inject', '<link' );
443
-        $position       = autoptimizeUtils::strpos( $in, $preload_inject );
442
+        $preload_inject = apply_filters('autoptimize_filter_extra_preload_inject', '<link');
443
+        $position       = autoptimizeUtils::strpos($in, $preload_inject);
444 444
 
445
-        return autoptimizeUtils::substr_replace( $in, $preload_output . $preload_inject, $position, strlen( $preload_inject ) );
445
+        return autoptimizeUtils::substr_replace($in, $preload_output.$preload_inject, $position, strlen($preload_inject));
446 446
     }
447 447
 
448 448
     public function admin_menu()
449 449
     {
450 450
         // no acces if multisite and not network admin and no site config allowed.
451
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
451
+        if (autoptimizeConfig::should_show_menu_tabs()) {
452 452
             add_submenu_page(
453 453
                 null,
454 454
                 'autoptimize_extra',
455 455
                 'autoptimize_extra',
456 456
                 'manage_options',
457 457
                 'autoptimize_extra',
458
-                array( $this, 'options_page' )
458
+                array($this, 'options_page')
459 459
             );
460 460
         }
461
-        register_setting( 'autoptimize_extra_settings', 'autoptimize_extra_settings' );
461
+        register_setting('autoptimize_extra_settings', 'autoptimize_extra_settings');
462 462
     }
463 463
 
464
-    public function add_extra_tab( $in )
464
+    public function add_extra_tab($in)
465 465
     {
466
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
467
-            $in = array_merge( $in, array( 'autoptimize_extra' => __( 'Extra', 'autoptimize' ) ) );
466
+        if (autoptimizeConfig::should_show_menu_tabs()) {
467
+            $in = array_merge($in, array('autoptimize_extra' => __('Extra', 'autoptimize')));
468 468
         }
469 469
 
470 470
         return $in;
@@ -484,97 +484,97 @@  discard block
 block discarded – undo
484 484
         #ao_settings_form .form-table th {font-weight: normal;}
485 485
         #autoptimize_extra_descr{font-size: 120%;}
486 486
     </style>
487
-    <script>document.title = "Autoptimize: <?php _e( 'Extra', 'autoptimize' ); ?> " + document.title;</script>
487
+    <script>document.title = "Autoptimize: <?php _e('Extra', 'autoptimize'); ?> " + document.title;</script>
488 488
     <div class="wrap">
489
-    <h1><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?></h1>
489
+    <h1><?php _e('Autoptimize Settings', 'autoptimize'); ?></h1>
490 490
         <?php echo autoptimizeConfig::ao_admin_tabs(); ?>
491
-        <?php if ( 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_js' ) && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_css' ) && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_html' ) && ! autoptimizeImages::imgopt_active() ) { ?>
491
+        <?php if ('on' !== autoptimizeOptionWrapper::get_option('autoptimize_js') && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_css') && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_html') && !autoptimizeImages::imgopt_active()) { ?>
492 492
             <div class="notice-warning notice"><p>
493
-            <?php _e( 'Most of below Extra optimizations require at least one of HTML, JS, CSS or Image autoptimizations being active.', 'autoptimize' ); ?>
493
+            <?php _e('Most of below Extra optimizations require at least one of HTML, JS, CSS or Image autoptimizations being active.', 'autoptimize'); ?>
494 494
             </p></div>
495 495
         <?php } ?>
496 496
 
497
-    <form id='ao_settings_form' action='<?php echo admin_url( 'options.php' ); ?>' method='post'>
498
-        <?php settings_fields( 'autoptimize_extra_settings' ); ?>
499
-        <h2><?php _e( 'Extra Auto-Optimizations', 'autoptimize' ); ?></h2>
500
-        <span id='autoptimize_extra_descr'><?php _e( 'The following settings can improve your site\'s performance even more.', 'autoptimize' ); ?></span>
497
+    <form id='ao_settings_form' action='<?php echo admin_url('options.php'); ?>' method='post'>
498
+        <?php settings_fields('autoptimize_extra_settings'); ?>
499
+        <h2><?php _e('Extra Auto-Optimizations', 'autoptimize'); ?></h2>
500
+        <span id='autoptimize_extra_descr'><?php _e('The following settings can improve your site\'s performance even more.', 'autoptimize'); ?></span>
501 501
         <table class="form-table">
502 502
             <tr>
503
-                <th scope="row"><?php _e( 'Google Fonts', 'autoptimize' ); ?></th>
503
+                <th scope="row"><?php _e('Google Fonts', 'autoptimize'); ?></th>
504 504
                 <td>
505
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="1" <?php if ( ! in_array( $gfonts, array( 2, 3, 4, 5 ) ) ) { echo 'checked'; } ?> ><?php _e( 'Leave as is', 'autoptimize' ); ?><br/>
506
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="2" <?php checked( 2, $gfonts, true ); ?> ><?php _e( 'Remove Google Fonts', 'autoptimize' ); ?><br/>
505
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="1" <?php if (!in_array($gfonts, array(2, 3, 4, 5))) { echo 'checked'; } ?> ><?php _e('Leave as is', 'autoptimize'); ?><br/>
506
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="2" <?php checked(2, $gfonts, true); ?> ><?php _e('Remove Google Fonts', 'autoptimize'); ?><br/>
507 507
                     <?php // translators: "display:swap" should remain untranslated, will be shown in code tags. ?>
508
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="3" <?php checked( 3, $gfonts, true ); ?> ><?php echo __( 'Combine and link in head (fonts load fast but are render-blocking)', 'autoptimize' ) . ', ' . sprintf( __( 'includes %1$sdisplay:swap%2$s.', 'autoptimize' ), '<code>', '</code>' ); ?><br/>
508
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="3" <?php checked(3, $gfonts, true); ?> ><?php echo __('Combine and link in head (fonts load fast but are render-blocking)', 'autoptimize').', '.sprintf(__('includes %1$sdisplay:swap%2$s.', 'autoptimize'), '<code>', '</code>'); ?><br/>
509 509
                     <?php // translators: "display:swap" should remain untranslated, will be shown in code tags. ?>
510
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="5" <?php checked( 5, $gfonts, true ); ?> ><?php echo __( 'Combine and link deferred in head (fonts load late, but are not render-blocking)', 'autoptimize' ) . ', ' . sprintf( __( 'includes %1$sdisplay:swap%2$s.', 'autoptimize' ), '<code>', '</code>' ); ?><br/>
511
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="4" <?php checked( 4, $gfonts, true ); ?> ><?php echo __( 'Combine and load fonts asynchronously with <a href="https://github.com/typekit/webfontloader#readme" target="_blank">webfont.js</a>', 'autoptimize' ) . ' ' . __( '(deprecated)', 'autoptimize' ); ?><br/>
510
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="5" <?php checked(5, $gfonts, true); ?> ><?php echo __('Combine and link deferred in head (fonts load late, but are not render-blocking)', 'autoptimize').', '.sprintf(__('includes %1$sdisplay:swap%2$s.', 'autoptimize'), '<code>', '</code>'); ?><br/>
511
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="4" <?php checked(4, $gfonts, true); ?> ><?php echo __('Combine and load fonts asynchronously with <a href="https://github.com/typekit/webfontloader#readme" target="_blank">webfont.js</a>', 'autoptimize').' '.__('(deprecated)', 'autoptimize'); ?><br/>
512 512
                 </td>
513 513
             </tr>
514 514
             <tr>
515
-                <th scope="row"><?php _e( 'Remove emojis', 'autoptimize' ); ?></th>
515
+                <th scope="row"><?php _e('Remove emojis', 'autoptimize'); ?></th>
516 516
                 <td>
517
-                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_1]' <?php if ( ! empty( $options['autoptimize_extra_checkbox_field_1'] ) && '1' === $options['autoptimize_extra_checkbox_field_1'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Removes WordPress\' core emojis\' inline CSS, inline JavaScript, and an otherwise un-autoptimized JavaScript file.', 'autoptimize' ); ?></label>
517
+                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_1]' <?php if (!empty($options['autoptimize_extra_checkbox_field_1']) && '1' === $options['autoptimize_extra_checkbox_field_1']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Removes WordPress\' core emojis\' inline CSS, inline JavaScript, and an otherwise un-autoptimized JavaScript file.', 'autoptimize'); ?></label>
518 518
                 </td>
519 519
             </tr>
520 520
             <tr>
521
-                <th scope="row"><?php _e( 'Remove query strings from static resources', 'autoptimize' ); ?></th>
521
+                <th scope="row"><?php _e('Remove query strings from static resources', 'autoptimize'); ?></th>
522 522
                 <td>
523
-                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_0]' <?php if ( ! empty( $options['autoptimize_extra_checkbox_field_0'] ) && '1' === $options['autoptimize_extra_checkbox_field_0'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Removing query strings (or more specifically the <code>ver</code> parameter) will not improve load time, but might improve performance scores.', 'autoptimize' ); ?></label>
523
+                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_0]' <?php if (!empty($options['autoptimize_extra_checkbox_field_0']) && '1' === $options['autoptimize_extra_checkbox_field_0']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Removing query strings (or more specifically the <code>ver</code> parameter) will not improve load time, but might improve performance scores.', 'autoptimize'); ?></label>
524 524
                 </td>
525 525
             </tr>
526 526
             <tr>
527
-                <th scope="row"><?php _e( 'Preconnect to 3rd party domains <em>(advanced users)</em>', 'autoptimize' ); ?></th>
527
+                <th scope="row"><?php _e('Preconnect to 3rd party domains <em>(advanced users)</em>', 'autoptimize'); ?></th>
528 528
                 <td>
529
-                    <label><input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_2]' value='<?php if ( array_key_exists( 'autoptimize_extra_text_field_2', $options ) ) { echo esc_attr( $options['autoptimize_extra_text_field_2'] ); } ?>'><br /><?php _e( 'Add 3rd party domains you want the browser to <a href="https://www.keycdn.com/support/preconnect/#primary" target="_blank">preconnect</a> to, separated by comma\'s. Make sure to include the correct protocol (HTTP or HTTPS).', 'autoptimize' ); ?></label>
529
+                    <label><input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_2]' value='<?php if (array_key_exists('autoptimize_extra_text_field_2', $options)) { echo esc_attr($options['autoptimize_extra_text_field_2']); } ?>'><br /><?php _e('Add 3rd party domains you want the browser to <a href="https://www.keycdn.com/support/preconnect/#primary" target="_blank">preconnect</a> to, separated by comma\'s. Make sure to include the correct protocol (HTTP or HTTPS).', 'autoptimize'); ?></label>
530 530
                 </td>
531 531
             </tr>
532 532
             <tr>
533
-                <th scope="row"><?php _e( 'Preload specific requests <em>(advanced users)</em>', 'autoptimize' ); ?></th>
533
+                <th scope="row"><?php _e('Preload specific requests <em>(advanced users)</em>', 'autoptimize'); ?></th>
534 534
                 <td>
535
-                    <label><input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_7]' value='<?php if ( array_key_exists( 'autoptimize_extra_text_field_7', $options ) ) { echo esc_attr( $options['autoptimize_extra_text_field_7'] ); } ?>'><br /><?php _e( 'Comma-separated list with full URL\'s of to to-be-preloaded resources. To be used sparingly!', 'autoptimize' ); ?></label>
535
+                    <label><input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_7]' value='<?php if (array_key_exists('autoptimize_extra_text_field_7', $options)) { echo esc_attr($options['autoptimize_extra_text_field_7']); } ?>'><br /><?php _e('Comma-separated list with full URL\'s of to to-be-preloaded resources. To be used sparingly!', 'autoptimize'); ?></label>
536 536
                 </td>
537 537
             </tr>
538 538
             <tr>
539
-                <th scope="row"><?php _e( 'Async Javascript-files <em>(advanced users)</em>', 'autoptimize' ); ?></th>
539
+                <th scope="row"><?php _e('Async Javascript-files <em>(advanced users)</em>', 'autoptimize'); ?></th>
540 540
                 <td>
541 541
                     <?php
542
-                    if ( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) ) {
542
+                    if (autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php')) {
543 543
                         // translators: link points Async Javascript settings page.
544
-                        printf( __( 'You have "Async JavaScript" installed, %1$sconfiguration of async javascript is best done there%2$s.', 'autoptimize' ), '<a href="' . 'options-general.php?page=async-javascript' . '">', '</a>' );
544
+                        printf(__('You have "Async JavaScript" installed, %1$sconfiguration of async javascript is best done there%2$s.', 'autoptimize'), '<a href="'.'options-general.php?page=async-javascript'.'">', '</a>');
545 545
                     } else {
546 546
                         ?>
547
-                        <input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_3]' value='<?php if ( array_key_exists( 'autoptimize_extra_text_field_3', $options ) ) { echo esc_attr( $options['autoptimize_extra_text_field_3'] ); } ?>'>
547
+                        <input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_3]' value='<?php if (array_key_exists('autoptimize_extra_text_field_3', $options)) { echo esc_attr($options['autoptimize_extra_text_field_3']); } ?>'>
548 548
                         <br />
549 549
                         <?php
550
-                            _e( 'Comma-separated list of local or 3rd party JS-files that should loaded with the <code>async</code> flag. JS-files from your own site will be automatically excluded if added here. ', 'autoptimize' );
550
+                            _e('Comma-separated list of local or 3rd party JS-files that should loaded with the <code>async</code> flag. JS-files from your own site will be automatically excluded if added here. ', 'autoptimize');
551 551
                             // translators: %s will be replaced by a link to the "async javascript" plugin.
552
-                            echo sprintf( __( 'Configuration of async javascript is easier and more flexible using the %s plugin.', 'autoptimize' ), '"<a href="https://wordpress.org/plugins/async-javascript" target="_blank">Async Javascript</a>"' );
553
-                            $asj_install_url = network_admin_url() . 'plugin-install.php?s=async+javascript&tab=search&type=term';
554
-                            echo sprintf( ' <a href="' . $asj_install_url . '">%s</a>', __( 'Click here to install and activate it.', 'autoptimize' ) );
552
+                            echo sprintf(__('Configuration of async javascript is easier and more flexible using the %s plugin.', 'autoptimize'), '"<a href="https://wordpress.org/plugins/async-javascript" target="_blank">Async Javascript</a>"');
553
+                            $asj_install_url = network_admin_url().'plugin-install.php?s=async+javascript&tab=search&type=term';
554
+                            echo sprintf(' <a href="'.$asj_install_url.'">%s</a>', __('Click here to install and activate it.', 'autoptimize'));
555 555
                     }
556 556
                     ?>
557 557
                 </td>
558 558
             </tr>
559 559
             <tr>
560
-                <th scope="row"><?php _e( 'Optimize YouTube videos', 'autoptimize' ); ?></th>
560
+                <th scope="row"><?php _e('Optimize YouTube videos', 'autoptimize'); ?></th>
561 561
                 <td>
562 562
                     <?php
563
-                    if ( autoptimizeUtils::is_plugin_active( 'wp-youtube-lyte/wp-youtube-lyte.php' ) ) {
564
-                        _e( 'Great, you have WP YouTube Lyte installed.', 'autoptimize' );
563
+                    if (autoptimizeUtils::is_plugin_active('wp-youtube-lyte/wp-youtube-lyte.php')) {
564
+                        _e('Great, you have WP YouTube Lyte installed.', 'autoptimize');
565 565
                         $lyte_config_url = 'options-general.php?page=lyte_settings_page';
566
-                        echo sprintf( ' <a href="' . $lyte_config_url . '">%s</a>', __( 'Click here to configure it.', 'autoptimize' ) );
566
+                        echo sprintf(' <a href="'.$lyte_config_url.'">%s</a>', __('Click here to configure it.', 'autoptimize'));
567 567
                     } else {
568 568
                         // translators: %s will be replaced by a link to "wp youtube lyte" plugin.
569
-                        echo sprintf( __( '%s allows you to “lazy load” your videos, by inserting responsive “Lite YouTube Embeds". ', 'autoptimize' ), '<a href="https://wordpress.org/plugins/wp-youtube-lyte" target="_blank">WP YouTube Lyte</a>' );
570
-                        $lyte_install_url = network_admin_url() . 'plugin-install.php?s=lyte&tab=search&type=term';
571
-                        echo sprintf( ' <a href="' . $lyte_install_url . '">%s</a>', __( 'Click here to install and activate it.', 'autoptimize' ) );
569
+                        echo sprintf(__('%s allows you to “lazy load” your videos, by inserting responsive “Lite YouTube Embeds". ', 'autoptimize'), '<a href="https://wordpress.org/plugins/wp-youtube-lyte" target="_blank">WP YouTube Lyte</a>');
570
+                        $lyte_install_url = network_admin_url().'plugin-install.php?s=lyte&tab=search&type=term';
571
+                        echo sprintf(' <a href="'.$lyte_install_url.'">%s</a>', __('Click here to install and activate it.', 'autoptimize'));
572 572
                     }
573 573
                     ?>
574 574
                 </td>
575 575
             </tr>
576 576
         </table>
577
-        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save Changes', 'autoptimize' ); ?>" /></p>
577
+        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'autoptimize'); ?>" /></p>
578 578
     </form>
579 579
         <?php
580 580
     }
Please login to merge, or discard this patch.
classes/autoptimizeCriticalCSSEnqueue.php 1 patch
Spacing   +68 added lines, -68 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Critical CSS job enqueue logic.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -12,27 +12,27 @@  discard block
 block discarded – undo
12 12
     {
13 13
         // fetch all options at once and populate them individually explicitely as globals.
14 14
         $all_options = autoptimizeCriticalCSSBase::fetch_options();
15
-        foreach ( $all_options as $_option => $_value ) {
15
+        foreach ($all_options as $_option => $_value) {
16 16
             global ${$_option};
17 17
             ${$_option} = $_value;
18 18
         }
19 19
     }
20 20
 
21
-    public static function ao_ccss_enqueue( $hash ) {
21
+    public static function ao_ccss_enqueue($hash) {
22 22
         $self = new self();
23 23
         // Get key status.
24
-        $key = autoptimizeCriticalCSSCore::ao_ccss_key_status( false );
24
+        $key = autoptimizeCriticalCSSCore::ao_ccss_key_status(false);
25 25
 
26 26
         // Queue is available to anyone...
27 27
         $enqueue = true;
28 28
 
29 29
         // ... which are not the ones below.
30
-        if ( is_user_logged_in() || is_feed() || is_404() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || $self->ao_ccss_ua() || 'nokey' == $key['status'] || 'invalid' == $key['status'] || false === apply_filters( 'autoptimize_filter_ccss_enqueue_should_enqueue', true ) ) {
30
+        if (is_user_logged_in() || is_feed() || is_404() || (defined('DOING_AJAX') && DOING_AJAX) || $self->ao_ccss_ua() || 'nokey' == $key['status'] || 'invalid' == $key['status'] || false === apply_filters('autoptimize_filter_ccss_enqueue_should_enqueue', true)) {
31 31
             $enqueue = false;
32
-            autoptimizeCriticalCSSCore::ao_ccss_log( "Job queuing is not available for WordPress's logged in users, feeds, error pages, ajax calls, to criticalcss.com itself or when a valid API key is not found", 3 );
32
+            autoptimizeCriticalCSSCore::ao_ccss_log("Job queuing is not available for WordPress's logged in users, feeds, error pages, ajax calls, to criticalcss.com itself or when a valid API key is not found", 3);
33 33
         }
34 34
 
35
-        if ( $enqueue ) {
35
+        if ($enqueue) {
36 36
             // Continue if queue is available
37 37
             // Attach required arrays/ vars.
38 38
             global $ao_ccss_rules;
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
             global $ao_ccss_forcepath;
42 42
 
43 43
             // Get request path and page type, and initialize the queue update flag.
44
-            $req_path        = strtok( $_SERVER['REQUEST_URI'], '?' );
44
+            $req_path        = strtok($_SERVER['REQUEST_URI'], '?');
45 45
             $req_type        = $self->ao_ccss_get_type();
46 46
             $job_qualify     = false;
47 47
             $target_rule     = false;
@@ -49,21 +49,21 @@  discard block
 block discarded – undo
49 49
             $queue_update    = false;
50 50
 
51 51
             // Match for paths in rules.
52
-            foreach ( $ao_ccss_rules['paths'] as $path => $props ) {
52
+            foreach ($ao_ccss_rules['paths'] as $path => $props) {
53 53
 
54 54
                 // Prepare rule target and log.
55
-                $target_rule = 'paths|' . $path;
56
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Qualifying path <' . $req_path . '> for job submission by rule <' . $target_rule . '>', 3 );
55
+                $target_rule = 'paths|'.$path;
56
+                autoptimizeCriticalCSSCore::ao_ccss_log('Qualifying path <'.$req_path.'> for job submission by rule <'.$target_rule.'>', 3);
57 57
 
58 58
                 // Path match
59 59
                 // -> exact match needed for AUTO rules
60 60
                 // -> partial match OK for MANUAL rules (which have empty hash and a file with CCSS).
61
-                if ( $path === $req_path || ( false == $props['hash'] && false != $props['file'] && preg_match( '|' . $path . '|', $req_path ) ) ) {
61
+                if ($path === $req_path || (false == $props['hash'] && false != $props['file'] && preg_match('|'.$path.'|', $req_path))) {
62 62
 
63 63
                     // There's a path match in the rule, so job QUALIFIES with a path rule match.
64 64
                     $job_qualify     = true;
65 65
                     $rule_properties = $props;
66
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Path <' . $req_path . '> QUALIFIED for job submission by rule <' . $target_rule . '>', 3 );
66
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Path <'.$req_path.'> QUALIFIED for job submission by rule <'.$target_rule.'>', 3);
67 67
 
68 68
                     // Stop processing other path rules.
69 69
                     break;
@@ -71,19 +71,19 @@  discard block
 block discarded – undo
71 71
             }
72 72
 
73 73
             // Match for types in rules if no path rule matches and if we're not enforcing paths.
74
-            if ( ! $job_qualify && ( ! $ao_ccss_forcepath || ! in_array( $req_type, apply_filters( 'autoptimize_filter_ccss_coreenqueue_forcepathfortype', array( 'is_page' ) ) ) || ! apply_filters( 'autoptimize_filter_ccss_coreenqueue_ignorealltypes', false ) ) ) {
75
-                foreach ( $ao_ccss_rules['types'] as $type => $props ) {
74
+            if (!$job_qualify && (!$ao_ccss_forcepath || !in_array($req_type, apply_filters('autoptimize_filter_ccss_coreenqueue_forcepathfortype', array('is_page'))) || !apply_filters('autoptimize_filter_ccss_coreenqueue_ignorealltypes', false))) {
75
+                foreach ($ao_ccss_rules['types'] as $type => $props) {
76 76
 
77 77
                     // Prepare rule target and log.
78
-                    $target_rule = 'types|' . $type;
79
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Qualifying page type <' . $req_type . '> on path <' . $req_path . '> for job submission by rule <' . $target_rule . '>', 3 );
78
+                    $target_rule = 'types|'.$type;
79
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Qualifying page type <'.$req_type.'> on path <'.$req_path.'> for job submission by rule <'.$target_rule.'>', 3);
80 80
 
81
-                    if ( $req_type == $type ) {
81
+                    if ($req_type == $type) {
82 82
                         // Type match.
83 83
                         // There's a type match in the rule, so job QUALIFIES with a type rule match.
84 84
                         $job_qualify     = true;
85 85
                         $rule_properties = $props;
86
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Page type <' . $req_type . '> on path <' . $req_path . '> QUALIFIED for job submission by rule <' . $target_rule . '>', 3 );
86
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Page type <'.$req_type.'> on path <'.$req_path.'> QUALIFIED for job submission by rule <'.$target_rule.'>', 3);
87 87
 
88 88
                         // Stop processing other type rules.
89 89
                         break;
@@ -91,11 +91,11 @@  discard block
 block discarded – undo
91 91
                 }
92 92
             }
93 93
 
94
-            if ( $job_qualify && ( ( false == $rule_properties['hash'] && false != $rule_properties['file'] ) || strpos( $req_type, 'template_' ) !== false ) ) {
94
+            if ($job_qualify && ((false == $rule_properties['hash'] && false != $rule_properties['file']) || strpos($req_type, 'template_') !== false)) {
95 95
                 // If job qualifies but rule hash is false and file isn't false (MANUAL rule) or if template, job does not qualify despite what previous evaluations says.
96 96
                 $job_qualify = false;
97
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission DISQUALIFIED by MANUAL rule <' . $target_rule . '> with hash <' . $rule_properties['hash'] . '> and file <' . $rule_properties['file'] . '>', 3 );
98
-            } elseif ( ! $job_qualify && empty( $rule_properties ) ) {
97
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission DISQUALIFIED by MANUAL rule <'.$target_rule.'> with hash <'.$rule_properties['hash'].'> and file <'.$rule_properties['file'].'>', 3);
98
+            } elseif (!$job_qualify && empty($rule_properties)) {
99 99
                 // But if job does not qualify and rule properties are set, job qualifies as there is no matching rule for it yet
100 100
                 // Fill-in the new target rule.
101 101
                 $job_qualify = true;
@@ -103,28 +103,28 @@  discard block
 block discarded – undo
103 103
                 // Should we switch to path-base AUTO-rules? Conditions:
104 104
                 // 1. forcepath option has to be enabled (off by default)
105 105
                 // 2. request type should be (by default, but filterable) one of is_page (removed for now: woo_is_product or woo_is_product_category).
106
-                if ( ( $ao_ccss_forcepath && in_array( $req_type, apply_filters( 'autoptimize_filter_ccss_coreenqueue_forcepathfortype', array( 'is_page' ) ) ) ) || apply_filters( 'autoptimize_filter_ccss_coreenqueue_ignorealltypes', false ) ) {
107
-                    if ( '/' !== $req_path ) {
108
-                        $target_rule = 'paths|' . $req_path;
106
+                if (($ao_ccss_forcepath && in_array($req_type, apply_filters('autoptimize_filter_ccss_coreenqueue_forcepathfortype', array('is_page')))) || apply_filters('autoptimize_filter_ccss_coreenqueue_ignorealltypes', false)) {
107
+                    if ('/' !== $req_path) {
108
+                        $target_rule = 'paths|'.$req_path;
109 109
                     } else {
110 110
                         // Exception; we don't want a path-based rule for "/" as that messes things up, hard-switch this to a type-based is_front_page rule.
111
-                        $target_rule = 'types|' . 'is_front_page';
111
+                        $target_rule = 'types|'.'is_front_page';
112 112
                     }
113 113
                 } else {
114
-                    $target_rule = 'types|' . $req_type;
114
+                    $target_rule = 'types|'.$req_type;
115 115
                 }
116
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission QUALIFIED by MISSING rule for page type <' . $req_type . '> on path <' . $req_path . '>, new rule target is <' . $target_rule . '>', 3 );
116
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission QUALIFIED by MISSING rule for page type <'.$req_type.'> on path <'.$req_path.'>, new rule target is <'.$target_rule.'>', 3);
117 117
             } else {
118 118
                 // Or just log a job qualified by a matching rule.
119
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission QUALIFIED by AUTO rule <' . $target_rule . '> with hash <' . $rule_properties['hash'] . '> and file <' . $rule_properties['file'] . '>', 3 );
119
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission QUALIFIED by AUTO rule <'.$target_rule.'> with hash <'.$rule_properties['hash'].'> and file <'.$rule_properties['file'].'>', 3);
120 120
             }
121 121
 
122 122
             // Submit job.
123
-            if ( $job_qualify ) {
124
-                if ( ! array_key_exists( $req_path, $ao_ccss_queue ) ) {
123
+            if ($job_qualify) {
124
+                if (!array_key_exists($req_path, $ao_ccss_queue)) {
125 125
                     // This is a NEW job
126 126
                     // Merge job into the queue.
127
-                    $ao_ccss_queue[ $req_path ] = $self->ao_ccss_define_job(
127
+                    $ao_ccss_queue[$req_path] = $self->ao_ccss_define_job(
128 128
                         $req_path,
129 129
                         $target_rule,
130 130
                         $req_type,
@@ -140,30 +140,30 @@  discard block
 block discarded – undo
140 140
                 } else {
141 141
                     // This is an existing job
142 142
                     // The job is still NEW, most likely this is extra CSS file for the same page that needs a hash.
143
-                    if ( 'NEW' == $ao_ccss_queue[ $req_path ]['jqstat'] ) {
143
+                    if ('NEW' == $ao_ccss_queue[$req_path]['jqstat']) {
144 144
                         // Add hash if it's not already in the job.
145
-                        if ( ! in_array( $hash, $ao_ccss_queue[ $req_path ]['hashes'] ) ) {
145
+                        if (!in_array($hash, $ao_ccss_queue[$req_path]['hashes'])) {
146 146
                             // Push new hash to its array and update flag.
147
-                            $queue_update = array_push( $ao_ccss_queue[ $req_path ]['hashes'], $hash );
147
+                            $queue_update = array_push($ao_ccss_queue[$req_path]['hashes'], $hash);
148 148
 
149 149
                             // Log job update.
150
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Hashes UPDATED on local job id <' . $ao_ccss_queue[ $req_path ]['ljid'] . '>, job status NEW, target rule <' . $ao_ccss_queue[ $req_path ]['rtarget'] . '>, hash added: ' . $hash, 3 );
150
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Hashes UPDATED on local job id <'.$ao_ccss_queue[$req_path]['ljid'].'>, job status NEW, target rule <'.$ao_ccss_queue[$req_path]['rtarget'].'>, hash added: '.$hash, 3);
151 151
 
152 152
                             // Return from here as the hash array is already updated.
153 153
                             return true;
154 154
                         }
155
-                    } elseif ( 'NEW' != $ao_ccss_queue[ $req_path ]['jqstat'] && 'JOB_QUEUED' != $ao_ccss_queue[ $req_path ]['jqstat'] && 'JOB_ONGOING' != $ao_ccss_queue[ $req_path ]['jqstat'] ) {
155
+                    } elseif ('NEW' != $ao_ccss_queue[$req_path]['jqstat'] && 'JOB_QUEUED' != $ao_ccss_queue[$req_path]['jqstat'] && 'JOB_ONGOING' != $ao_ccss_queue[$req_path]['jqstat']) {
156 156
                         // Allow requeuing jobs that are not NEW, JOB_QUEUED or JOB_ONGOING
157 157
                         // Merge new job keeping some previous job values.
158
-                        $ao_ccss_queue[ $req_path ] = $self->ao_ccss_define_job(
158
+                        $ao_ccss_queue[$req_path] = $self->ao_ccss_define_job(
159 159
                             $req_path,
160 160
                             $target_rule,
161 161
                             $req_type,
162 162
                             $hash,
163
-                            $ao_ccss_queue[ $req_path ]['file'],
164
-                            $ao_ccss_queue[ $req_path ]['jid'],
165
-                            $ao_ccss_queue[ $req_path ]['jrstat'],
166
-                            $ao_ccss_queue[ $req_path ]['jvstat'],
163
+                            $ao_ccss_queue[$req_path]['file'],
164
+                            $ao_ccss_queue[$req_path]['jid'],
165
+                            $ao_ccss_queue[$req_path]['jrstat'],
166
+                            $ao_ccss_queue[$req_path]['jvstat'],
167 167
                             false
168 168
                         );
169 169
                         // Set update flag.
@@ -171,14 +171,14 @@  discard block
 block discarded – undo
171 171
                     }
172 172
                 }
173 173
 
174
-                if ( $queue_update ) {
174
+                if ($queue_update) {
175 175
                     // Persist the job to the queue and return.
176
-                    $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
177
-                    update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
176
+                    $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
177
+                    update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
178 178
                     return true;
179 179
                 } else {
180 180
                     // Or just return false if no job was added.
181
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'A job for path <' . $req_path . '> already exist with NEW or PENDING status, skipping job creation', 3 );
181
+                    autoptimizeCriticalCSSCore::ao_ccss_log('A job for path <'.$req_path.'> already exist with NEW or PENDING status, skipping job creation', 3);
182 182
                     return false;
183 183
                 }
184 184
             }
@@ -195,29 +195,29 @@  discard block
 block discarded – undo
195 195
         $page_type = false;
196 196
 
197 197
         // Iterates over the array to match a type.
198
-        foreach ( $ao_ccss_types as $type ) {
199
-            if ( is_404() ) {
198
+        foreach ($ao_ccss_types as $type) {
199
+            if (is_404()) {
200 200
                 $page_type = 'is_404';
201 201
                 break;
202
-            } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $ao_ccss_forcepath || ! is_page() ) ) {
202
+            } elseif (strpos($type, 'custom_post_') !== false && (!$ao_ccss_forcepath || !is_page())) {
203 203
                 // Match custom post types and not page or page not forced to path-based.
204
-                if ( get_post_type( get_the_ID() ) === substr( $type, 12 ) ) {
204
+                if (get_post_type(get_the_ID()) === substr($type, 12)) {
205 205
                     $page_type = $type;
206 206
                     break;
207 207
                 }
208
-            } elseif ( strpos( $type, 'template_' ) !== false && ( ! $ao_ccss_forcepath || ! is_page() ) ) {
208
+            } elseif (strpos($type, 'template_') !== false && (!$ao_ccss_forcepath || !is_page())) {
209 209
                 // Match templates if not page or if page is not forced to path-based.
210
-                if ( is_page_template( substr( $type, 9 ) ) ) {
210
+                if (is_page_template(substr($type, 9))) {
211 211
                     $page_type = $type;
212 212
                     break;
213 213
                 }
214 214
             } else {
215 215
                 // Match all other existing types
216 216
                 // but remove prefix to be able to check if the function exists & returns true.
217
-                $_type = str_replace( array( 'woo_', 'bp_', 'bbp_', 'edd_' ), '', $type );
218
-                if ( function_exists( $_type ) && call_user_func( $_type ) ) {
217
+                $_type = str_replace(array('woo_', 'bp_', 'bbp_', 'edd_'), '', $type);
218
+                if (function_exists($_type) && call_user_func($_type)) {
219 219
                     // Make sure we only return for one page, not for the "paged pages" (/page/2 ..).
220
-                    if ( ! is_page() || ! is_paged() ) {
220
+                    if (!is_page() || !is_paged()) {
221 221
                         $page_type = $type;
222 222
                         break;
223 223
                     }
@@ -229,44 +229,44 @@  discard block
 block discarded – undo
229 229
         return $page_type;
230 230
     }
231 231
 
232
-    public function ao_ccss_define_job( $path, $target, $type, $hash, $file, $jid, $jrstat, $jvstat, $create ) {
232
+    public function ao_ccss_define_job($path, $target, $type, $hash, $file, $jid, $jrstat, $jvstat, $create) {
233 233
         // Define a job entry to be created or updated
234 234
         // Define commom job properties.
235 235
         $path            = array();
236 236
         $path['ljid']    = $this->ao_ccss_job_id();
237 237
         $path['rtarget'] = $target;
238 238
         $path['ptype']   = $type;
239
-        $path['hashes']  = array( $hash );
239
+        $path['hashes']  = array($hash);
240 240
         $path['hash']    = $hash;
241 241
         $path['file']    = $file;
242 242
         $path['jid']     = $jid;
243 243
         $path['jqstat']  = 'NEW';
244 244
         $path['jrstat']  = $jrstat;
245 245
         $path['jvstat']  = $jvstat;
246
-        $path['jctime']  = microtime( true );
246
+        $path['jctime']  = microtime(true);
247 247
         $path['jftime']  = null;
248 248
 
249 249
         // Set operation requested.
250
-        if ( $create ) {
250
+        if ($create) {
251 251
             $operation = 'CREATED';
252 252
         } else {
253 253
             $operation = 'UPDATED';
254 254
         }
255 255
 
256 256
         // Log job creation.
257
-        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job ' . $operation . ' with local job id <' . $path['ljid'] . '> for target rule <' . $target . '>', 3 );
257
+        autoptimizeCriticalCSSCore::ao_ccss_log('Job '.$operation.' with local job id <'.$path['ljid'].'> for target rule <'.$target.'>', 3);
258 258
 
259 259
         return $path;
260 260
     }
261 261
 
262
-    public function ao_ccss_job_id( $length = 6 ) {
262
+    public function ao_ccss_job_id($length = 6) {
263 263
         // Generate random strings for the local job ID
264 264
         // Based on https://stackoverflow.com/a/4356295 .
265 265
         $characters        = '0123456789abcdefghijklmnopqrstuvwxyz';
266
-        $characters_length = strlen( $characters );
266
+        $characters_length = strlen($characters);
267 267
         $random_string     = 'j-';
268
-        for ( $i = 0; $i < $length; $i++ ) {
269
-            $random_string .= $characters[ rand( 0, $characters_length - 1 ) ];
268
+        for ($i = 0; $i < $length; $i++) {
269
+            $random_string .= $characters[rand(0, $characters_length - 1)];
270 270
         }
271 271
         return $random_string;
272 272
     }
@@ -274,17 +274,17 @@  discard block
 block discarded – undo
274 274
     public function ao_ccss_ua() {
275 275
         // Check for criticalcss.com user agent.
276 276
         $agent = '';
277
-        if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
277
+        if (isset($_SERVER['HTTP_USER_AGENT'])) {
278 278
             $agent = $_SERVER['HTTP_USER_AGENT'];
279 279
         }
280 280
 
281 281
         // Check for UA and return TRUE when criticalcss.com is the detected UA, false when not.
282
-        $rtn = strpos( $agent, AO_CCSS_URL );
283
-        if ( 0 === $rtn ) {
282
+        $rtn = strpos($agent, AO_CCSS_URL);
283
+        if (0 === $rtn) {
284 284
             $rtn = true;
285 285
         } else {
286 286
             $rtn = false;
287 287
         }
288
-        return ( $rtn );
288
+        return ($rtn);
289 289
     }
290 290
 }
Please login to merge, or discard this patch.
classes/critcss-inc/admin_settings_adv.php 1 patch
Spacing   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
     global $ao_ccss_unloadccss;
20 20
 
21 21
     // In case domain is not set yet (done in cron.php).
22
-    if ( empty( $ao_ccss_domain ) ) {
22
+    if (empty($ao_ccss_domain)) {
23 23
         $ao_ccss_domain = get_site_url();
24 24
     }
25 25
 
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 ?>
29 29
     <ul id="adv-panel">
30 30
         <li class="itemDetail">
31
-            <h2 class="itemTitle fleft"><?php _e( 'Advanced Settings', 'autoptimize' ); ?></h2>
31
+            <h2 class="itemTitle fleft"><?php _e('Advanced Settings', 'autoptimize'); ?></h2>
32 32
             <button type="button" class="toggle-btn">
33 33
                 <span class="toggle-indicator dashicons dashicons-arrow-up dashicons-arrow-down"></span>
34 34
             </button>
@@ -36,114 +36,114 @@  discard block
 block discarded – undo
36 36
                 <table id="key" class="form-table">
37 37
                     <tr>
38 38
                         <th scope="row">
39
-                            <?php _e( 'Viewport Size', 'autoptimize' ); ?>
39
+                            <?php _e('Viewport Size', 'autoptimize'); ?>
40 40
                         </th>
41 41
                         <td>
42
-                            <label for="autoptimize_ccss_vw"><?php _e( 'Width', 'autoptimize' ); ?>:</label> <input type="number" id="autoptimize_ccss_vw" name="autoptimize_ccss_viewport[w]" min="800" max="4096" placeholder="1400" value="<?php echo $viewport['w']; ?>" />&nbsp;&nbsp;
43
-                            <label for="autoptimize_ccss_vh"><?php _e( 'Height', 'autoptimize' ); ?>:</label> <input type="number" id="autoptimize_ccss_vh" name="autoptimize_ccss_viewport[h]" min="600" max="2160" placeholder="1080" value="<?php echo $viewport['h']; ?>" />
42
+                            <label for="autoptimize_ccss_vw"><?php _e('Width', 'autoptimize'); ?>:</label> <input type="number" id="autoptimize_ccss_vw" name="autoptimize_ccss_viewport[w]" min="800" max="4096" placeholder="1400" value="<?php echo $viewport['w']; ?>" />&nbsp;&nbsp;
43
+                            <label for="autoptimize_ccss_vh"><?php _e('Height', 'autoptimize'); ?>:</label> <input type="number" id="autoptimize_ccss_vh" name="autoptimize_ccss_viewport[h]" min="600" max="2160" placeholder="1080" value="<?php echo $viewport['h']; ?>" />
44 44
                             <p class="notes">
45
-                                <?php _e( '<a href="https://criticalcss.com/account/api-keys?aff=1" target="_blank">criticalcss.com</a> default viewport size is 1400x1080 pixels (width x height). You can change this size by typing a desired width and height values above. Allowed value ranges are from 800 to 4096 for width and from 600 to 2160 for height.', 'autoptimize' ); ?>
45
+                                <?php _e('<a href="https://criticalcss.com/account/api-keys?aff=1" target="_blank">criticalcss.com</a> default viewport size is 1400x1080 pixels (width x height). You can change this size by typing a desired width and height values above. Allowed value ranges are from 800 to 4096 for width and from 600 to 2160 for height.', 'autoptimize'); ?>
46 46
                             </p>
47 47
                         </td>
48 48
                     </tr>
49 49
                     <tr>
50 50
                         <th scope="row">
51
-                            <?php _e( 'Force Include CSS selectors', 'autoptimize' ); ?>
51
+                            <?php _e('Force Include CSS selectors', 'autoptimize'); ?>
52 52
                         </th>
53 53
                         <td>
54
-                            <textarea id="autoptimize_ccss_finclude" name="autoptimize_ccss_finclude" rows='3' maxlenght='500' style="width:100%;" placeholder="<?php _e( '.button-special,//#footer', 'autoptimize' ); ?>"><?php echo trim( $ao_ccss_finclude ); ?></textarea>
54
+                            <textarea id="autoptimize_ccss_finclude" name="autoptimize_ccss_finclude" rows='3' maxlenght='500' style="width:100%;" placeholder="<?php _e('.button-special,//#footer', 'autoptimize'); ?>"><?php echo trim($ao_ccss_finclude); ?></textarea>
55 55
                             <p class="notes">
56
-                                <?php _e( 'Force include CSS selectors can be used to style dynamic content that is not part of the HTML that is seen during the Critical CSS generation. To use this feature, add comma separated values with both simple strings and/or regular expressions to match the desired selectors. Regular expressions must be preceeded by two forward slashes. For instance: <code>.button-special,//#footer</code>. In this example <code>.button-special</code> will match <code>.button-special</code> selector only, while <code>//#footer</code> will match <code>#footer</code>, <code>#footer-address</code> and <code>#footer-phone</code> selectors in case they exist.<br />Do take into account that changing this setting will only affect new/ updated rules, so you might want to remove old rules and clear your page cache to expedite the forceIncludes becoming used.', 'autoptimize' ); ?>
56
+                                <?php _e('Force include CSS selectors can be used to style dynamic content that is not part of the HTML that is seen during the Critical CSS generation. To use this feature, add comma separated values with both simple strings and/or regular expressions to match the desired selectors. Regular expressions must be preceeded by two forward slashes. For instance: <code>.button-special,//#footer</code>. In this example <code>.button-special</code> will match <code>.button-special</code> selector only, while <code>//#footer</code> will match <code>#footer</code>, <code>#footer-address</code> and <code>#footer-phone</code> selectors in case they exist.<br />Do take into account that changing this setting will only affect new/ updated rules, so you might want to remove old rules and clear your page cache to expedite the forceIncludes becoming used.', 'autoptimize'); ?>
57 57
                             </p>
58 58
                         </td>
59 59
                     </tr>
60 60
                     <tr>
61 61
                         <th scope="row">
62
-                            <?php _e( 'Queue processing time limit', 'autoptimize' ); ?>
62
+                            <?php _e('Queue processing time limit', 'autoptimize'); ?>
63 63
                         </th>
64 64
                         <td>
65 65
                             <input type="number" id="autoptimize_ccss_rtimelimit" name="autoptimize_ccss_rtimelimit" min="0" max="240" placeholder="0" value="<?php echo $ao_ccss_rtimelimit; ?>" />
66 66
                             <p class="notes">
67
-                                <?php _e( 'The cronned queue processing is an asynchronous process triggerd by (WordPress) cron. To avoid this process from running too long and potentially getting killed, you can set the number of seconds here, 0 means no limit.', 'autoptimize' ); ?>
67
+                                <?php _e('The cronned queue processing is an asynchronous process triggerd by (WordPress) cron. To avoid this process from running too long and potentially getting killed, you can set the number of seconds here, 0 means no limit.', 'autoptimize'); ?>
68 68
                             </p>
69 69
                         </td>
70 70
                     </tr>
71 71
                     <tr>
72 72
                         <th scope="row">
73
-                            <?php _e( 'Fetch Original CSS', 'autoptimize' ); ?>
73
+                            <?php _e('Fetch Original CSS', 'autoptimize'); ?>
74 74
                         </th>
75 75
                         <td>
76
-                            <input type="checkbox" id="autoptimize_ccss_noptimize" name="autoptimize_ccss_noptimize" value="1" <?php checked( 1 == $ao_ccss_noptimize ); ?>>
76
+                            <input type="checkbox" id="autoptimize_ccss_noptimize" name="autoptimize_ccss_noptimize" value="1" <?php checked(1 == $ao_ccss_noptimize); ?>>
77 77
                             <p class="notes">
78
-                                <?php _e( 'In some (rare) cases the generation of critical CSS works better with the original CSS instead of the Autoptimized one, this option enables that behavior.', 'autoptimize' ); ?>
78
+                                <?php _e('In some (rare) cases the generation of critical CSS works better with the original CSS instead of the Autoptimized one, this option enables that behavior.', 'autoptimize'); ?>
79 79
                             </p>
80 80
                         </td>
81 81
                     </tr>
82 82
                     <tr>
83 83
                         <th scope="row">
84
-                            <?php _e( 'Add CCSS for logged in users?', 'autoptimize' ); ?>
84
+                            <?php _e('Add CCSS for logged in users?', 'autoptimize'); ?>
85 85
                         </th>
86 86
                         <td>
87
-                            <input type="checkbox" id="autoptimize_ccss_loggedin" name="autoptimize_ccss_loggedin" value="1" <?php checked( 1 == $ao_ccss_loggedin ); ?>>
87
+                            <input type="checkbox" id="autoptimize_ccss_loggedin" name="autoptimize_ccss_loggedin" value="1" <?php checked(1 == $ao_ccss_loggedin); ?>>
88 88
                             <p class="notes">
89
-                                <?php _e( 'Critical CSS is generated by criticalcss.com from your pages as seen be "anonymous visitor", disable this option if you don\'t want the "visitor" critical CSS to be used for logged on users.', 'autoptimize' ); ?>
89
+                                <?php _e('Critical CSS is generated by criticalcss.com from your pages as seen be "anonymous visitor", disable this option if you don\'t want the "visitor" critical CSS to be used for logged on users.', 'autoptimize'); ?>
90 90
                             </p>
91 91
                         </td>
92 92
                     </tr>
93 93
                     <tr>
94 94
                         <th scope="row">
95
-                            <?php _e( 'Force path-based rules to be generated for pages?', 'autoptimize' ); ?>
95
+                            <?php _e('Force path-based rules to be generated for pages?', 'autoptimize'); ?>
96 96
                         </th>
97 97
                         <td>
98
-                            <input type="checkbox" id="autoptimize_ccss_forcepath" name="autoptimize_ccss_forcepath" value="1" <?php checked( 1 == $ao_ccss_forcepath ); ?>>
98
+                            <input type="checkbox" id="autoptimize_ccss_forcepath" name="autoptimize_ccss_forcepath" value="1" <?php checked(1 == $ao_ccss_forcepath); ?>>
99 99
                             <p class="notes">
100
-                                <?php _e( 'By default for each page a separate rule is generated. If your pages have (semi-)identical above the fold look and feel and you want to keep the rules lean, you can disable that so one rule is created to all pages.', 'autoptimize' ); ?>
100
+                                <?php _e('By default for each page a separate rule is generated. If your pages have (semi-)identical above the fold look and feel and you want to keep the rules lean, you can disable that so one rule is created to all pages.', 'autoptimize'); ?>
101 101
                             </p>
102 102
                         </td>
103 103
                     </tr>
104 104
                     <tr>
105 105
                         <th scope="row">
106
-                            <?php _e( 'Defer jQuery and other non-aggregated JS-files?', 'autoptimize' ); ?>
106
+                            <?php _e('Defer jQuery and other non-aggregated JS-files?', 'autoptimize'); ?>
107 107
                         </th>
108 108
                         <td>
109
-                            <input type="checkbox" id="autoptimize_ccss_deferjquery" name="autoptimize_ccss_deferjquery" value="1" <?php checked( 1 == $ao_ccss_deferjquery ); ?>>
109
+                            <input type="checkbox" id="autoptimize_ccss_deferjquery" name="autoptimize_ccss_deferjquery" value="1" <?php checked(1 == $ao_ccss_deferjquery); ?>>
110 110
                             <p class="notes">
111
-                                <?php _e( 'Defer all non-aggregated JS, including jQuery and inline JS to fix remaining render-blocking issues. Make sure to test your site thoroughly when activating this option!', 'autoptimize' ); ?>
111
+                                <?php _e('Defer all non-aggregated JS, including jQuery and inline JS to fix remaining render-blocking issues. Make sure to test your site thoroughly when activating this option!', 'autoptimize'); ?>
112 112
                             </p>
113 113
                         </td>
114 114
                     </tr>
115 115
                     <tr>
116 116
                         <th scope="row">
117
-                            <?php _e( 'Unload critical CSS after page load?', 'autoptimize' ); ?>
117
+                            <?php _e('Unload critical CSS after page load?', 'autoptimize'); ?>
118 118
                         </th>
119 119
                         <td>
120
-                            <input type="checkbox" id="autoptimize_ccss_unloadccss" name="autoptimize_ccss_unloadccss" value="1" <?php checked( 1 == $ao_ccss_unloadccss ); ?>>
120
+                            <input type="checkbox" id="autoptimize_ccss_unloadccss" name="autoptimize_ccss_unloadccss" value="1" <?php checked(1 == $ao_ccss_unloadccss); ?>>
121 121
                             <p class="notes">
122
-                                <?php _e( 'In rare cases the critical CSS needs to be removed once the full CSS loads, this option makes it so!', 'autoptimize' ); ?>
122
+                                <?php _e('In rare cases the critical CSS needs to be removed once the full CSS loads, this option makes it so!', 'autoptimize'); ?>
123 123
                             </p>
124 124
                         </td>
125 125
                     </tr>
126 126
                     <tr>
127 127
                         <th scope="row">
128
-                            <?php _e( 'Bound domain', 'autoptimize' ); ?>
128
+                            <?php _e('Bound domain', 'autoptimize'); ?>
129 129
                         </th>
130 130
                         <td>
131
-                            <input type="text" id="autoptimize_ccss_domain" name="autoptimize_ccss_domain" style="width:100%;" placeholder="<?php _e( 'Don\'t leave this empty, put e.g. https://example.net/ or simply \'none\' to disable domain binding.', 'autoptimize' ); ?>" value="<?php echo trim( $ao_ccss_domain ); ?>">
131
+                            <input type="text" id="autoptimize_ccss_domain" name="autoptimize_ccss_domain" style="width:100%;" placeholder="<?php _e('Don\'t leave this empty, put e.g. https://example.net/ or simply \'none\' to disable domain binding.', 'autoptimize'); ?>" value="<?php echo trim($ao_ccss_domain); ?>">
132 132
                             <p class="notes">
133
-                                <?php _e( 'Only requests from this domain will be sent for Critical CSS generation (pricing is per domain/ month).', 'autoptimize' ); ?>
133
+                                <?php _e('Only requests from this domain will be sent for Critical CSS generation (pricing is per domain/ month).', 'autoptimize'); ?>
134 134
                             </p>
135 135
                         </td>
136 136
                     </tr>
137 137
                     <tr>
138 138
                         <th scope="row">
139
-                            <?php _e( 'Debug Mode', 'autoptimize' ); ?>
139
+                            <?php _e('Debug Mode', 'autoptimize'); ?>
140 140
                         </th>
141 141
                         <td>
142
-                            <input type="checkbox" id="autoptimize_ccss_debug" name="autoptimize_ccss_debug" value="1" <?php checked( 1 == $ao_ccss_debug ); ?>>
142
+                            <input type="checkbox" id="autoptimize_ccss_debug" name="autoptimize_ccss_debug" value="1" <?php checked(1 == $ao_ccss_debug); ?>>
143 143
                             <p class="notes">
144 144
                                 <?php
145
-                                _e( '<strong>CAUTION! Only use debug mode on production/live environments for ad-hoc troubleshooting and remember to turn it back off after</strong>, as this generates a lot of log-data.<br />Check the box above to enable Autoptimize CriticalCSS Power-Up debug mode. It provides debug facilities in this screen, to the browser console and to this file: ', 'autoptimize' );
146
-                                echo '<code>' . AO_CCSS_LOG . '</code>';
145
+                                _e('<strong>CAUTION! Only use debug mode on production/live environments for ad-hoc troubleshooting and remember to turn it back off after</strong>, as this generates a lot of log-data.<br />Check the box above to enable Autoptimize CriticalCSS Power-Up debug mode. It provides debug facilities in this screen, to the browser console and to this file: ', 'autoptimize');
146
+                                echo '<code>'.AO_CCSS_LOG.'</code>';
147 147
                                 ?>
148 148
                             </p>
149 149
                         </td>
Please login to merge, or discard this patch.
classes/autoptimizeVersionUpdatesHandler.php 1 patch
Spacing   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles version updates and should only be instantiated in autoptimize.php if/when needed.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -16,9 +16,9 @@  discard block
 block discarded – undo
16 16
      */
17 17
     protected $current_major_version = null;
18 18
 
19
-    public function __construct( $current_version )
19
+    public function __construct($current_version)
20 20
     {
21
-        $this->current_major_version = substr( $current_version, 0, 3 );
21
+        $this->current_major_version = substr($current_version, 0, 3);
22 22
     }
23 23
 
24 24
     /**
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
     {
30 30
         $major_update = false;
31 31
 
32
-        switch ( $this->current_major_version ) {
32
+        switch ($this->current_major_version) {
33 33
             case '1.6':
34 34
                 $this->upgrade_from_1_6();
35 35
                 $major_update = true;
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
                 $major_update = true;
48 48
                 // No break, intentionally, so all upgrades are ran during a single request...
49 49
             case '2.4':
50
-                if ( autoptimizeOptionWrapper::get_option( 'autoptimize_version', 'none' ) == '2.4.2' ) {
50
+                if (autoptimizeOptionWrapper::get_option('autoptimize_version', 'none') == '2.4.2') {
51 51
                     $this->upgrade_from_2_4_2();
52 52
                 }
53 53
                 $this->upgrade_from_2_4();
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
                 // No break, intentionally, so all upgrades are ran during a single request...
60 60
         }
61 61
 
62
-        if ( true === $major_update ) {
62
+        if (true === $major_update) {
63 63
             $this->on_major_version_update();
64 64
         }
65 65
     }
@@ -71,19 +71,19 @@  discard block
 block discarded – undo
71 71
      *
72 72
      * @param string $target Target version to check against (ie., the currently running one).
73 73
      */
74
-    public static function check_installed_and_update( $target )
74
+    public static function check_installed_and_update($target)
75 75
     {
76
-        $db_version = autoptimizeOptionWrapper::get_option( 'autoptimize_version', 'none' );
77
-        if ( $db_version !== $target ) {
78
-            if ( 'none' === $db_version ) {
79
-                add_action( 'admin_notices', 'autoptimizeMain::notice_installed' );
76
+        $db_version = autoptimizeOptionWrapper::get_option('autoptimize_version', 'none');
77
+        if ($db_version !== $target) {
78
+            if ('none' === $db_version) {
79
+                add_action('admin_notices', 'autoptimizeMain::notice_installed');
80 80
             } else {
81
-                $updater = new self( $db_version );
81
+                $updater = new self($db_version);
82 82
                 $updater->run_needed_major_upgrades();
83 83
             }
84 84
 
85 85
             // Versions differed, upgrades happened if needed, store the new version.
86
-            autoptimizeOptionWrapper::update_option( 'autoptimize_version', $target );
86
+            autoptimizeOptionWrapper::update_option('autoptimize_version', $target);
87 87
         }
88 88
     }
89 89
 
@@ -94,10 +94,10 @@  discard block
 block discarded – undo
94 94
     protected function on_major_version_update()
95 95
     {
96 96
         // The transients guard here prevents stale object caches from busting the cache on every request.
97
-        if ( false == get_transient( 'autoptimize_stale_option_buster' ) ) {
98
-            set_transient( 'autoptimize_stale_option_buster', 'Mamsie & Liessie zehhe: ZWIJH!', HOUR_IN_SECONDS );
97
+        if (false == get_transient('autoptimize_stale_option_buster')) {
98
+            set_transient('autoptimize_stale_option_buster', 'Mamsie & Liessie zehhe: ZWIJH!', HOUR_IN_SECONDS);
99 99
             autoptimizeCache::clearall();
100
-            add_action( 'admin_notices', 'autoptimizeMain::notice_updated' );
100
+            add_action('admin_notices', 'autoptimizeMain::notice_updated');
101 101
         }
102 102
     }
103 103
 
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
     private function upgrade_from_1_6()
108 108
     {
109 109
         // If user was on version 1.6.x, force advanced options to be shown by default.
110
-        autoptimizeOptionWrapper::update_option( 'autoptimize_show_adv', '1' );
110
+        autoptimizeOptionWrapper::update_option('autoptimize_show_adv', '1');
111 111
 
112 112
         // And remove old options.
113 113
         $to_delete_options = array(
@@ -119,8 +119,8 @@  discard block
 block discarded – undo
119 119
             'autoptimize_cdn_img_url',
120 120
             'autoptimize_css_yui',
121 121
         );
122
-        foreach ( $to_delete_options as $del_opt ) {
123
-            delete_option( $del_opt );
122
+        foreach ($to_delete_options as $del_opt) {
123
+            delete_option($del_opt);
124 124
         }
125 125
     }
126 126
 
@@ -131,29 +131,29 @@  discard block
 block discarded – undo
131 131
      */
132 132
     private function upgrade_from_1_7()
133 133
     {
134
-        if ( ! is_multisite() ) {
135
-            $css_exclude = autoptimizeOptionWrapper::get_option( 'autoptimize_css_exclude' );
136
-            if ( empty( $css_exclude ) ) {
134
+        if (!is_multisite()) {
135
+            $css_exclude = autoptimizeOptionWrapper::get_option('autoptimize_css_exclude');
136
+            if (empty($css_exclude)) {
137 137
                 $css_exclude = 'admin-bar.min.css, dashicons.min.css';
138
-            } elseif ( false === strpos( $css_exclude, 'dashicons.min.css' ) ) {
138
+            } elseif (false === strpos($css_exclude, 'dashicons.min.css')) {
139 139
                 $css_exclude .= ', dashicons.min.css';
140 140
             }
141
-            autoptimizeOptionWrapper::update_option( 'autoptimize_css_exclude', $css_exclude );
141
+            autoptimizeOptionWrapper::update_option('autoptimize_css_exclude', $css_exclude);
142 142
         } else {
143 143
             global $wpdb;
144
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
144
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
145 145
             $original_blog_id = get_current_blog_id();
146
-            foreach ( $blog_ids as $blog_id ) {
147
-                switch_to_blog( $blog_id );
148
-                $css_exclude = autoptimizeOptionWrapper::get_option( 'autoptimize_css_exclude' );
149
-                if ( empty( $css_exclude ) ) {
146
+            foreach ($blog_ids as $blog_id) {
147
+                switch_to_blog($blog_id);
148
+                $css_exclude = autoptimizeOptionWrapper::get_option('autoptimize_css_exclude');
149
+                if (empty($css_exclude)) {
150 150
                     $css_exclude = 'admin-bar.min.css, dashicons.min.css';
151
-                } elseif ( false === strpos( $css_exclude, 'dashicons.min.css' ) ) {
151
+                } elseif (false === strpos($css_exclude, 'dashicons.min.css')) {
152 152
                     $css_exclude .= ', dashicons.min.css';
153 153
                 }
154
-                autoptimizeOptionWrapper::update_option( 'autoptimize_css_exclude', $css_exclude );
154
+                autoptimizeOptionWrapper::update_option('autoptimize_css_exclude', $css_exclude);
155 155
             }
156
-            switch_to_blog( $original_blog_id );
156
+            switch_to_blog($original_blog_id);
157 157
         }
158 158
     }
159 159
 
@@ -165,19 +165,19 @@  discard block
 block discarded – undo
165 165
      */
166 166
     private function upgrade_from_1_9()
167 167
     {
168
-        if ( ! is_multisite() ) {
169
-            autoptimizeOptionWrapper::update_option( 'autoptimize_css_include_inline', 'on' );
170
-            autoptimizeOptionWrapper::update_option( 'autoptimize_js_include_inline', 'on' );
168
+        if (!is_multisite()) {
169
+            autoptimizeOptionWrapper::update_option('autoptimize_css_include_inline', 'on');
170
+            autoptimizeOptionWrapper::update_option('autoptimize_js_include_inline', 'on');
171 171
         } else {
172 172
             global $wpdb;
173
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
173
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
174 174
             $original_blog_id = get_current_blog_id();
175
-            foreach ( $blog_ids as $blog_id ) {
176
-                switch_to_blog( $blog_id );
177
-                autoptimizeOptionWrapper::update_option( 'autoptimize_css_include_inline', 'on' );
178
-                autoptimizeOptionWrapper::update_option( 'autoptimize_js_include_inline', 'on' );
175
+            foreach ($blog_ids as $blog_id) {
176
+                switch_to_blog($blog_id);
177
+                autoptimizeOptionWrapper::update_option('autoptimize_css_include_inline', 'on');
178
+                autoptimizeOptionWrapper::update_option('autoptimize_js_include_inline', 'on');
179 179
             }
180
-            switch_to_blog( $original_blog_id );
180
+            switch_to_blog($original_blog_id);
181 181
         }
182 182
     }
183 183
 
@@ -188,17 +188,17 @@  discard block
 block discarded – undo
188 188
      */
189 189
     private function upgrade_from_2_2()
190 190
     {
191
-        if ( ! is_multisite() ) {
191
+        if (!is_multisite()) {
192 192
             $this->do_2_2_settings_update();
193 193
         } else {
194 194
             global $wpdb;
195
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
195
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
196 196
             $original_blog_id = get_current_blog_id();
197
-            foreach ( $blog_ids as $blog_id ) {
198
-                switch_to_blog( $blog_id );
197
+            foreach ($blog_ids as $blog_id) {
198
+                switch_to_blog($blog_id);
199 199
                 $this->do_2_2_settings_update();
200 200
             }
201
-            switch_to_blog( $original_blog_id );
201
+            switch_to_blog($original_blog_id);
202 202
         }
203 203
     }
204 204
 
@@ -207,12 +207,12 @@  discard block
 block discarded – undo
207 207
      */
208 208
     private function do_2_2_settings_update()
209 209
     {
210
-        $nogooglefont    = autoptimizeOptionWrapper::get_option( 'autoptimize_css_nogooglefont', '' );
211
-        $ao_extrasetting = autoptimizeOptionWrapper::get_option( 'autoptimize_extra_settings', '' );
212
-        if ( ( $nogooglefont ) && ( empty( $ao_extrasetting ) ) ) {
213
-            autoptimizeOptionWrapper::update_option( 'autoptimize_extra_settings', autoptimizeConfig::get_ao_extra_default_options() );
210
+        $nogooglefont    = autoptimizeOptionWrapper::get_option('autoptimize_css_nogooglefont', '');
211
+        $ao_extrasetting = autoptimizeOptionWrapper::get_option('autoptimize_extra_settings', '');
212
+        if (($nogooglefont) && (empty($ao_extrasetting))) {
213
+            autoptimizeOptionWrapper::update_option('autoptimize_extra_settings', autoptimizeConfig::get_ao_extra_default_options());
214 214
         }
215
-        delete_option( 'autoptimize_css_nogooglefont' );
215
+        delete_option('autoptimize_css_nogooglefont');
216 216
     }
217 217
 
218 218
     /**
@@ -224,33 +224,33 @@  discard block
 block discarded – undo
224 224
         $jobs = _get_cron_array();
225 225
 
226 226
         // Remove all ao_cachechecker cron jobs (for now).
227
-        foreach ( $jobs as $when => $job ) {
228
-            $name = key( $job );
227
+        foreach ($jobs as $when => $job) {
228
+            $name = key($job);
229 229
 
230
-            if ( false !== strpos( $name, 'ao_cachechecker' ) ) {
231
-                unset( $jobs[ $when ] );
230
+            if (false !== strpos($name, 'ao_cachechecker')) {
231
+                unset($jobs[$when]);
232 232
             }
233 233
         }
234 234
 
235 235
         // Save the data.
236
-        _set_cron_array( $jobs );
236
+        _set_cron_array($jobs);
237 237
     }
238 238
 
239 239
     /**
240 240
      * Migrate imgopt options from autoptimize_extra_settings to autoptimize_imgopt_settings
241 241
      */
242 242
     private function upgrade_from_2_4() {
243
-        $extra_settings  = autoptimizeOptionWrapper::get_option( 'autoptimize_extra_settings', '' );
244
-        $imgopt_settings = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_settings', '' );
245
-        if ( empty( $imgopt_settings ) && ! empty( $extra_settings ) ) {
243
+        $extra_settings  = autoptimizeOptionWrapper::get_option('autoptimize_extra_settings', '');
244
+        $imgopt_settings = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_settings', '');
245
+        if (empty($imgopt_settings) && !empty($extra_settings)) {
246 246
             $imgopt_settings = autoptimizeConfig::get_ao_imgopt_default_options();
247
-            if ( array_key_exists( 'autoptimize_extra_checkbox_field_5', $extra_settings ) ) {
247
+            if (array_key_exists('autoptimize_extra_checkbox_field_5', $extra_settings)) {
248 248
                 $imgopt_settings['autoptimize_imgopt_checkbox_field_1'] = $extra_settings['autoptimize_extra_checkbox_field_5'];
249 249
             }
250
-            if ( array_key_exists( 'autoptimize_extra_select_field_6', $extra_settings ) ) {
250
+            if (array_key_exists('autoptimize_extra_select_field_6', $extra_settings)) {
251 251
                 $imgopt_settings['autoptimize_imgopt_select_field_2'] = $extra_settings['autoptimize_extra_select_field_6'];
252 252
             }
253
-            autoptimizeOptionWrapper::update_option( 'autoptimize_imgopt_settings', $imgopt_settings );
253
+            autoptimizeOptionWrapper::update_option('autoptimize_imgopt_settings', $imgopt_settings);
254 254
         }
255 255
     }
256 256
 
@@ -258,11 +258,11 @@  discard block
 block discarded – undo
258 258
      * remove CCSS request limit option + update jquery exclusion to include WordPress 5.6 jquery.min.js.
259 259
      */    
260 260
     private function upgrade_from_2_7() {
261
-        delete_option( 'autoptimize_ccss_rlimit' );
262
-        $js_exclusions = get_option( 'autoptimize_js_exclude', '' );
263
-        if ( strpos( $js_exclusions, 'js/jquery/jquery.js' ) !== false && strpos( $js_exclusions, 'js/jquery/jquery.min.js' ) === false ) {
261
+        delete_option('autoptimize_ccss_rlimit');
262
+        $js_exclusions = get_option('autoptimize_js_exclude', '');
263
+        if (strpos($js_exclusions, 'js/jquery/jquery.js') !== false && strpos($js_exclusions, 'js/jquery/jquery.min.js') === false) {
264 264
             $js_exclusions .= ', js/jquery/jquery.min.js';
265
-            update_option( 'autoptimize_js_exclude', $js_exclusions );
265
+            update_option('autoptimize_js_exclude', $js_exclusions);
266 266
         }
267 267
     }
268 268
 }
Please login to merge, or discard this patch.
classes/autoptimizeCriticalCSSBase.php 1 patch
Spacing   +67 added lines, -67 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Critical CSS base file (initializes all ccss files).
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -19,35 +19,35 @@  discard block
 block discarded – undo
19 19
     public function __construct()
20 20
     {
21 21
         // define constant, but only once.
22
-        if ( ! defined( 'AO_CCSS_DIR' ) ) {
22
+        if (!defined('AO_CCSS_DIR')) {
23 23
             // Define a constant with the directory to store critical CSS in.
24
-            if ( is_multisite() ) {
24
+            if (is_multisite()) {
25 25
                 $blog_id = get_current_blog_id();
26
-                define( 'AO_CCSS_DIR', WP_CONTENT_DIR . '/uploads/ao_ccss/' . $blog_id . '/' );
26
+                define('AO_CCSS_DIR', WP_CONTENT_DIR.'/uploads/ao_ccss/'.$blog_id.'/');
27 27
             } else {
28
-                define( 'AO_CCSS_DIR', WP_CONTENT_DIR . '/uploads/ao_ccss/' );
28
+                define('AO_CCSS_DIR', WP_CONTENT_DIR.'/uploads/ao_ccss/');
29 29
             }
30 30
         }
31
-        if ( ! defined( 'AO_CCSS_VER' ) ) {
31
+        if (!defined('AO_CCSS_VER')) {
32 32
             // Define plugin version.
33
-            define( 'AO_CCSS_VER', 'AO_' . AUTOPTIMIZE_PLUGIN_VERSION );
33
+            define('AO_CCSS_VER', 'AO_'.AUTOPTIMIZE_PLUGIN_VERSION);
34 34
 
35 35
             // Define constants for criticalcss.com base path and API endpoints.
36 36
             // fixme: AO_CCSS_URL should be read from the autoptimize availability json stored as option.
37
-            define( 'AO_CCSS_URL', 'https://criticalcss.com' );
38
-            define( 'AO_CCSS_API', AO_CCSS_URL . '/api/premium/' );
39
-            define( 'AO_CCSS_SLEEP', 10 );
37
+            define('AO_CCSS_URL', 'https://criticalcss.com');
38
+            define('AO_CCSS_API', AO_CCSS_URL.'/api/premium/');
39
+            define('AO_CCSS_SLEEP', 10);
40 40
         }
41 41
 
42 42
         // Define support files locations, in case they are not already defined.
43
-        if ( ! defined( 'AO_CCSS_LOCK' ) ) {
44
-            define( 'AO_CCSS_LOCK', AO_CCSS_DIR . 'queue.lock' );
43
+        if (!defined('AO_CCSS_LOCK')) {
44
+            define('AO_CCSS_LOCK', AO_CCSS_DIR.'queue.lock');
45 45
         }
46
-        if ( ! defined( 'AO_CCSS_LOG' ) ) {
47
-            define( 'AO_CCSS_LOG', AO_CCSS_DIR . 'queuelog.html' );
46
+        if (!defined('AO_CCSS_LOG')) {
47
+            define('AO_CCSS_LOG', AO_CCSS_DIR.'queuelog.html');
48 48
         }
49
-        if ( ! defined( 'AO_CCSS_DEBUG' ) ) {
50
-            define( 'AO_CCSS_DEBUG', AO_CCSS_DIR . 'queue.json' );
49
+        if (!defined('AO_CCSS_DEBUG')) {
50
+            define('AO_CCSS_DEBUG', AO_CCSS_DIR.'queue.json');
51 51
         }
52 52
 
53 53
         $this->filepath = __FILE__;
@@ -60,19 +60,19 @@  discard block
 block discarded – undo
60 60
     {
61 61
         // get all options.
62 62
         $all_options = $this->fetch_options();
63
-        foreach ( $all_options as $option => $value ) {
63
+        foreach ($all_options as $option => $value) {
64 64
             ${$option} = $value;
65 65
         }
66 66
 
67 67
         // make sure the 10 minutes cron schedule is added.
68
-        add_filter( 'cron_schedules', array( $this, 'ao_ccss_interval' ) );
68
+        add_filter('cron_schedules', array($this, 'ao_ccss_interval'));
69 69
 
70 70
         // check if we need to upgrade.
71 71
         $this->check_upgrade();
72 72
 
73 73
         // make sure ao_ccss_queue is scheduled OK if an API key is set.
74
-        if ( isset( $ao_ccss_key ) && ! empty( $ao_ccss_key ) && ! wp_next_scheduled( 'ao_ccss_queue' ) ) {
75
-            wp_schedule_event( time(), apply_filters( 'ao_ccss_queue_schedule', 'ao_ccss' ), 'ao_ccss_queue' );
74
+        if (isset($ao_ccss_key) && !empty($ao_ccss_key) && !wp_next_scheduled('ao_ccss_queue')) {
75
+            wp_schedule_event(time(), apply_filters('ao_ccss_queue_schedule', 'ao_ccss'), 'ao_ccss_queue');
76 76
         }
77 77
     }
78 78
 
@@ -80,12 +80,12 @@  discard block
 block discarded – undo
80 80
         // Required libs, core is always needed.
81 81
         $criticalcss_core = new autoptimizeCriticalCSSCore();
82 82
 
83
-        if ( defined( 'WP_CLI' ) || defined( 'DOING_CRON' ) || is_admin() ) {
83
+        if (defined('WP_CLI') || defined('DOING_CRON') || is_admin()) {
84 84
             // TODO: also include if overridden somehow to force queue processing to be executed?
85 85
             $criticalcss_cron = new autoptimizeCriticalCSSCron();
86 86
         }
87 87
 
88
-        if ( is_admin() ) {
88
+        if (is_admin()) {
89 89
             $criticalcss_settings = new autoptimizeCriticalCSSSettings();
90 90
         } else {
91 91
             // enqueuing only done when not wp-admin.
@@ -96,51 +96,51 @@  discard block
 block discarded – undo
96 96
     public static function fetch_options() {
97 97
         static $autoptimize_ccss_options = null;
98 98
 
99
-        if ( null === $autoptimize_ccss_options ) {
99
+        if (null === $autoptimize_ccss_options) {
100 100
             // not cached yet, fetching from WordPress options.
101
-            $autoptimize_ccss_options['ao_css_defer']          = autoptimizeOptionWrapper::get_option( 'autoptimize_css_defer' );
102
-            $autoptimize_ccss_options['ao_css_defer_inline']   = autoptimizeOptionWrapper::get_option( 'autoptimize_css_defer_inline' );
103
-            $autoptimize_ccss_options['ao_ccss_rules_raw']     = get_option( 'autoptimize_ccss_rules', false );
104
-            $autoptimize_ccss_options['ao_ccss_additional']    = get_option( 'autoptimize_ccss_additional' );
105
-            $autoptimize_ccss_options['ao_ccss_queue_raw']     = get_option( 'autoptimize_ccss_queue', false );
106
-            $autoptimize_ccss_options['ao_ccss_viewport']      = get_option( 'autoptimize_ccss_viewport', false );
107
-            $autoptimize_ccss_options['ao_ccss_finclude']      = get_option( 'autoptimize_ccss_finclude', false );
108
-            $autoptimize_ccss_options['ao_ccss_rtimelimit']    = get_option( 'autoptimize_ccss_rtimelimit', '30' );
109
-            $autoptimize_ccss_options['ao_ccss_noptimize']     = get_option( 'autoptimize_ccss_noptimize', false );
110
-            $autoptimize_ccss_options['ao_ccss_debug']         = get_option( 'autoptimize_ccss_debug', false );
111
-            $autoptimize_ccss_options['ao_ccss_key']           = get_option( 'autoptimize_ccss_key' );
112
-            $autoptimize_ccss_options['ao_ccss_keyst']         = get_option( 'autoptimize_ccss_keyst' );
113
-            $autoptimize_ccss_options['ao_ccss_loggedin']      = get_option( 'autoptimize_ccss_loggedin', '1' );
114
-            $autoptimize_ccss_options['ao_ccss_forcepath']     = get_option( 'autoptimize_ccss_forcepath', '1' );
115
-            $autoptimize_ccss_options['ao_ccss_servicestatus'] = get_option( 'autoptimize_service_availablity' );
116
-            $autoptimize_ccss_options['ao_ccss_deferjquery']   = get_option( 'autoptimize_ccss_deferjquery', false );
117
-            $autoptimize_ccss_options['ao_ccss_domain']        = get_option( 'autoptimize_ccss_domain' );
118
-            $autoptimize_ccss_options['ao_ccss_unloadccss']    = get_option( 'autoptimize_ccss_unloadccss', false );
119
-
120
-            if ( strpos( $autoptimize_ccss_options['ao_ccss_domain'], 'http' ) === false && strpos( $autoptimize_ccss_options['ao_ccss_domain'], 'uggc' ) === 0 ) {
121
-                $autoptimize_ccss_options['ao_ccss_domain'] = str_rot13( $autoptimize_ccss_options['ao_ccss_domain'] );
122
-            } elseif ( strpos( $autoptimize_ccss_options['ao_ccss_domain'], 'http' ) !== false ) {
101
+            $autoptimize_ccss_options['ao_css_defer']          = autoptimizeOptionWrapper::get_option('autoptimize_css_defer');
102
+            $autoptimize_ccss_options['ao_css_defer_inline']   = autoptimizeOptionWrapper::get_option('autoptimize_css_defer_inline');
103
+            $autoptimize_ccss_options['ao_ccss_rules_raw']     = get_option('autoptimize_ccss_rules', false);
104
+            $autoptimize_ccss_options['ao_ccss_additional']    = get_option('autoptimize_ccss_additional');
105
+            $autoptimize_ccss_options['ao_ccss_queue_raw']     = get_option('autoptimize_ccss_queue', false);
106
+            $autoptimize_ccss_options['ao_ccss_viewport']      = get_option('autoptimize_ccss_viewport', false);
107
+            $autoptimize_ccss_options['ao_ccss_finclude']      = get_option('autoptimize_ccss_finclude', false);
108
+            $autoptimize_ccss_options['ao_ccss_rtimelimit']    = get_option('autoptimize_ccss_rtimelimit', '30');
109
+            $autoptimize_ccss_options['ao_ccss_noptimize']     = get_option('autoptimize_ccss_noptimize', false);
110
+            $autoptimize_ccss_options['ao_ccss_debug']         = get_option('autoptimize_ccss_debug', false);
111
+            $autoptimize_ccss_options['ao_ccss_key']           = get_option('autoptimize_ccss_key');
112
+            $autoptimize_ccss_options['ao_ccss_keyst']         = get_option('autoptimize_ccss_keyst');
113
+            $autoptimize_ccss_options['ao_ccss_loggedin']      = get_option('autoptimize_ccss_loggedin', '1');
114
+            $autoptimize_ccss_options['ao_ccss_forcepath']     = get_option('autoptimize_ccss_forcepath', '1');
115
+            $autoptimize_ccss_options['ao_ccss_servicestatus'] = get_option('autoptimize_service_availablity');
116
+            $autoptimize_ccss_options['ao_ccss_deferjquery']   = get_option('autoptimize_ccss_deferjquery', false);
117
+            $autoptimize_ccss_options['ao_ccss_domain']        = get_option('autoptimize_ccss_domain');
118
+            $autoptimize_ccss_options['ao_ccss_unloadccss']    = get_option('autoptimize_ccss_unloadccss', false);
119
+
120
+            if (strpos($autoptimize_ccss_options['ao_ccss_domain'], 'http') === false && strpos($autoptimize_ccss_options['ao_ccss_domain'], 'uggc') === 0) {
121
+                $autoptimize_ccss_options['ao_ccss_domain'] = str_rot13($autoptimize_ccss_options['ao_ccss_domain']);
122
+            } elseif (strpos($autoptimize_ccss_options['ao_ccss_domain'], 'http') !== false) {
123 123
                 // not rot13'ed yet, do so now (goal; avoid migration plugins change the bound domain).
124
-                update_option( 'autoptimize_ccss_domain', str_rot13( $autoptimize_ccss_options['ao_ccss_domain'] ) );
124
+                update_option('autoptimize_ccss_domain', str_rot13($autoptimize_ccss_options['ao_ccss_domain']));
125 125
             }
126 126
 
127 127
             // Setup the rules array.
128
-            if ( empty( $autoptimize_ccss_options['ao_ccss_rules_raw'] ) ) {
128
+            if (empty($autoptimize_ccss_options['ao_ccss_rules_raw'])) {
129 129
                 $autoptimize_ccss_options['ao_ccss_rules']['paths'] = array();
130 130
                 $autoptimize_ccss_options['ao_ccss_rules']['types'] = array();
131 131
             } else {
132
-                $autoptimize_ccss_options['ao_ccss_rules'] = json_decode( $autoptimize_ccss_options['ao_ccss_rules_raw'], true );
132
+                $autoptimize_ccss_options['ao_ccss_rules'] = json_decode($autoptimize_ccss_options['ao_ccss_rules_raw'], true);
133 133
             }
134 134
 
135 135
             // Setup the queue array.
136
-            if ( empty( $autoptimize_ccss_options['ao_ccss_queue_raw'] ) ) {
136
+            if (empty($autoptimize_ccss_options['ao_ccss_queue_raw'])) {
137 137
                 $autoptimize_ccss_options['ao_ccss_queue'] = array();
138 138
             } else {
139
-                $autoptimize_ccss_options['ao_ccss_queue'] = json_decode( $autoptimize_ccss_options['ao_ccss_queue_raw'], true );
139
+                $autoptimize_ccss_options['ao_ccss_queue'] = json_decode($autoptimize_ccss_options['ao_ccss_queue_raw'], true);
140 140
             }
141 141
 
142 142
             // Override API key if constant is defined.
143
-            if ( defined( 'AUTOPTIMIZE_CRITICALCSS_API_KEY' ) ) {
143
+            if (defined('AUTOPTIMIZE_CRITICALCSS_API_KEY')) {
144 144
                 $autoptimize_ccss_options['ao_ccss_key'] = AUTOPTIMIZE_CRITICALCSS_API_KEY;
145 145
             }
146 146
         }
@@ -152,49 +152,49 @@  discard block
 block discarded – undo
152 152
         global $ao_ccss_key;
153 153
 
154 154
         // Create the cache directory if it doesn't exist already.
155
-        if ( ! file_exists( AO_CCSS_DIR ) ) {
156
-            mkdir( AO_CCSS_DIR, 0755, true );
155
+        if (!file_exists(AO_CCSS_DIR)) {
156
+            mkdir(AO_CCSS_DIR, 0755, true);
157 157
         }
158 158
 
159 159
         // Create a scheduled event for the queue.
160
-        if ( isset( $ao_ccss_key ) && ! empty( $ao_ccss_key ) && ! wp_next_scheduled( 'ao_ccss_queue' ) ) {
161
-            wp_schedule_event( time(), apply_filters( 'ao_ccss_queue_schedule', 'ao_ccss' ), 'ao_ccss_queue' );
160
+        if (isset($ao_ccss_key) && !empty($ao_ccss_key) && !wp_next_scheduled('ao_ccss_queue')) {
161
+            wp_schedule_event(time(), apply_filters('ao_ccss_queue_schedule', 'ao_ccss'), 'ao_ccss_queue');
162 162
         }
163 163
 
164 164
         // Create a scheduled event for log maintenance.
165
-        if ( isset( $ao_ccss_key ) && ! empty( $ao_ccss_key ) && ! wp_next_scheduled( 'ao_ccss_maintenance' ) ) {
166
-            wp_schedule_event( time(), 'twicedaily', 'ao_ccss_maintenance' );
165
+        if (isset($ao_ccss_key) && !empty($ao_ccss_key) && !wp_next_scheduled('ao_ccss_maintenance')) {
166
+            wp_schedule_event(time(), 'twicedaily', 'ao_ccss_maintenance');
167 167
         }
168 168
     }
169 169
 
170 170
     public function check_upgrade() {
171
-        $db_version = get_option( 'autoptimize_ccss_version', '' );
172
-        if ( AO_CCSS_VER !== $db_version ) {
171
+        $db_version = get_option('autoptimize_ccss_version', '');
172
+        if (AO_CCSS_VER !== $db_version) {
173 173
             // check schedules & re-schedule if needed.
174 174
             $this->on_upgrade();
175 175
             // and update db_version.
176
-            update_option( 'autoptimize_ccss_version', AO_CCSS_VER );
176
+            update_option('autoptimize_ccss_version', AO_CCSS_VER);
177 177
         }
178 178
     }
179 179
 
180
-    public function ao_ccss_interval( $schedules ) {
180
+    public function ao_ccss_interval($schedules) {
181 181
         // Let interval be configurable.
182
-        if ( ! defined( 'AO_CCSS_DEBUG_INTERVAL' ) ) {
182
+        if (!defined('AO_CCSS_DEBUG_INTERVAL')) {
183 183
             $intsec = 600;
184 184
         } else {
185 185
             $intsec = AO_CCSS_DEBUG_INTERVAL;
186
-            if ( $intsec >= 120 ) {
187
-                $inttxt = $intsec / 60 . ' minutes';
186
+            if ($intsec >= 120) {
187
+                $inttxt = $intsec/60.' minutes';
188 188
             } else {
189
-                $inttxt = $intsec . ' second(s)';
189
+                $inttxt = $intsec.' second(s)';
190 190
             }
191
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Using custom WP-Cron interval of ' . $inttxt, 3 );
191
+            autoptimizeCriticalCSSCore::ao_ccss_log('Using custom WP-Cron interval of '.$inttxt, 3);
192 192
         }
193 193
 
194 194
         // Attach interval to schedule.
195 195
         $schedules['ao_ccss'] = array(
196 196
             'interval' => $intsec,
197
-            'display'  => __( 'Autoptimize CriticalCSS' ),
197
+            'display'  => __('Autoptimize CriticalCSS'),
198 198
         );
199 199
         return $schedules;
200 200
     }
Please login to merge, or discard this patch.
classes/autoptimizeCriticalCSSSettingsAjax.php 1 patch
Spacing   +109 added lines, -109 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Critical CSS settings AJAX logic.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -12,7 +12,7 @@  discard block
 block discarded – undo
12 12
     {
13 13
         // fetch all options at once and populate them individually explicitely as globals.
14 14
         $all_options = autoptimizeCriticalCSSBase::fetch_options();
15
-        foreach ( $all_options as $_option => $_value ) {
15
+        foreach ($all_options as $_option => $_value) {
16 16
             global ${$_option};
17 17
             ${$_option} = $_value;
18 18
         }
@@ -21,47 +21,47 @@  discard block
 block discarded – undo
21 21
 
22 22
     public function run() {
23 23
         // add filters.
24
-        add_action( 'wp_ajax_fetch_critcss', array( $this, 'critcss_fetch_callback' ) );
25
-        add_action( 'wp_ajax_save_critcss', array( $this, 'critcss_save_callback' ) );
26
-        add_action( 'wp_ajax_rm_critcss', array( $this, 'critcss_rm_callback' ) );
27
-        add_action( 'wp_ajax_rm_critcss_all', array( $this, 'critcss_rm_all_callback' ) );
28
-        add_action( 'wp_ajax_ao_ccss_export', array( $this, 'ao_ccss_export_callback' ) );
29
-        add_action( 'wp_ajax_ao_ccss_import', array( $this, 'ao_ccss_import_callback' ) );
24
+        add_action('wp_ajax_fetch_critcss', array($this, 'critcss_fetch_callback'));
25
+        add_action('wp_ajax_save_critcss', array($this, 'critcss_save_callback'));
26
+        add_action('wp_ajax_rm_critcss', array($this, 'critcss_rm_callback'));
27
+        add_action('wp_ajax_rm_critcss_all', array($this, 'critcss_rm_all_callback'));
28
+        add_action('wp_ajax_ao_ccss_export', array($this, 'ao_ccss_export_callback'));
29
+        add_action('wp_ajax_ao_ccss_import', array($this, 'ao_ccss_import_callback'));
30 30
     }
31 31
 
32 32
     public function critcss_fetch_callback() {
33 33
         // Ajax handler to obtain a critical CSS file from the filesystem.
34 34
         // Check referer.
35
-        check_ajax_referer( 'fetch_critcss_nonce', 'critcss_fetch_nonce' );
35
+        check_ajax_referer('fetch_critcss_nonce', 'critcss_fetch_nonce');
36 36
 
37 37
         // Initialize error flag.
38 38
         $error = true;
39 39
 
40 40
         // Allow no content for MANUAL rules (as they may not exist just yet).
41
-        if ( current_user_can( 'manage_options' ) && empty( $_POST['critcssfile'] ) ) {
41
+        if (current_user_can('manage_options') && empty($_POST['critcssfile'])) {
42 42
             $content = '';
43 43
             $error   = false;
44
-        } elseif ( current_user_can( 'manage_options' ) && $this->critcss_check_filename( $_POST['critcssfile'] ) ) {
44
+        } elseif (current_user_can('manage_options') && $this->critcss_check_filename($_POST['critcssfile'])) {
45 45
             // Or check user permissios and filename.
46 46
             // Set file path and obtain its content.
47
-            $critcssfile = AO_CCSS_DIR . strip_tags( $_POST['critcssfile'] );
48
-            if ( file_exists( $critcssfile ) ) {
49
-                $content = file_get_contents( $critcssfile );
47
+            $critcssfile = AO_CCSS_DIR.strip_tags($_POST['critcssfile']);
48
+            if (file_exists($critcssfile)) {
49
+                $content = file_get_contents($critcssfile);
50 50
                 $error   = false;
51 51
             }
52 52
         }
53 53
 
54 54
         // Prepare response.
55
-        if ( $error ) {
55
+        if ($error) {
56 56
             $response['code']   = '500';
57
-            $response['string'] = 'Error reading file ' . $critcssfile . '.';
57
+            $response['string'] = 'Error reading file '.$critcssfile.'.';
58 58
         } else {
59 59
             $response['code']   = '200';
60 60
             $response['string'] = $content;
61 61
         }
62 62
 
63 63
         // Dispatch respose.
64
-        echo json_encode( $response );
64
+        echo json_encode($response);
65 65
 
66 66
         // Close ajax request.
67 67
         wp_die();
@@ -74,22 +74,22 @@  discard block
 block discarded – undo
74 74
 
75 75
         // Ajax handler to write a critical CSS to the filesystem
76 76
         // Check referer.
77
-        check_ajax_referer( 'save_critcss_nonce', 'critcss_save_nonce' );
77
+        check_ajax_referer('save_critcss_nonce', 'critcss_save_nonce');
78 78
 
79 79
         // Allow empty contents for MANUAL rules (as they are fetched later).
80
-        if ( current_user_can( 'manage_options' ) && empty( $_POST['critcssfile'] ) ) {
80
+        if (current_user_can('manage_options') && empty($_POST['critcssfile'])) {
81 81
             $critcssfile = false;
82 82
             $status      = true;
83
-        } elseif ( current_user_can( 'manage_options' ) && $this->critcss_check_filename( $_POST['critcssfile'] ) ) {
83
+        } elseif (current_user_can('manage_options') && $this->critcss_check_filename($_POST['critcssfile'])) {
84 84
             // Or check user permissios and filename
85 85
             // Set critical CSS content.
86
-            $critcsscontents = stripslashes( $_POST['critcsscontents'] );
86
+            $critcsscontents = stripslashes($_POST['critcsscontents']);
87 87
 
88 88
             // If there is content and it's valid, write the file.
89
-            if ( $critcsscontents && autoptimizeCriticalCSSCore::ao_ccss_check_contents( $critcsscontents ) ) {
89
+            if ($critcsscontents && autoptimizeCriticalCSSCore::ao_ccss_check_contents($critcsscontents)) {
90 90
                 // Set file path and status.
91
-                $critcssfile = AO_CCSS_DIR . strip_tags( $_POST['critcssfile'] );
92
-                $status      = file_put_contents( $critcssfile, $critcsscontents, LOCK_EX );
91
+                $critcssfile = AO_CCSS_DIR.strip_tags($_POST['critcssfile']);
92
+                $status      = file_put_contents($critcssfile, $critcsscontents, LOCK_EX);
93 93
                 // Or set as error.
94 94
             } else {
95 95
                 $error = true;
@@ -100,20 +100,20 @@  discard block
 block discarded – undo
100 100
         }
101 101
 
102 102
         // Prepare response.
103
-        if ( ! $status || $error ) {
103
+        if (!$status || $error) {
104 104
             $response['code']   = '500';
105
-            $response['string'] = 'Error saving file ' . $critcssfile . '.';
105
+            $response['string'] = 'Error saving file '.$critcssfile.'.';
106 106
         } else {
107 107
             $response['code'] = '200';
108
-            if ( $critcssfile ) {
109
-                $response['string'] = 'File ' . $critcssfile . ' saved.';
108
+            if ($critcssfile) {
109
+                $response['string'] = 'File '.$critcssfile.' saved.';
110 110
             } else {
111 111
                 $response['string'] = 'Empty content do not need to be saved.';
112 112
             }
113 113
         }
114 114
 
115 115
         // Dispatch respose.
116
-        echo json_encode( $response );
116
+        echo json_encode($response);
117 117
 
118 118
         // Close ajax request.
119 119
         wp_die();
@@ -123,40 +123,40 @@  discard block
 block discarded – undo
123 123
     public function critcss_rm_callback() {
124 124
         // Ajax handler to delete a critical CSS from the filesystem
125 125
         // Check referer.
126
-        check_ajax_referer( 'rm_critcss_nonce', 'critcss_rm_nonce' );
126
+        check_ajax_referer('rm_critcss_nonce', 'critcss_rm_nonce');
127 127
 
128 128
         // Initialize error and status flags.
129 129
         $error  = true;
130 130
         $status = false;
131 131
 
132 132
         // Allow no file for MANUAL rules (as they may not exist just yet).
133
-        if ( current_user_can( 'manage_options' ) && empty( $_POST['critcssfile'] ) ) {
133
+        if (current_user_can('manage_options') && empty($_POST['critcssfile'])) {
134 134
             $error = false;
135
-        } elseif ( current_user_can( 'manage_options' ) && $this->critcss_check_filename( $_POST['critcssfile'] ) ) {
135
+        } elseif (current_user_can('manage_options') && $this->critcss_check_filename($_POST['critcssfile'])) {
136 136
             // Or check user permissios and filename
137 137
             // Set file path and delete it.
138
-            $critcssfile = AO_CCSS_DIR . strip_tags( $_POST['critcssfile'] );
139
-            if ( file_exists( $critcssfile ) ) {
140
-                $status = unlink( $critcssfile );
138
+            $critcssfile = AO_CCSS_DIR.strip_tags($_POST['critcssfile']);
139
+            if (file_exists($critcssfile)) {
140
+                $status = unlink($critcssfile);
141 141
                 $error  = false;
142 142
             }
143 143
         }
144 144
 
145 145
         // Prepare response.
146
-        if ( $error ) {
146
+        if ($error) {
147 147
             $response['code']   = '500';
148
-            $response['string'] = 'Error removing file ' . $critcssfile . '.';
148
+            $response['string'] = 'Error removing file '.$critcssfile.'.';
149 149
         } else {
150 150
             $response['code'] = '200';
151
-            if ( $status ) {
152
-                $response['string'] = 'File ' . $critcssfile . ' removed.';
151
+            if ($status) {
152
+                $response['string'] = 'File '.$critcssfile.' removed.';
153 153
             } else {
154 154
                 $response['string'] = 'No file to be removed.';
155 155
             }
156 156
         }
157 157
 
158 158
         // Dispatch respose.
159
-        echo json_encode( $response );
159
+        echo json_encode($response);
160 160
 
161 161
         // Close ajax request.
162 162
         wp_die();
@@ -165,28 +165,28 @@  discard block
 block discarded – undo
165 165
     public function critcss_rm_all_callback() {
166 166
         // Ajax handler to delete a critical CSS from the filesystem
167 167
         // Check referer.
168
-        check_ajax_referer( 'rm_critcss_all_nonce', 'critcss_rm_all_nonce' );
168
+        check_ajax_referer('rm_critcss_all_nonce', 'critcss_rm_all_nonce');
169 169
 
170 170
         // Initialize error and status flags.
171 171
         $error  = true;
172 172
         $status = false;
173 173
 
174 174
         // Remove all ccss files on filesystem.
175
-        if ( current_user_can( 'manage_options' ) ) {
176
-            if ( file_exists( AO_CCSS_DIR ) && is_dir( AO_CCSS_DIR ) ) {
177
-                array_map( 'unlink', glob( AO_CCSS_DIR . 'ccss_*.css', GLOB_BRACE ) );
175
+        if (current_user_can('manage_options')) {
176
+            if (file_exists(AO_CCSS_DIR) && is_dir(AO_CCSS_DIR)) {
177
+                array_map('unlink', glob(AO_CCSS_DIR.'ccss_*.css', GLOB_BRACE));
178 178
                 $error  = false;
179 179
                 $status = true;
180 180
             }
181 181
         }
182 182
 
183 183
         // Prepare response.
184
-        if ( $error ) {
184
+        if ($error) {
185 185
             $response['code']   = '500';
186 186
             $response['string'] = 'Error removing all critical CSS files.';
187 187
         } else {
188 188
             $response['code'] = '200';
189
-            if ( $status ) {
189
+            if ($status) {
190 190
                 $response['string'] = 'Critical CSS Files removed.';
191 191
             } else {
192 192
                 $response['string'] = 'No file removed.';
@@ -194,7 +194,7 @@  discard block
 block discarded – undo
194 194
         }
195 195
 
196 196
         // Dispatch respose.
197
-        echo json_encode( $response );
197
+        echo json_encode($response);
198 198
 
199 199
         // Close ajax request.
200 200
         wp_die();
@@ -203,70 +203,70 @@  discard block
 block discarded – undo
203 203
     public function ao_ccss_export_callback() {
204 204
         // Ajax handler export settings
205 205
         // Check referer.
206
-        check_ajax_referer( 'ao_ccss_export_nonce', 'ao_ccss_export_nonce' );
206
+        check_ajax_referer('ao_ccss_export_nonce', 'ao_ccss_export_nonce');
207 207
 
208
-        if ( ! class_exists( 'ZipArchive' ) ) {
208
+        if (!class_exists('ZipArchive')) {
209 209
             $response['code'] = '500';
210 210
             $response['msg']  = 'PHP ZipArchive not present, cannot create zipfile';
211
-            echo json_encode( $response );
211
+            echo json_encode($response);
212 212
             wp_die();
213 213
         }
214 214
 
215 215
         // Init array, get options and prepare the raw object.
216 216
         $settings               = array();
217
-        $settings['rules']      = get_option( 'autoptimize_ccss_rules' );
218
-        $settings['additional'] = get_option( 'autoptimize_ccss_additional' );
219
-        $settings['viewport']   = get_option( 'autoptimize_ccss_viewport' );
220
-        $settings['finclude']   = get_option( 'autoptimize_ccss_finclude' );
221
-        $settings['rtimelimit'] = get_option( 'autoptimize_ccss_rtimelimit' );
222
-        $settings['noptimize']  = get_option( 'autoptimize_ccss_noptimize' );
223
-        $settings['debug']      = get_option( 'autoptimize_ccss_debug' );
224
-        $settings['key']        = get_option( 'autoptimize_ccss_key' );
217
+        $settings['rules']      = get_option('autoptimize_ccss_rules');
218
+        $settings['additional'] = get_option('autoptimize_ccss_additional');
219
+        $settings['viewport']   = get_option('autoptimize_ccss_viewport');
220
+        $settings['finclude']   = get_option('autoptimize_ccss_finclude');
221
+        $settings['rtimelimit'] = get_option('autoptimize_ccss_rtimelimit');
222
+        $settings['noptimize']  = get_option('autoptimize_ccss_noptimize');
223
+        $settings['debug']      = get_option('autoptimize_ccss_debug');
224
+        $settings['key']        = get_option('autoptimize_ccss_key');
225 225
 
226 226
         // Initialize error flag.
227 227
         $error = true;
228 228
 
229 229
         // Check user permissions.
230
-        if ( current_user_can( 'manage_options' ) ) {
230
+        if (current_user_can('manage_options')) {
231 231
             // Prepare settings file path and content.
232
-            $exportfile = AO_CCSS_DIR . 'settings.json';
233
-            $contents   = json_encode( $settings );
234
-            $status     = file_put_contents( $exportfile, $contents, LOCK_EX );
232
+            $exportfile = AO_CCSS_DIR.'settings.json';
233
+            $contents   = json_encode($settings);
234
+            $status     = file_put_contents($exportfile, $contents, LOCK_EX);
235 235
             $error      = false;
236 236
         }
237 237
 
238 238
         // Prepare archive.
239
-        $zipfile = AO_CCSS_DIR . date( 'Ymd-H\hi' ) . '_ao_ccss_settings.zip';
240
-        $file    = pathinfo( $zipfile, PATHINFO_BASENAME );
239
+        $zipfile = AO_CCSS_DIR.date('Ymd-H\hi').'_ao_ccss_settings.zip';
240
+        $file    = pathinfo($zipfile, PATHINFO_BASENAME);
241 241
         $zip     = new ZipArchive();
242
-        $ret     = $zip->open( $zipfile, ZipArchive::CREATE );
243
-        if ( true !== $ret ) {
242
+        $ret     = $zip->open($zipfile, ZipArchive::CREATE);
243
+        if (true !== $ret) {
244 244
             $error = true;
245 245
         } else {
246
-            $zip->addFile( AO_CCSS_DIR . 'settings.json', 'settings.json' );
247
-            if ( file_exists( AO_CCSS_DIR . 'queue.json' ) ) {
248
-                $zip->addFile( AO_CCSS_DIR . 'queue.json', 'queue.json' );
246
+            $zip->addFile(AO_CCSS_DIR.'settings.json', 'settings.json');
247
+            if (file_exists(AO_CCSS_DIR.'queue.json')) {
248
+                $zip->addFile(AO_CCSS_DIR.'queue.json', 'queue.json');
249 249
             }
250 250
             $options = array(
251 251
                 'add_path'        => './',
252 252
                 'remove_all_path' => true,
253 253
             );
254
-            $zip->addGlob( AO_CCSS_DIR . '*.css', 0, $options );
254
+            $zip->addGlob(AO_CCSS_DIR.'*.css', 0, $options);
255 255
             $zip->close();
256 256
         }
257 257
 
258 258
         // Prepare response.
259
-        if ( ! $status || $error ) {
259
+        if (!$status || $error) {
260 260
             $response['code'] = '500';
261
-            $response['msg']  = 'Error saving file ' . $file . ', code: ' . $ret;
261
+            $response['msg']  = 'Error saving file '.$file.', code: '.$ret;
262 262
         } else {
263 263
             $response['code'] = '200';
264
-            $response['msg']  = 'File ' . $file . ' saved.';
264
+            $response['msg']  = 'File '.$file.' saved.';
265 265
             $response['file'] = $file;
266 266
         }
267 267
 
268 268
         // Dispatch respose.
269
-        echo json_encode( $response );
269
+        echo json_encode($response);
270 270
 
271 271
         // Close ajax request.
272 272
         wp_die();
@@ -275,30 +275,30 @@  discard block
 block discarded – undo
275 275
     public function ao_ccss_import_callback() {
276 276
         // Ajax handler import settings
277 277
         // Check referer.
278
-        check_ajax_referer( 'ao_ccss_import_nonce', 'ao_ccss_import_nonce' );
278
+        check_ajax_referer('ao_ccss_import_nonce', 'ao_ccss_import_nonce');
279 279
 
280 280
         // Initialize error flag.
281 281
         $error = false;
282 282
 
283 283
         // Process an uploaded file with no errors.
284
-        if ( current_user_can( 'manage_options' ) && ! $_FILES['file']['error'] && $_FILES['file']['size'] < 500001 && strpos( $_FILES['file']['name'], '.zip' ) === strlen( $_FILES['file']['name'] ) - 4 ) {
284
+        if (current_user_can('manage_options') && !$_FILES['file']['error'] && $_FILES['file']['size'] < 500001 && strpos($_FILES['file']['name'], '.zip') === strlen($_FILES['file']['name']) - 4) {
285 285
             // create tmp dir with hard guess name in AO_CCSS_DIR.
286
-            $_secret_dir     = wp_hash( uniqid( md5( AUTOPTIMIZE_CACHE_URL ), true ) );
287
-            $_import_tmp_dir = trailingslashit( AO_CCSS_DIR . $_secret_dir );
288
-            mkdir( $_import_tmp_dir );
286
+            $_secret_dir     = wp_hash(uniqid(md5(AUTOPTIMIZE_CACHE_URL), true));
287
+            $_import_tmp_dir = trailingslashit(AO_CCSS_DIR.$_secret_dir);
288
+            mkdir($_import_tmp_dir);
289 289
 
290 290
             // Save file to that tmp directory but give it our own name to prevent directory traversal risks when using original name.
291
-            $zipfile = $_import_tmp_dir . uniqid( 'import_settings-', true ) . '.zip';
292
-            move_uploaded_file( $_FILES['file']['tmp_name'], $zipfile );
291
+            $zipfile = $_import_tmp_dir.uniqid('import_settings-', true).'.zip';
292
+            move_uploaded_file($_FILES['file']['tmp_name'], $zipfile);
293 293
 
294 294
             // Extract archive in the tmp directory.
295 295
             $zip = new ZipArchive;
296
-            if ( $zip->open( $zipfile ) === true ) {
296
+            if ($zip->open($zipfile) === true) {
297 297
                 // loop through all files in the zipfile.
298 298
                 for ($i = 0; $i < $zip->numFiles; $i++) {
299 299
                     // but only extract known good files.
300
-                    if ( preg_match('/^settings\.json$|^ccss_[a-z0-9]{32}\.css$/', $zip->getNameIndex( $i ) ) > 0 ) {
301
-                        $zip->extractTo( AO_CCSS_DIR, $zip->getNameIndex( $i ) );
300
+                    if (preg_match('/^settings\.json$|^ccss_[a-z0-9]{32}\.css$/', $zip->getNameIndex($i)) > 0) {
301
+                        $zip->extractTo(AO_CCSS_DIR, $zip->getNameIndex($i));
302 302
                     }
303 303
                 }
304 304
                 $zip->close();
@@ -307,26 +307,26 @@  discard block
 block discarded – undo
307 307
             }
308 308
             
309 309
             // and remove temp. dir with all contents (the import-zipfile).
310
-            $this->rrmdir( $_import_tmp_dir );
310
+            $this->rrmdir($_import_tmp_dir);
311 311
 
312
-            if ( ! $error ) {
312
+            if (!$error) {
313 313
                 // Archive extraction ok, continue importing settings from AO_CCSS_DIR.
314 314
                 // Settings file.
315
-                $importfile = AO_CCSS_DIR . 'settings.json';
315
+                $importfile = AO_CCSS_DIR.'settings.json';
316 316
 
317
-                if ( file_exists( $importfile ) ) {
317
+                if (file_exists($importfile)) {
318 318
                     // Get settings and turn them into an object.
319
-                    $settings = json_decode( file_get_contents( $importfile ), true );
319
+                    $settings = json_decode(file_get_contents($importfile), true);
320 320
 
321 321
                     // Update options.
322
-                    update_option( 'autoptimize_ccss_rules', $settings['rules'] );
323
-                    update_option( 'autoptimize_ccss_additional', $settings['additional'] );
324
-                    update_option( 'autoptimize_ccss_viewport', $settings['viewport'] );
325
-                    update_option( 'autoptimize_ccss_finclude', $settings['finclude'] );
326
-                    update_option( 'autoptimize_ccss_rtimelimit', $settings['rtimelimit'] );
327
-                    update_option( 'autoptimize_ccss_noptimize', $settings['noptimize'] );
328
-                    update_option( 'autoptimize_ccss_debug', $settings['debug'] );
329
-                    update_option( 'autoptimize_ccss_key', $settings['key'] );
322
+                    update_option('autoptimize_ccss_rules', $settings['rules']);
323
+                    update_option('autoptimize_ccss_additional', $settings['additional']);
324
+                    update_option('autoptimize_ccss_viewport', $settings['viewport']);
325
+                    update_option('autoptimize_ccss_finclude', $settings['finclude']);
326
+                    update_option('autoptimize_ccss_rtimelimit', $settings['rtimelimit']);
327
+                    update_option('autoptimize_ccss_noptimize', $settings['noptimize']);
328
+                    update_option('autoptimize_ccss_debug', $settings['debug']);
329
+                    update_option('autoptimize_ccss_key', $settings['key']);
330 330
                 } else {
331 331
                     // Settings file doesn't exist, update error flag.
332 332
                     $error = 'settings file does not exist';
@@ -337,28 +337,28 @@  discard block
 block discarded – undo
337 337
         }
338 338
 
339 339
         // Prepare response.
340
-        if ( $error ) {
340
+        if ($error) {
341 341
             $response['code'] = '500';
342
-            $response['msg']  = 'Error importing settings: ' . $error;
342
+            $response['msg']  = 'Error importing settings: '.$error;
343 343
         } else {
344 344
             $response['code'] = '200';
345 345
             $response['msg']  = 'Settings imported successfully';
346 346
         }
347 347
 
348 348
         // Dispatch respose.
349
-        echo json_encode( $response );
349
+        echo json_encode($response);
350 350
 
351 351
         // Close ajax request.
352 352
         wp_die();
353 353
     }
354 354
 
355
-    public function critcss_check_filename( $filename ) {
355
+    public function critcss_check_filename($filename) {
356 356
         // Try to avoid directory traversal when reading/writing/deleting critical CSS files.
357
-        if ( strpos( $filename, 'ccss_' ) !== 0 ) {
357
+        if (strpos($filename, 'ccss_') !== 0) {
358 358
             return false;
359
-        } elseif ( substr( $filename, -4, 4 ) !== '.css' ) {
359
+        } elseif (substr($filename, -4, 4) !== '.css') {
360 360
             return false;
361
-        } elseif ( sanitize_file_name( $filename ) !== $filename ) {
361
+        } elseif (sanitize_file_name($filename) !== $filename) {
362 362
             // Use WordPress core's sanitize_file_name to see if anything fishy is going on.
363 363
             return false;
364 364
         } else {
@@ -366,14 +366,14 @@  discard block
 block discarded – undo
366 366
         }
367 367
     }
368 368
     
369
-    public function rrmdir( $path ) {
369
+    public function rrmdir($path) {
370 370
         // recursively remove a directory as found on
371 371
         // https://andy-carter.com/blog/recursively-remove-a-directory-in-php.
372
-        $files = glob($path . '/*');
373
-        foreach ( $files as $file ) {
374
-            is_dir( $file ) ? $this->rrmdir( $file ) : unlink( $file );
372
+        $files = glob($path.'/*');
373
+        foreach ($files as $file) {
374
+            is_dir($file) ? $this->rrmdir($file) : unlink($file);
375 375
         }
376
-        rmdir( $path );
376
+        rmdir($path);
377 377
 
378 378
         return;
379 379
     }
Please login to merge, or discard this patch.
classes/autoptimizeCache.php 1 patch
Spacing   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles disk-cache-related operations.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -38,22 +38,22 @@  discard block
 block discarded – undo
38 38
      * @param string $md5 Hash.
39 39
      * @param string $ext Extension.
40 40
      */
41
-    public function __construct( $md5, $ext = 'php' )
41
+    public function __construct($md5, $ext = 'php')
42 42
     {
43 43
         $_min_ext = '';
44
-        if ( apply_filters( 'autoptimize_filter_cache_url_add_min_ext', false ) ) {
44
+        if (apply_filters('autoptimize_filter_cache_url_add_min_ext', false)) {
45 45
             $_min_ext = '.min';
46 46
         }
47 47
 
48 48
         $this->cachedir = AUTOPTIMIZE_CACHE_DIR;
49 49
         $this->nogzip   = AUTOPTIMIZE_CACHE_NOGZIP;
50
-        if ( ! $this->nogzip ) {
51
-            $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . $_min_ext . '.php';
50
+        if (!$this->nogzip) {
51
+            $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.$_min_ext.'.php';
52 52
         } else {
53
-            if ( in_array( $ext, array( 'js', 'css' ) ) ) {
54
-                $this->filename = $ext . '/' . AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . $_min_ext . '.' . $ext;
53
+            if (in_array($ext, array('js', 'css'))) {
54
+                $this->filename = $ext.'/'.AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.$_min_ext.'.'.$ext;
55 55
             } else {
56
-                $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . $_min_ext . '.' . $ext;
56
+                $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.$_min_ext.'.'.$ext;
57 57
             }
58 58
         }
59 59
     }
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
      */
66 66
     public function check()
67 67
     {
68
-        return file_exists( $this->cachedir . $this->filename );
68
+        return file_exists($this->cachedir.$this->filename);
69 69
     }
70 70
 
71 71
     /**
@@ -75,11 +75,11 @@  discard block
 block discarded – undo
75 75
      */
76 76
     public function retrieve()
77 77
     {
78
-        if ( $this->check() ) {
79
-            if ( false == $this->nogzip ) {
80
-                return file_get_contents( $this->cachedir . $this->filename . '.none' );
78
+        if ($this->check()) {
79
+            if (false == $this->nogzip) {
80
+                return file_get_contents($this->cachedir.$this->filename.'.none');
81 81
             } else {
82
-                return file_get_contents( $this->cachedir . $this->filename );
82
+                return file_get_contents($this->cachedir.$this->filename);
83 83
             }
84 84
         }
85 85
         return false;
@@ -93,10 +93,10 @@  discard block
 block discarded – undo
93 93
      *
94 94
      * @return void
95 95
      */
96
-    public function cache( $data, $mime )
96
+    public function cache($data, $mime)
97 97
     {
98 98
         // readonly FS explicitly OK'ed by developer, so just pretend all is OK.
99
-        if ( defined( 'AUTOPTIMIZE_CACHE_READONLY' ) ) {
99
+        if (defined('AUTOPTIMIZE_CACHE_READONLY')) {
100 100
             return true;
101 101
         }
102 102
 
@@ -104,44 +104,44 @@  discard block
 block discarded – undo
104 104
         //
105 105
         // to be activated for users that experience these ugly errors;
106 106
         // PHP Warning: file_put_contents failed to open stream: No such file or directory.
107
-        if ( apply_filters( 'autoptimize_filter_cache_checkdirs_on_write', false ) ) {
107
+        if (apply_filters('autoptimize_filter_cache_checkdirs_on_write', false)) {
108 108
             $this->check_and_create_dirs();
109 109
         }
110 110
 
111
-        if ( false === $this->nogzip ) {
111
+        if (false === $this->nogzip) {
112 112
             // We handle gzipping ourselves.
113 113
             $file    = 'default.php';
114
-            $phpcode = file_get_contents( AUTOPTIMIZE_PLUGIN_DIR . 'config/' . $file );
115
-            $phpcode = str_replace( array( '%%CONTENT%%', 'exit;' ), array( $mime, '' ), $phpcode );
114
+            $phpcode = file_get_contents(AUTOPTIMIZE_PLUGIN_DIR.'config/'.$file);
115
+            $phpcode = str_replace(array('%%CONTENT%%', 'exit;'), array($mime, ''), $phpcode);
116 116
 
117
-            file_put_contents( $this->cachedir . $this->filename, $phpcode );
118
-            file_put_contents( $this->cachedir . $this->filename . '.none', $data );
117
+            file_put_contents($this->cachedir.$this->filename, $phpcode);
118
+            file_put_contents($this->cachedir.$this->filename.'.none', $data);
119 119
         } else {
120 120
             // Write code to cache without doing anything else.
121
-            file_put_contents( $this->cachedir . $this->filename, $data );
121
+            file_put_contents($this->cachedir.$this->filename, $data);
122 122
 
123 123
             // save fallback .js or .css file if filter true (to be false by default) but not if snippet or single.
124
-            if ( self::do_fallback() && strpos( $this->filename, '_snippet_' ) === false && strpos( $this->filename, '_single_' ) === false ) {
125
-                $_extension     = pathinfo( $this->filename, PATHINFO_EXTENSION );
126
-                $_fallback_file = AUTOPTIMIZE_CACHEFILE_PREFIX . 'fallback.' . $_extension;
127
-                if ( ( 'css' === $_extension || 'js' === $_extension ) && ! file_exists( $this->cachedir . $_extension . '/' . $_fallback_file ) ) {
128
-                    file_put_contents( $this->cachedir . $_extension . '/' . $_fallback_file, $data );
124
+            if (self::do_fallback() && strpos($this->filename, '_snippet_') === false && strpos($this->filename, '_single_') === false) {
125
+                $_extension     = pathinfo($this->filename, PATHINFO_EXTENSION);
126
+                $_fallback_file = AUTOPTIMIZE_CACHEFILE_PREFIX.'fallback.'.$_extension;
127
+                if (('css' === $_extension || 'js' === $_extension) && !file_exists($this->cachedir.$_extension.'/'.$_fallback_file)) {
128
+                    file_put_contents($this->cachedir.$_extension.'/'.$_fallback_file, $data);
129 129
                 }
130 130
             }
131 131
 
132
-            if ( apply_filters( 'autoptimize_filter_cache_create_static_gzip', false ) ) {
132
+            if (apply_filters('autoptimize_filter_cache_create_static_gzip', false)) {
133 133
                 // Create an additional cached gzip file.
134
-                file_put_contents( $this->cachedir . $this->filename . '.gz', gzencode( $data, 9, FORCE_GZIP ) );
134
+                file_put_contents($this->cachedir.$this->filename.'.gz', gzencode($data, 9, FORCE_GZIP));
135 135
                 // If PHP Brotli extension is installed, create an additional cached Brotli file.
136
-                if ( function_exists( 'brotli_compress' ) ) {
137
-                    file_put_contents( $this->cachedir . $this->filename . '.br', brotli_compress( $data, 11, BROTLI_GENERIC ) );
136
+                if (function_exists('brotli_compress')) {
137
+                    file_put_contents($this->cachedir.$this->filename.'.br', brotli_compress($data, 11, BROTLI_GENERIC));
138 138
                 }
139 139
             }
140 140
         }
141 141
 
142 142
         // Provide 3rd party action hook for every cache file that is created.
143 143
         // This hook can for example be used to inject a copy of the created cache file to a other domain.
144
-        do_action( 'autoptimize_action_cache_file_created', $this->cachedir . $this->filename );
144
+        do_action('autoptimize_action_cache_file_created', $this->cachedir.$this->filename);
145 145
     }
146 146
 
147 147
     /**
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
         // The original idea here was to provide 3rd party code a hook so that
157 157
         // it can "listen" to all the complete autoptimized-urls that the page
158 158
         // will emit... Or something to that effect I think?
159
-        apply_filters( 'autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL . $this->filename );
159
+        apply_filters('autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL.$this->filename);
160 160
 
161 161
         return $this->filename;
162 162
     }
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
      * @param string $file Filename.
170 170
      * @return bool
171 171
      */
172
-    protected static function is_valid_cache_file( $dir, $file )
172
+    protected static function is_valid_cache_file($dir, $file)
173 173
     {
174
-        if ( '.' !== $file && '..' !== $file &&
175
-            false !== strpos( $file, AUTOPTIMIZE_CACHEFILE_PREFIX ) &&
176
-            is_file( $dir . $file ) ) {
174
+        if ('.' !== $file && '..' !== $file &&
175
+            false !== strpos($file, AUTOPTIMIZE_CACHEFILE_PREFIX) &&
176
+            is_file($dir.$file)) {
177 177
 
178 178
             // It's a valid file!
179 179
             return true;
@@ -191,16 +191,16 @@  discard block
 block discarded – undo
191 191
     protected static function clear_cache_classic()
192 192
     {
193 193
         $contents = self::get_cache_contents();
194
-        foreach ( $contents as $name => $files ) {
195
-            $dir = rtrim( AUTOPTIMIZE_CACHE_DIR . $name, '/' ) . '/';
196
-            foreach ( $files as $file ) {
197
-                if ( self::is_valid_cache_file( $dir, $file ) ) {
198
-                    @unlink( $dir . $file ); // @codingStandardsIgnoreLine
194
+        foreach ($contents as $name => $files) {
195
+            $dir = rtrim(AUTOPTIMIZE_CACHE_DIR.$name, '/').'/';
196
+            foreach ($files as $file) {
197
+                if (self::is_valid_cache_file($dir, $file)) {
198
+                    @unlink($dir.$file); // @codingStandardsIgnoreLine
199 199
                 }
200 200
             }
201 201
         }
202 202
 
203
-        @unlink( AUTOPTIMIZE_CACHE_DIR . '/.htaccess' ); // @codingStandardsIgnoreLine
203
+        @unlink(AUTOPTIMIZE_CACHE_DIR.'/.htaccess'); // @codingStandardsIgnoreLine
204 204
     }
205 205
 
206 206
     /**
@@ -211,19 +211,19 @@  discard block
 block discarded – undo
211 211
      *
212 212
      * @return bool
213 213
      */
214
-    protected static function rmdir( $pathname )
214
+    protected static function rmdir($pathname)
215 215
     {
216
-        $files = self::get_dir_contents( $pathname );
217
-        foreach ( $files as $file ) {
218
-            $path = $pathname . '/' . $file;
219
-            if ( is_dir( $path ) ) {
220
-                self::rmdir( $path );
216
+        $files = self::get_dir_contents($pathname);
217
+        foreach ($files as $file) {
218
+            $path = $pathname.'/'.$file;
219
+            if (is_dir($path)) {
220
+                self::rmdir($path);
221 221
             } else {
222
-                unlink( $path );
222
+                unlink($path);
223 223
             }
224 224
         }
225 225
 
226
-        return rmdir( $pathname );
226
+        return rmdir($pathname);
227 227
     }
228 228
 
229 229
     /**
@@ -244,12 +244,12 @@  discard block
 block discarded – undo
244 244
         $new_name = self::get_unique_name();
245 245
 
246 246
         // Makes sure the new pathname is on the same level...
247
-        $new_pathname = dirname( $dir ) . '/' . $new_name;
248
-        $renamed      = @rename( $dir, $new_pathname ); // @codingStandardsIgnoreLine
247
+        $new_pathname = dirname($dir).'/'.$new_name;
248
+        $renamed      = @rename($dir, $new_pathname); // @codingStandardsIgnoreLine
249 249
 
250 250
         // When renamed, re-create the default cache directory back so it's
251 251
         // available again...
252
-        if ( $renamed ) {
252
+        if ($renamed) {
253 253
             $ok = self::cacheavail();
254 254
         }
255 255
 
@@ -263,7 +263,7 @@  discard block
 block discarded – undo
263 263
      */
264 264
     public static function advanced_cache_clear_enabled()
265 265
     {
266
-        return apply_filters( 'autoptimize_filter_cache_clear_advanced', false );
266
+        return apply_filters('autoptimize_filter_cache_clear_advanced', false);
267 267
     }
268 268
 
269 269
     /**
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
     protected static function get_unique_name()
275 275
     {
276 276
         $prefix   = self::get_advanced_cache_clear_prefix();
277
-        $new_name = uniqid( $prefix, true );
277
+        $new_name = uniqid($prefix, true);
278 278
 
279 279
         return $new_name;
280 280
     }
@@ -287,8 +287,8 @@  discard block
 block discarded – undo
287 287
     protected static function get_advanced_cache_clear_prefix()
288 288
     {
289 289
         $pathname = self::get_pathname_base();
290
-        $basename = basename( $pathname );
291
-        $prefix   = $basename . '-artifact-';
290
+        $basename = basename($pathname);
291
+        $prefix   = $basename.'-artifact-';
292 292
 
293 293
         return $prefix;
294 294
     }
@@ -301,9 +301,9 @@  discard block
 block discarded – undo
301 301
      *
302 302
      * @return array
303 303
      */
304
-    protected static function get_dir_contents( $pathname )
304
+    protected static function get_dir_contents($pathname)
305 305
     {
306
-        return array_slice( scandir( $pathname ), 2 );
306
+        return array_slice(scandir($pathname), 2);
307 307
     }
308 308
 
309 309
     /**
@@ -316,24 +316,24 @@  discard block
 block discarded – undo
316 316
     public static function delete_advanced_cache_clear_artifacts()
317 317
     {
318 318
         // Don't go through these motions (called from the cachechecker) if advanced cache clear isn't even active.
319
-        if ( ! self::advanced_cache_clear_enabled() ) {
319
+        if (!self::advanced_cache_clear_enabled()) {
320 320
             return false;
321 321
         }
322 322
 
323 323
         $dir    = self::get_pathname_base();
324 324
         $prefix = self::get_advanced_cache_clear_prefix();
325
-        $parent = dirname( $dir );
325
+        $parent = dirname($dir);
326 326
         $ok     = false;
327 327
 
328 328
         // Returns the list of files without '.' and '..' elements.
329
-        $files = self::get_dir_contents( $parent );
330
-        if ( is_array( $files ) && ! empty( $files ) ) {
331
-            foreach ( $files as $file ) {
332
-                $path     = $parent . '/' . $file;
333
-                $prefixed = ( false !== strpos( $path, $prefix ) );
329
+        $files = self::get_dir_contents($parent);
330
+        if (is_array($files) && !empty($files)) {
331
+            foreach ($files as $file) {
332
+                $path     = $parent.'/'.$file;
333
+                $prefixed = (false !== strpos($path, $prefix));
334 334
                 // Removing only our own (prefixed) directories...
335
-                if ( is_dir( $path ) && $prefixed ) {
336
-                    $ok = self::rmdir( $path );
335
+                if (is_dir($path) && $prefixed) {
336
+                    $ok = self::rmdir($path);
337 337
                 }
338 338
             }
339 339
         }
@@ -353,9 +353,9 @@  discard block
 block discarded – undo
353 353
     {
354 354
         $pathname = self::get_pathname_base();
355 355
 
356
-        if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
356
+        if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
357 357
             $blog_id   = get_current_blog_id();
358
-            $pathname .= $blog_id . '/';
358
+            $pathname .= $blog_id.'/';
359 359
         }
360 360
 
361 361
         return $pathname;
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
      */
369 369
     protected static function get_pathname_base()
370 370
     {
371
-        $pathname = WP_CONTENT_DIR . AUTOPTIMIZE_CACHE_CHILD_DIR;
371
+        $pathname = WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR;
372 372
 
373 373
         return $pathname;
374 374
     }
@@ -380,46 +380,46 @@  discard block
 block discarded – undo
380 380
      *
381 381
      * @return bool
382 382
      */
383
-    public static function clearall( $propagate = true )
383
+    public static function clearall($propagate = true)
384 384
     {
385
-        if ( ! self::cacheavail() ) {
385
+        if (!self::cacheavail()) {
386 386
             return false;
387 387
         }
388 388
 
389 389
         // TODO/FIXME: If cache is big, switch to advanced/new cache clearing automatically?
390
-        if ( self::advanced_cache_clear_enabled() ) {
390
+        if (self::advanced_cache_clear_enabled()) {
391 391
             self::clear_cache_via_rename();
392 392
         } else {
393 393
             self::clear_cache_classic();
394 394
         }
395 395
 
396 396
         // Remove 404 handler if required.
397
-        if ( self::do_fallback() ) {
398
-            $_fallback_php = trailingslashit( WP_CONTENT_DIR ) . 'autoptimize_404_handler.php';
399
-            @unlink( $_fallback_php ); // @codingStandardsIgnoreLine
397
+        if (self::do_fallback()) {
398
+            $_fallback_php = trailingslashit(WP_CONTENT_DIR).'autoptimize_404_handler.php';
399
+            @unlink($_fallback_php); // @codingStandardsIgnoreLine
400 400
         }
401 401
 
402 402
         // Remove the transient so it gets regenerated...
403
-        delete_transient( 'autoptimize_stats' );
403
+        delete_transient('autoptimize_stats');
404 404
 
405 405
         // Cache was just purged, clear page cache and allow others to hook into our purging...
406
-        if ( true === $propagate ) {
407
-            if ( ! function_exists( 'autoptimize_do_cachepurged_action' ) ) {
406
+        if (true === $propagate) {
407
+            if (!function_exists('autoptimize_do_cachepurged_action')) {
408 408
                 function autoptimize_do_cachepurged_action() {
409
-                    do_action( 'autoptimize_action_cachepurged' );
409
+                    do_action('autoptimize_action_cachepurged');
410 410
                 }
411 411
             }
412
-            add_action( 'shutdown', 'autoptimize_do_cachepurged_action', 11 );
413
-            add_action( 'autoptimize_action_cachepurged', array( 'autoptimizeCache', 'flushPageCache' ), 10, 0 );
412
+            add_action('shutdown', 'autoptimize_do_cachepurged_action', 11);
413
+            add_action('autoptimize_action_cachepurged', array('autoptimizeCache', 'flushPageCache'), 10, 0);
414 414
         }
415 415
 
416 416
         // Warm cache (part of speedupper)!
417
-        if ( apply_filters( 'autoptimize_filter_speedupper', true ) && false == get_transient( 'autoptimize_cache_warmer_protector' ) ) {
418
-            set_transient( 'autoptimize_cache_warmer_protector', 'I shall not warm cache for another 10 minutes.', 60 * 10 );
419
-            $url   = site_url() . '/?ao_speedup_cachebuster=' . rand( 1, 100000 );
420
-            $url   = apply_filters( 'autoptimize_filter_cache_warmer_url', $url );
421
-            $cache = @wp_remote_get( $url ); // @codingStandardsIgnoreLine
422
-            unset( $cache );
417
+        if (apply_filters('autoptimize_filter_speedupper', true) && false == get_transient('autoptimize_cache_warmer_protector')) {
418
+            set_transient('autoptimize_cache_warmer_protector', 'I shall not warm cache for another 10 minutes.', 60*10);
419
+            $url   = site_url().'/?ao_speedup_cachebuster='.rand(1, 100000);
420
+            $url   = apply_filters('autoptimize_filter_cache_warmer_url', $url);
421
+            $cache = @wp_remote_get($url); // @codingStandardsIgnoreLine
422
+            unset($cache);
423 423
         }
424 424
 
425 425
         return true;
@@ -434,7 +434,7 @@  discard block
 block discarded – undo
434 434
      */
435 435
     public static function clearall_actionless()
436 436
     {
437
-        return self::clearall( false );
437
+        return self::clearall(false);
438 438
     }
439 439
 
440 440
     /**
@@ -446,8 +446,8 @@  discard block
 block discarded – undo
446 446
     {
447 447
         $contents = array();
448 448
 
449
-        foreach ( array( '', 'js', 'css' ) as $dir ) {
450
-            $contents[ $dir ] = scandir( AUTOPTIMIZE_CACHE_DIR . $dir );
449
+        foreach (array('', 'js', 'css') as $dir) {
450
+            $contents[$dir] = scandir(AUTOPTIMIZE_CACHE_DIR.$dir);
451 451
         }
452 452
 
453 453
         return $contents;
@@ -460,21 +460,21 @@  discard block
 block discarded – undo
460 460
      */
461 461
     public static function stats()
462 462
     {
463
-        $stats = get_transient( 'autoptimize_stats' );
463
+        $stats = get_transient('autoptimize_stats');
464 464
 
465 465
         // If no transient, do the actual scan!
466
-        if ( ! is_array( $stats ) ) {
467
-            if ( ! self::cacheavail() ) {
466
+        if (!is_array($stats)) {
467
+            if (!self::cacheavail()) {
468 468
                 return 0;
469 469
             }
470 470
             $stats = self::stats_scan();
471 471
             $count = $stats[0];
472
-            if ( $count > 100 ) {
472
+            if ($count > 100) {
473 473
                 // Store results in transient.
474 474
                 set_transient(
475 475
                     'autoptimize_stats',
476 476
                     $stats,
477
-                    apply_filters( 'autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS )
477
+                    apply_filters('autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS)
478 478
                 );
479 479
             }
480 480
         }
@@ -497,30 +497,30 @@  discard block
 block discarded – undo
497 497
         $size  = 0;
498 498
 
499 499
         // Scan everything in our cache directories.
500
-        foreach ( self::get_cache_contents() as $name => $files ) {
501
-            $dir = rtrim( AUTOPTIMIZE_CACHE_DIR . $name, '/' ) . '/';
502
-            foreach ( $files as $file ) {
503
-                if ( self::is_valid_cache_file( $dir, $file ) ) {
504
-                    if ( AUTOPTIMIZE_CACHE_NOGZIP &&
500
+        foreach (self::get_cache_contents() as $name => $files) {
501
+            $dir = rtrim(AUTOPTIMIZE_CACHE_DIR.$name, '/').'/';
502
+            foreach ($files as $file) {
503
+                if (self::is_valid_cache_file($dir, $file)) {
504
+                    if (AUTOPTIMIZE_CACHE_NOGZIP &&
505 505
                         (
506
-                            false !== strpos( $file, '.js' ) ||
507
-                            false !== strpos( $file, '.css' ) ||
508
-                            false !== strpos( $file, '.img' ) ||
509
-                            false !== strpos( $file, '.txt' )
506
+                            false !== strpos($file, '.js') ||
507
+                            false !== strpos($file, '.css') ||
508
+                            false !== strpos($file, '.img') ||
509
+                            false !== strpos($file, '.txt')
510 510
                         )
511 511
                     ) {
512 512
                         // Web server is gzipping, we count .js|.css|.img|.txt files.
513 513
                         $count++;
514
-                    } elseif ( ! AUTOPTIMIZE_CACHE_NOGZIP && false !== strpos( $file, '.none' ) ) {
514
+                    } elseif (!AUTOPTIMIZE_CACHE_NOGZIP && false !== strpos($file, '.none')) {
515 515
                         // We are gzipping ourselves via php, counting only .none files.
516 516
                         $count++;
517 517
                     }
518
-                    $size += filesize( $dir . $file );
518
+                    $size += filesize($dir.$file);
519 519
                 }
520 520
             }
521 521
         }
522 522
 
523
-        $stats = array( $count, $size, time() );
523
+        $stats = array($count, $size, time());
524 524
 
525 525
         return $stats;
526 526
     }
@@ -535,26 +535,26 @@  discard block
 block discarded – undo
535 535
     public static function cacheavail()
536 536
     {
537 537
         // readonly FS explicitly OK'ed by dev, let's assume the cache dirs are there!
538
-        if ( defined( 'AUTOPTIMIZE_CACHE_READONLY' ) ) {
538
+        if (defined('AUTOPTIMIZE_CACHE_READONLY')) {
539 539
             return true;
540 540
         }
541 541
 
542
-        if ( false === autoptimizeCache::check_and_create_dirs() ) {
542
+        if (false === autoptimizeCache::check_and_create_dirs()) {
543 543
             return false;
544 544
         }
545 545
 
546 546
         // Using .htaccess inside our cache folder to overrule wp-super-cache.
547
-        $htaccess = AUTOPTIMIZE_CACHE_DIR . '/.htaccess';
548
-        if ( ! is_file( $htaccess ) ) {
547
+        $htaccess = AUTOPTIMIZE_CACHE_DIR.'/.htaccess';
548
+        if (!is_file($htaccess)) {
549 549
             /**
550 550
              * Create `wp-content/AO_htaccess_tmpl` file with
551 551
              * whatever htaccess rules you might need
552 552
              * if you want to override default AO htaccess
553 553
              */
554
-            $htaccess_tmpl = WP_CONTENT_DIR . '/AO_htaccess_tmpl';
555
-            if ( is_file( $htaccess_tmpl ) ) {
556
-                $content = file_get_contents( $htaccess_tmpl );
557
-            } elseif ( is_multisite() || ! AUTOPTIMIZE_CACHE_NOGZIP ) {
554
+            $htaccess_tmpl = WP_CONTENT_DIR.'/AO_htaccess_tmpl';
555
+            if (is_file($htaccess_tmpl)) {
556
+                $content = file_get_contents($htaccess_tmpl);
557
+            } elseif (is_multisite() || !AUTOPTIMIZE_CACHE_NOGZIP) {
558 558
                 $content = '<IfModule mod_expires.c>
559 559
         ExpiresActive On
560 560
         ExpiresByType text/css A30672000
@@ -608,13 +608,13 @@  discard block
 block discarded – undo
608 608
 </IfModule>';
609 609
             }
610 610
 
611
-            if ( self::do_fallback() === true ) {
612
-                $content .= "\nErrorDocument 404 " . trailingslashit( parse_url( content_url(), PHP_URL_PATH ) ) . 'autoptimize_404_handler.php';
611
+            if (self::do_fallback() === true) {
612
+                $content .= "\nErrorDocument 404 ".trailingslashit(parse_url(content_url(), PHP_URL_PATH)).'autoptimize_404_handler.php';
613 613
             }
614
-            @file_put_contents( $htaccess, $content ); // @codingStandardsIgnoreLine
614
+            @file_put_contents($htaccess, $content); // @codingStandardsIgnoreLine
615 615
         }
616 616
 
617
-        if ( self::do_fallback() ) {
617
+        if (self::do_fallback()) {
618 618
             self::check_fallback_php();
619 619
         }
620 620
 
@@ -629,17 +629,17 @@  discard block
 block discarded – undo
629 629
      */
630 630
     public static function check_fallback_php() {
631 631
         $_fallback_filename = 'autoptimize_404_handler.php';
632
-        $_fallback_php      = trailingslashit( WP_CONTENT_DIR ) . $_fallback_filename;
632
+        $_fallback_php      = trailingslashit(WP_CONTENT_DIR).$_fallback_filename;
633 633
         $_fallback_status   = true;
634 634
 
635
-        if ( ! file_exists( $_fallback_php ) && is_writable( WP_CONTENT_DIR ) ) {
636
-            $_fallback_php_contents = file_get_contents( AUTOPTIMIZE_PLUGIN_DIR . 'config/' . $_fallback_filename );
637
-            $_fallback_php_contents = str_replace( '<?php exit;', '<?php', $_fallback_php_contents );
638
-            $_fallback_php_contents = str_replace( '<!--ao-cache-dir-->', AUTOPTIMIZE_CACHE_DIR, $_fallback_php_contents );
639
-            if ( apply_filters( 'autoptimize_filter_cache_fallback_log_errors', false ) ) {
640
-                $_fallback_php_contents = str_replace( '// error_log', 'error_log', $_fallback_php_contents );
635
+        if (!file_exists($_fallback_php) && is_writable(WP_CONTENT_DIR)) {
636
+            $_fallback_php_contents = file_get_contents(AUTOPTIMIZE_PLUGIN_DIR.'config/'.$_fallback_filename);
637
+            $_fallback_php_contents = str_replace('<?php exit;', '<?php', $_fallback_php_contents);
638
+            $_fallback_php_contents = str_replace('<!--ao-cache-dir-->', AUTOPTIMIZE_CACHE_DIR, $_fallback_php_contents);
639
+            if (apply_filters('autoptimize_filter_cache_fallback_log_errors', false)) {
640
+                $_fallback_php_contents = str_replace('// error_log', 'error_log', $_fallback_php_contents);
641 641
             }
642
-            $_fallback_status = file_put_contents( $_fallback_php, $_fallback_php_contents );
642
+            $_fallback_status = file_put_contents($_fallback_php, $_fallback_php_contents);
643 643
         }
644 644
 
645 645
         return $_fallback_status;
@@ -656,8 +656,8 @@  discard block
 block discarded – undo
656 656
     public static function do_fallback() {
657 657
         static $_do_fallback = null;
658 658
 
659
-        if ( null === $_do_fallback ) {
660
-            $_do_fallback = (bool) apply_filters( 'autoptimize_filter_cache_do_fallback', autoptimizeOptionWrapper::get_option( 'autoptimize_cache_fallback', '1' ) );
659
+        if (null === $_do_fallback) {
660
+            $_do_fallback = (bool) apply_filters('autoptimize_filter_cache_do_fallback', autoptimizeOptionWrapper::get_option('autoptimize_cache_fallback', '1'));
661 661
         }
662 662
 
663 663
         return $_do_fallback;
@@ -669,31 +669,31 @@  discard block
 block discarded – undo
669 669
      * and 410'ing ("Gone") if fallback not available.
670 670
      */
671 671
     public static function wordpress_notfound_fallback() {
672
-        $original_request = strtok( $_SERVER['REQUEST_URI'], '?' );
673
-        if ( strpos( $original_request, wp_basename( WP_CONTENT_DIR ) . AUTOPTIMIZE_CACHE_CHILD_DIR ) !== false && is_404() ) {
672
+        $original_request = strtok($_SERVER['REQUEST_URI'], '?');
673
+        if (strpos($original_request, wp_basename(WP_CONTENT_DIR).AUTOPTIMIZE_CACHE_CHILD_DIR) !== false && is_404()) {
674 674
             // make sure this is not considered a 404.
675 675
             global $wp_query;
676 676
             $wp_query->is_404 = false;
677 677
 
678 678
             // set fallback path.
679
-            $js_or_css     = pathinfo( $original_request, PATHINFO_EXTENSION );
680
-            $fallback_path = AUTOPTIMIZE_CACHE_DIR . $js_or_css . '/autoptimize_fallback.' . $js_or_css;
679
+            $js_or_css     = pathinfo($original_request, PATHINFO_EXTENSION);
680
+            $fallback_path = AUTOPTIMIZE_CACHE_DIR.$js_or_css.'/autoptimize_fallback.'.$js_or_css;
681 681
 
682 682
             // prepare for Shakeeb's Unused CSS files to be 404-handled as well.
683
-            if ( strpos( $original_request, 'uucss/uucss-' ) !== false ) {
684
-                $original_request = preg_replace( '/uucss\/uucss-[a-z0-9]{32}-/', 'css/', $original_request  );
683
+            if (strpos($original_request, 'uucss/uucss-') !== false) {
684
+                $original_request = preg_replace('/uucss\/uucss-[a-z0-9]{32}-/', 'css/', $original_request);
685 685
             }
686 686
 
687 687
             // set fallback URL.
688
-            $fallback_target = preg_replace( '/(.*)_(?:[a-z0-9]{32})\.(js|css)$/', '${1}_fallback.${2}', $original_request );
688
+            $fallback_target = preg_replace('/(.*)_(?:[a-z0-9]{32})\.(js|css)$/', '${1}_fallback.${2}', $original_request);
689 689
 
690 690
             // redirect to fallback if possible.
691
-            if ( $original_request !== $fallback_target && file_exists( $fallback_path ) ) {
691
+            if ($original_request !== $fallback_target && file_exists($fallback_path)) {
692 692
                 // redirect to fallback.
693
-                wp_redirect( $fallback_target, 302 );
693
+                wp_redirect($fallback_target, 302);
694 694
             } else {
695 695
                 // return HTTP 410 (gone) reponse.
696
-                status_header( 410 );
696
+                status_header(410);
697 697
             }
698 698
         }
699 699
     }
@@ -705,13 +705,13 @@  discard block
 block discarded – undo
705 705
      * @return bool
706 706
      */
707 707
     public static function check_and_create_dirs() {
708
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
708
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
709 709
             // We didn't set a cache.
710 710
             return false;
711 711
         }
712 712
 
713
-        foreach ( array( '', 'js', 'css' ) as $dir ) {
714
-            if ( ! self::check_cache_dir( AUTOPTIMIZE_CACHE_DIR . $dir ) ) {
713
+        foreach (array('', 'js', 'css') as $dir) {
714
+            if (!self::check_cache_dir(AUTOPTIMIZE_CACHE_DIR.$dir)) {
715 715
                 return false;
716 716
             }
717 717
         }
@@ -726,25 +726,25 @@  discard block
 block discarded – undo
726 726
      *
727 727
      * @return bool
728 728
      */
729
-    protected static function check_cache_dir( $dir )
729
+    protected static function check_cache_dir($dir)
730 730
     {
731 731
         // Try creating the dir if it doesn't exist.
732
-        if ( ! file_exists( $dir ) ) {
733
-            @mkdir( $dir, 0775, true ); // @codingStandardsIgnoreLine
734
-            if ( ! file_exists( $dir ) ) {
732
+        if (!file_exists($dir)) {
733
+            @mkdir($dir, 0775, true); // @codingStandardsIgnoreLine
734
+            if (!file_exists($dir)) {
735 735
                 return false;
736 736
             }
737 737
         }
738 738
 
739 739
         // If we still cannot write, bail.
740
-        if ( ! is_writable( $dir ) ) {
740
+        if (!is_writable($dir)) {
741 741
             return false;
742 742
         }
743 743
 
744 744
         // Create an index.html in there to avoid prying eyes!
745
-        $idx_file = rtrim( $dir, '/\\' ) . '/index.html';
746
-        if ( ! is_file( $idx_file ) ) {
747
-            @file_put_contents( $idx_file, '<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>' ); // @codingStandardsIgnoreLine
745
+        $idx_file = rtrim($dir, '/\\').'/index.html';
746
+        if (!is_file($idx_file)) {
747
+            @file_put_contents($idx_file, '<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>'); // @codingStandardsIgnoreLine
748 748
         }
749 749
 
750 750
         return true;
@@ -758,54 +758,54 @@  discard block
 block discarded – undo
758 758
     // @codingStandardsIgnoreStart
759 759
     public static function flushPageCache()
760 760
     {
761
-        if ( function_exists( 'wp_cache_clear_cache' ) ) {
762
-            if ( is_multisite() ) {
761
+        if (function_exists('wp_cache_clear_cache')) {
762
+            if (is_multisite()) {
763 763
                 $blog_id = get_current_blog_id();
764
-                wp_cache_clear_cache( $blog_id );
764
+                wp_cache_clear_cache($blog_id);
765 765
             } else {
766 766
                 wp_cache_clear_cache();
767 767
             }
768
-        } elseif ( has_action( 'cachify_flush_cache' ) ) {
769
-            do_action( 'cachify_flush_cache' );
770
-        } elseif ( function_exists( 'w3tc_pgcache_flush' ) ) {
768
+        } elseif (has_action('cachify_flush_cache')) {
769
+            do_action('cachify_flush_cache');
770
+        } elseif (function_exists('w3tc_pgcache_flush')) {
771 771
             w3tc_pgcache_flush();
772
-        } elseif ( function_exists( 'wp_fast_cache_bulk_delete_all' ) ) {
772
+        } elseif (function_exists('wp_fast_cache_bulk_delete_all')) {
773 773
             wp_fast_cache_bulk_delete_all();
774
-        } elseif ( function_exists( 'rapidcache_clear_cache' ) ) {
774
+        } elseif (function_exists('rapidcache_clear_cache')) {
775 775
             rapidcache_clear_cache();
776
-        } elseif ( class_exists( 'Swift_Performance_Cache' ) ) {
776
+        } elseif (class_exists('Swift_Performance_Cache')) {
777 777
             Swift_Performance_Cache::clear_all_cache();
778
-        } elseif ( class_exists( 'WpFastestCache' ) ) {
778
+        } elseif (class_exists('WpFastestCache')) {
779 779
             $wpfc = new WpFastestCache();
780 780
             $wpfc->deleteCache();
781
-        } elseif ( class_exists( 'c_ws_plugin__qcache_purging_routines' ) ) {
781
+        } elseif (class_exists('c_ws_plugin__qcache_purging_routines')) {
782 782
             c_ws_plugin__qcache_purging_routines::purge_cache_dir(); // quick cache
783
-        } elseif ( class_exists( 'zencache' ) ) {
783
+        } elseif (class_exists('zencache')) {
784 784
             zencache::clear();
785
-        } elseif ( class_exists( 'comet_cache' ) ) {
785
+        } elseif (class_exists('comet_cache')) {
786 786
             comet_cache::clear();
787
-        } elseif ( class_exists( 'WpeCommon' ) ) {
787
+        } elseif (class_exists('WpeCommon')) {
788 788
             // WPEngine cache purge/flush methods to call by default
789 789
             $wpe_methods = array(
790 790
                 'purge_varnish_cache',
791 791
             );
792 792
 
793 793
             // More agressive clear/flush/purge behind a filter
794
-            if ( apply_filters( 'autoptimize_flush_wpengine_aggressive', false ) ) {
795
-                $wpe_methods = array_merge( $wpe_methods, array( 'purge_memcached', 'clear_maxcdn_cache' ) );
794
+            if (apply_filters('autoptimize_flush_wpengine_aggressive', false)) {
795
+                $wpe_methods = array_merge($wpe_methods, array('purge_memcached', 'clear_maxcdn_cache'));
796 796
             }
797 797
 
798 798
             // Filtering the entire list of WpeCommon methods to be called (for advanced usage + easier testing)
799
-            $wpe_methods = apply_filters( 'autoptimize_flush_wpengine_methods', $wpe_methods );
799
+            $wpe_methods = apply_filters('autoptimize_flush_wpengine_methods', $wpe_methods);
800 800
 
801
-            foreach ( $wpe_methods as $wpe_method ) {
802
-                if ( method_exists( 'WpeCommon', $wpe_method ) ) {
801
+            foreach ($wpe_methods as $wpe_method) {
802
+                if (method_exists('WpeCommon', $wpe_method)) {
803 803
                     WpeCommon::$wpe_method();
804 804
                 }
805 805
             }
806
-        } elseif ( function_exists( 'sg_cachepress_purge_cache' ) ) {
806
+        } elseif (function_exists('sg_cachepress_purge_cache')) {
807 807
             sg_cachepress_purge_cache();
808
-        } elseif ( array_key_exists( 'KINSTA_CACHE_ZONE', $_SERVER ) ) {
808
+        } elseif (array_key_exists('KINSTA_CACHE_ZONE', $_SERVER)) {
809 809
             $_kinsta_clear_cache_url = 'https://localhost/kinsta-clear-cache-all';
810 810
             $_kinsta_response        = wp_remote_get(
811 811
                 $_kinsta_clear_cache_url,
@@ -814,18 +814,18 @@  discard block
 block discarded – undo
814 814
                     'timeout' => 5,
815 815
                     )
816 816
             );
817
-        } elseif ( defined('NGINX_HELPER_BASENAME') ) {
818
-            do_action( 'rt_nginx_helper_purge_all' );
819
-        } elseif ( file_exists( WP_CONTENT_DIR . '/wp-cache-config.php' ) && function_exists( 'prune_super_cache' ) ) {
817
+        } elseif (defined('NGINX_HELPER_BASENAME')) {
818
+            do_action('rt_nginx_helper_purge_all');
819
+        } elseif (file_exists(WP_CONTENT_DIR.'/wp-cache-config.php') && function_exists('prune_super_cache')) {
820 820
             // fallback for WP-Super-Cache
821 821
             global $cache_path;
822
-            if ( is_multisite() ) {
822
+            if (is_multisite()) {
823 823
                 $blog_id = get_current_blog_id();
824
-                prune_super_cache( get_supercache_dir( $blog_id ), true );
825
-                prune_super_cache( $cache_path . 'blogs/', true );
824
+                prune_super_cache(get_supercache_dir($blog_id), true);
825
+                prune_super_cache($cache_path.'blogs/', true);
826 826
             } else {
827
-                prune_super_cache( $cache_path . 'supercache/', true );
828
-                prune_super_cache( $cache_path, true );
827
+                prune_super_cache($cache_path.'supercache/', true);
828
+                prune_super_cache($cache_path, true);
829 829
             }
830 830
         }
831 831
     }
Please login to merge, or discard this patch.
classes/autoptimizeCriticalCSSCron.php 1 patch
Spacing   +254 added lines, -254 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * processes the queue, submitting jobs to criticalcss.com and retrieving generated CSS from criticalcss.com and saving rules.
5 5
  */
6 6
 
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
     exit;
9 9
 }
10 10
 
@@ -13,23 +13,23 @@  discard block
 block discarded – undo
13 13
     {
14 14
         // fetch all options at once and populate them individually explicitely as globals.
15 15
         $all_options = autoptimizeCriticalCSSBase::fetch_options();
16
-        foreach ( $all_options as $_option => $_value ) {
16
+        foreach ($all_options as $_option => $_value) {
17 17
             global ${$_option};
18 18
             ${$_option} = $_value;
19 19
         }
20 20
 
21 21
         // Add queue control to a registered event.
22
-        add_action( 'ao_ccss_queue', array( $this, 'ao_ccss_queue_control' ) );
22
+        add_action('ao_ccss_queue', array($this, 'ao_ccss_queue_control'));
23 23
         // Add cleaning job to a registered event.
24
-        add_action( 'ao_ccss_maintenance', array( $this, 'ao_ccss_cleaning' ) );
24
+        add_action('ao_ccss_maintenance', array($this, 'ao_ccss_cleaning'));
25 25
     }
26 26
 
27 27
     public function ao_ccss_queue_control() {
28 28
         // The queue execution backend.
29 29
         global $ao_ccss_key;
30
-        if ( ! isset( $ao_ccss_key ) || empty( $ao_ccss_key ) ) {
30
+        if (!isset($ao_ccss_key) || empty($ao_ccss_key)) {
31 31
             // no key set, not processing the queue!
32
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'No key set, so not processing queue.', 3 );
32
+            autoptimizeCriticalCSSCore::ao_ccss_log('No key set, so not processing queue.', 3);
33 33
             return;
34 34
         }
35 35
 
@@ -50,35 +50,35 @@  discard block
 block discarded – undo
50 50
          *    When properly set, queue will always finish a job with the declared settings above regardless of the real API responses.
51 51
          */
52 52
         $queue_debug = false;
53
-        if ( file_exists( AO_CCSS_DEBUG ) ) {
54
-            $qdobj_raw = file_get_contents( AO_CCSS_DEBUG );
55
-            $qdobj     = json_decode( $qdobj_raw, true );
56
-            if ( $qdobj ) {
57
-                if ( 1 === $qdobj['enable'] ) {
53
+        if (file_exists(AO_CCSS_DEBUG)) {
54
+            $qdobj_raw = file_get_contents(AO_CCSS_DEBUG);
55
+            $qdobj     = json_decode($qdobj_raw, true);
56
+            if ($qdobj) {
57
+                if (1 === $qdobj['enable']) {
58 58
                     $queue_debug = true;
59
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue operating in debug mode with the following settings: <' . $qdobj_raw . '>', 3 );
59
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Queue operating in debug mode with the following settings: <'.$qdobj_raw.'>', 3);
60 60
                 }
61 61
             }
62 62
         }
63 63
 
64 64
         // Set some default values for $qdobj to avoid function call warnings.
65
-        if ( ! $queue_debug ) {
65
+        if (!$queue_debug) {
66 66
             $qdobj['htcode'] = false;
67 67
         }
68 68
 
69 69
         // Check if queue is already running.
70 70
         $queue_lock = false;
71
-        if ( file_exists( AO_CCSS_LOCK ) ) {
71
+        if (file_exists(AO_CCSS_LOCK)) {
72 72
             $queue_lock = true;
73 73
         }
74 74
 
75 75
         // Proceed with the queue if it's not already running.
76
-        if ( ! $queue_lock ) {
76
+        if (!$queue_lock) {
77 77
 
78 78
             // Log queue start and create the lock file.
79
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control started', 3 );
80
-            if ( touch( AO_CCSS_LOCK ) ) {
81
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control locked', 3 );
79
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue control started', 3);
80
+            if (touch(AO_CCSS_LOCK)) {
81
+                autoptimizeCriticalCSSCore::ao_ccss_log('Queue control locked', 3);
82 82
             }
83 83
 
84 84
             // Attach required variables.
@@ -86,45 +86,45 @@  discard block
 block discarded – undo
86 86
             global $ao_ccss_rtimelimit;
87 87
 
88 88
             // Initialize counters.
89
-            if ( $ao_ccss_rtimelimit == 0 ) {
89
+            if ($ao_ccss_rtimelimit == 0) {
90 90
                 // no time limit set, let's go with 1000 seconds.
91 91
                 $ao_ccss_rtimelimit = 1000;
92 92
             }
93 93
             $mt = time() + $ao_ccss_rtimelimit; // maxtime queue processing can run.
94 94
             $jc = 1; // job count number.
95 95
             $jr = 1; // jobs requests number.
96
-            $jt = count( $ao_ccss_queue ); // number of jobs in queue.
96
+            $jt = count($ao_ccss_queue); // number of jobs in queue.
97 97
 
98 98
             // Sort queue by ascending job status (e.g. ERROR, JOB_ONGOING, JOB_QUEUED, NEW...).
99
-            array_multisort( array_column( $ao_ccss_queue, 'jqstat' ), $ao_ccss_queue ); // @codingStandardsIgnoreLine
99
+            array_multisort(array_column($ao_ccss_queue, 'jqstat'), $ao_ccss_queue); // @codingStandardsIgnoreLine
100 100
 
101 101
             // Iterates over the entire queue.
102
-            foreach ( $ao_ccss_queue as $path => $jprops ) {
102
+            foreach ($ao_ccss_queue as $path => $jprops) {
103 103
                 // Prepare flags and target rule.
104 104
                 $update      = false;
105 105
                 $deljob      = false;
106 106
                 $rule_update = false;
107 107
                 $oldccssfile = false;
108
-                $trule       = explode( '|', $jprops['rtarget'] );
108
+                $trule       = explode('|', $jprops['rtarget']);
109 109
 
110 110
                 // Log job count.
111
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Processing job ' . $jc . ' of ' . $jt . ' with id <' . $jprops['ljid'] . '> and status <' . $jprops['jqstat'] . '>', 3 );
111
+                autoptimizeCriticalCSSCore::ao_ccss_log('Processing job '.$jc.' of '.$jt.' with id <'.$jprops['ljid'].'> and status <'.$jprops['jqstat'].'>', 3);
112 112
 
113 113
                 // Process NEW jobs.
114
-                if ( 'NEW' == $jprops['jqstat'] ) {
114
+                if ('NEW' == $jprops['jqstat']) {
115 115
 
116 116
                     // Log the new job.
117
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Found NEW job with local ID <' . $jprops['ljid'] . '>, starting its queue processing', 3 );
117
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Found NEW job with local ID <'.$jprops['ljid'].'>, starting its queue processing', 3);
118 118
 
119 119
                     // Compare job and rule hashes (if any).
120
-                    $hash = $this->ao_ccss_diff_hashes( $jprops['ljid'], $jprops['hash'], $jprops['hashes'], $jprops['rtarget'] );
120
+                    $hash = $this->ao_ccss_diff_hashes($jprops['ljid'], $jprops['hash'], $jprops['hashes'], $jprops['rtarget']);
121 121
 
122 122
                     // If job hash is new or different of a previous one.
123
-                    if ( $hash ) {
124
-                        if ( $jr > 2 ) {
123
+                    if ($hash) {
124
+                        if ($jr > 2) {
125 125
                             // we already posted 2 jobs to criticalcss.com, don't post more this run
126 126
                             // but we can keep on processing the queue to keep it tidy.
127
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Holding off on generating request for job with local ID <' . $jprops['ljid'] . '>, maximum number of POSTS reached.', 3 );
127
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Holding off on generating request for job with local ID <'.$jprops['ljid'].'>, maximum number of POSTS reached.', 3);
128 128
                             continue;
129 129
                         }
130 130
 
@@ -132,182 +132,182 @@  discard block
 block discarded – undo
132 132
                         $jprops['hash'] = $hash;
133 133
 
134 134
                         // Dispatch the job generate request and increment request count.
135
-                        $apireq = $this->ao_ccss_api_generate( $path, $queue_debug, $qdobj['htcode'] );
135
+                        $apireq = $this->ao_ccss_api_generate($path, $queue_debug, $qdobj['htcode']);
136 136
                         $jr++;
137 137
 
138 138
                         // NOTE: All the following conditions maps to the ones in admin_settings_queue.js.php.
139
-                        if ( 'JOB_QUEUED' == $apireq['job']['status'] || 'JOB_ONGOING' == $apireq['job']['status'] ) {
139
+                        if ('JOB_QUEUED' == $apireq['job']['status'] || 'JOB_ONGOING' == $apireq['job']['status']) {
140 140
                             // SUCCESS: request has a valid result.
141 141
                             // Update job properties.
142 142
                             $jprops['jid']    = $apireq['job']['id'];
143 143
                             $jprops['jqstat'] = $apireq['job']['status'];
144
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> generate request successful, remote id <' . $jprops['jid'] . '>, status now is <' . $jprops['jqstat'] . '>', 3 );
145
-                        } elseif ( 'STATUS_JOB_BAD' == $apireq['job']['status'] ) {
144
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> generate request successful, remote id <'.$jprops['jid'].'>, status now is <'.$jprops['jqstat'].'>', 3);
145
+                        } elseif ('STATUS_JOB_BAD' == $apireq['job']['status']) {
146 146
                             // ERROR: concurrent requests
147 147
                             // Update job properties.
148 148
                             $jprops['jid']    = $apireq['job']['id'];
149 149
                             $jprops['jqstat'] = $apireq['job']['status'];
150
-                            if ( $apireq['job']['error'] ) {
150
+                            if ($apireq['job']['error']) {
151 151
                                 $jprops['jrstat'] = $apireq['job']['error'];
152 152
                             } else {
153 153
                                 $jprops['jrstat'] = 'Baby did a bad bad thing';
154 154
                             }
155 155
                             $jprops['jvstat'] = 'NONE';
156
-                            $jprops['jftime'] = microtime( true );
157
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Concurrent requests when processing job id <' . $jprops['ljid'] . '>, job status is now <' . $jprops['jqstat'] . '>', 3 );
158
-                        } elseif ( 'INVALID_JWT_TOKEN' == $apireq['errorCode'] ) {
156
+                            $jprops['jftime'] = microtime(true);
157
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Concurrent requests when processing job id <'.$jprops['ljid'].'>, job status is now <'.$jprops['jqstat'].'>', 3);
158
+                        } elseif ('INVALID_JWT_TOKEN' == $apireq['errorCode']) {
159 159
                             // ERROR: key validation
160 160
                             // Update job properties.
161 161
                             $jprops['jqstat'] = $apireq['errorCode'];
162 162
                             $jprops['jrstat'] = $apireq['error'];
163 163
                             $jprops['jvstat'] = 'NONE';
164
-                            $jprops['jftime'] = microtime( true );
165
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'API key validation error when processing job id <' . $jprops['ljid'] . '>, job status is now <' . $jprops['jqstat'] . '>', 3 );
166
-                        } elseif ( empty( $apireq ) ) {
164
+                            $jprops['jftime'] = microtime(true);
165
+                            autoptimizeCriticalCSSCore::ao_ccss_log('API key validation error when processing job id <'.$jprops['ljid'].'>, job status is now <'.$jprops['jqstat'].'>', 3);
166
+                        } elseif (empty($apireq)) {
167 167
                             // ERROR: no response
168 168
                             // Update job properties.
169 169
                             $jprops['jqstat'] = 'NO_RESPONSE';
170 170
                             $jprops['jrstat'] = 'NONE';
171 171
                             $jprops['jvstat'] = 'NONE';
172
-                            $jprops['jftime'] = microtime( true );
173
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> request has no response, status now is <' . $jprops['jqstat'] . '>', 3 );
172
+                            $jprops['jftime'] = microtime(true);
173
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> request has no response, status now is <'.$jprops['jqstat'].'>', 3);
174 174
                         } else {
175 175
                             // UNKNOWN: unhandled generate exception
176 176
                             // Update job properties.
177 177
                             $jprops['jqstat'] = 'JOB_UNKNOWN';
178 178
                             $jprops['jrstat'] = 'NONE';
179 179
                             $jprops['jvstat'] = 'NONE';
180
-                            $jprops['jftime'] = microtime( true );
181
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> generate request has an UNKNOWN condition, status now is <' . $jprops['jqstat'] . '>, check log messages above for more information', 2 );
182
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
180
+                            $jprops['jftime'] = microtime(true);
181
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> generate request has an UNKNOWN condition, status now is <'.$jprops['jqstat'].'>, check log messages above for more information', 2);
182
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
183 183
                         }
184 184
                     } else {
185 185
                         // SUCCESS: Job hash is equal to a previous one, so it's done
186 186
                         // Update job status and finish time.
187 187
                         $jprops['jqstat'] = 'JOB_DONE';
188
-                        $jprops['jftime'] = microtime( true );
189
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> requires no further processing, status now is <' . $jprops['jqstat'] . '>', 3 );
188
+                        $jprops['jftime'] = microtime(true);
189
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> requires no further processing, status now is <'.$jprops['jqstat'].'>', 3);
190 190
                     }
191 191
 
192 192
                     // Set queue update flag.
193 193
                     $update = true;
194 194
 
195
-                } elseif ( 'JOB_QUEUED' == $jprops['jqstat'] || 'JOB_ONGOING' == $jprops['jqstat'] ) {
195
+                } elseif ('JOB_QUEUED' == $jprops['jqstat'] || 'JOB_ONGOING' == $jprops['jqstat']) {
196 196
                     // Process QUEUED and ONGOING jobs
197 197
                     // Log the pending job.
198
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Found PENDING job with local ID <' . $jprops['ljid'] . '>, continuing its queue processing', 3 );
198
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Found PENDING job with local ID <'.$jprops['ljid'].'>, continuing its queue processing', 3);
199 199
 
200 200
                     // Dispatch the job result request and increment request count.
201
-                    $apireq = $this->ao_ccss_api_results( $jprops['jid'], $queue_debug, $qdobj['htcode'] );
201
+                    $apireq = $this->ao_ccss_api_results($jprops['jid'], $queue_debug, $qdobj['htcode']);
202 202
 
203 203
                     // NOTE: All the following condigitons maps to the ones in admin_settings_queue.js.php
204 204
                     // Replace API response values if queue debugging is enabled and some value is set.
205
-                    if ( $queue_debug ) {
206
-                        if ( $qdobj['status'] ) {
205
+                    if ($queue_debug) {
206
+                        if ($qdobj['status']) {
207 207
                             $apireq['status'] = $qdobj['status'];
208 208
                         }
209
-                        if ( $qdobj['resultStatus'] ) {
209
+                        if ($qdobj['resultStatus']) {
210 210
                             $apireq['resultStatus'] = $qdobj['resultStatus'];
211 211
                         }
212
-                        if ( $qdobj['validationStatus'] ) {
212
+                        if ($qdobj['validationStatus']) {
213 213
                             $apireq['validationStatus'] = $qdobj['validationStatus'];
214 214
                         }
215 215
                     }
216 216
 
217
-                    if ( 'JOB_QUEUED' == $apireq['status'] || 'JOB_ONGOING' == $apireq['status'] ) {
217
+                    if ('JOB_QUEUED' == $apireq['status'] || 'JOB_ONGOING' == $apireq['status']) {
218 218
                         // SUCCESS: request has a valid result
219 219
                         // Process a PENDING job
220 220
                         // Update job properties.
221 221
                         $jprops['jqstat'] = $apireq['status'];
222
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . '> unchanged', 3 );
223
-                    } elseif ( 'JOB_DONE' == $apireq['status'] ) {
222
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].'> unchanged', 3);
223
+                    } elseif ('JOB_DONE' == $apireq['status']) {
224 224
                         // Process a DONE job
225 225
                         // New resultStatus from ccss.com "HTML_404", consider as "GOOD" for now.
226
-                        if ( 'HTML_404' == $apireq['resultStatus'] ) {
226
+                        if ('HTML_404' == $apireq['resultStatus']) {
227 227
                             $apireq['resultStatus'] = 'GOOD';
228 228
                         }
229 229
 
230
-                        if ( 'GOOD' == $apireq['resultStatus'] && 'GOOD' == $apireq['validationStatus'] ) {
230
+                        if ('GOOD' == $apireq['resultStatus'] && 'GOOD' == $apireq['validationStatus']) {
231 231
                             // SUCCESS: GOOD job with GOOD validation
232 232
                             // Update job properties.
233
-                            $jprops['file']   = $this->ao_ccss_save_file( $apireq['css'], $trule, false );
233
+                            $jprops['file']   = $this->ao_ccss_save_file($apireq['css'], $trule, false);
234 234
                             $jprops['jqstat'] = $apireq['status'];
235 235
                             $jprops['jrstat'] = $apireq['resultStatus'];
236 236
                             $jprops['jvstat'] = $apireq['validationStatus'];
237
-                            $jprops['jftime'] = microtime( true );
237
+                            $jprops['jftime'] = microtime(true);
238 238
                             $rule_update      = true;
239
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . '>, file saved <' . $jprops['file'] . '>', 3 );
240
-                        } elseif ( 'GOOD' == $apireq['resultStatus'] && ( 'WARN' == $apireq['validationStatus'] || 'BAD' == $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' == $apireq['validationStatus'] ) ) {
239
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].'>, file saved <'.$jprops['file'].'>', 3);
240
+                        } elseif ('GOOD' == $apireq['resultStatus'] && ('WARN' == $apireq['validationStatus'] || 'BAD' == $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' == $apireq['validationStatus'])) {
241 241
                             // SUCCESS: GOOD job with WARN or BAD validation
242 242
                             // Update job properties.
243 243
                             $jprops['jqstat'] = $apireq['status'];
244 244
                             $jprops['jrstat'] = $apireq['resultStatus'];
245 245
                             $jprops['jvstat'] = $apireq['validationStatus'];
246
-                            $jprops['jftime'] = microtime( true );
247
-                            if ( apply_filters( 'autoptimize_filter_ccss_save_review_rules', true ) ) {
248
-                                $jprops['file']   = $this->ao_ccss_save_file( $apireq['css'], $trule, true );
246
+                            $jprops['jftime'] = microtime(true);
247
+                            if (apply_filters('autoptimize_filter_ccss_save_review_rules', true)) {
248
+                                $jprops['file']   = $this->ao_ccss_save_file($apireq['css'], $trule, true);
249 249
                                 $rule_update      = true;
250
-                                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . ', file saved <' . $jprops['file'] . '> but requires REVIEW', 3 );
250
+                                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].', file saved <'.$jprops['file'].'> but requires REVIEW', 3);
251 251
                             } else {
252
-                                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . ', file saved <' . $jprops['file'] . '> but required REVIEW so not saved.', 3 );
252
+                                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].', file saved <'.$jprops['file'].'> but required REVIEW so not saved.', 3);
253 253
                             }
254
-                        } elseif ( 'GOOD' != $apireq['resultStatus'] && ( 'GOOD' != $apireq['validationStatus'] || 'WARN' != $apireq['validationStatus'] || 'BAD' != $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' != $apireq['validationStatus'] ) ) {
254
+                        } elseif ('GOOD' != $apireq['resultStatus'] && ('GOOD' != $apireq['validationStatus'] || 'WARN' != $apireq['validationStatus'] || 'BAD' != $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' != $apireq['validationStatus'])) {
255 255
                             // ERROR: no GOOD, WARN or BAD results
256 256
                             // Update job properties.
257 257
                             $jprops['jqstat'] = $apireq['status'];
258 258
                             $jprops['jrstat'] = $apireq['resultStatus'];
259 259
                             $jprops['jvstat'] = $apireq['validationStatus'];
260
-                            $jprops['jftime'] = microtime( true );
261
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
260
+                            $jprops['jftime'] = microtime(true);
261
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
262 262
                             $apireq['css'] = '/* critical css removed for DEBUG logging purposes */';
263
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
263
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
264 264
                         } else {
265 265
                             // UNKNOWN: unhandled JOB_DONE exception
266 266
                             // Update job properties.
267 267
                             $jprops['jqstat'] = 'JOB_UNKNOWN';
268 268
                             $jprops['jrstat'] = $apireq['resultStatus'];
269 269
                             $jprops['jvstat'] = $apireq['validationStatus'];
270
-                            $jprops['jftime'] = microtime( true );
271
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job is UNKNOWN, status now is <' . $jprops['jqstat'] . '>', 2 );
270
+                            $jprops['jftime'] = microtime(true);
271
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job is UNKNOWN, status now is <'.$jprops['jqstat'].'>', 2);
272 272
                             $apireq['css'] = '/* critical css removed for DEBUG logging purposes */';
273
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
273
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
274 274
                         }
275
-                    } elseif ( 'JOB_FAILED' == $apireq['job']['status'] || 'STATUS_JOB_BAD' == $apireq['job']['status'] ) {
275
+                    } elseif ('JOB_FAILED' == $apireq['job']['status'] || 'STATUS_JOB_BAD' == $apireq['job']['status']) {
276 276
                         // ERROR: failed job
277 277
                         // Update job properties.
278 278
                         $jprops['jqstat'] = $apireq['job']['status'];
279
-                        if ( $apireq['job']['error'] ) {
279
+                        if ($apireq['job']['error']) {
280 280
                             $jprops['jrstat'] = $apireq['job']['error'];
281 281
                         } else {
282 282
                             $jprops['jrstat'] = 'Baby did a bad bad thing';
283 283
                         }
284 284
                         $jprops['jvstat'] = 'NONE';
285
-                        $jprops['jftime'] = microtime( true );
286
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
287
-                    } elseif ( 'This css no longer exists. Please re-generate it.' == $apireq['error'] ) {
285
+                        $jprops['jftime'] = microtime(true);
286
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
287
+                    } elseif ('This css no longer exists. Please re-generate it.' == $apireq['error']) {
288 288
                         // ERROR: CSS doesn't exist
289 289
                         // Update job properties.
290 290
                         $jprops['jqstat'] = 'NO_CSS';
291 291
                         $jprops['jrstat'] = $apireq['error'];
292 292
                         $jprops['jvstat'] = 'NONE';
293
-                        $jprops['jftime'] = microtime( true );
294
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
295
-                    } elseif ( empty( $apireq ) ) {
293
+                        $jprops['jftime'] = microtime(true);
294
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
295
+                    } elseif (empty($apireq)) {
296 296
                         // ERROR: no response
297 297
                         // Update job properties.
298 298
                         $jprops['jqstat'] = 'NO_RESPONSE';
299 299
                         $jprops['jrstat'] = 'NONE';
300 300
                         $jprops['jvstat'] = 'NONE';
301
-                        $jprops['jftime'] = microtime( true );
302
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> request has no response, status now is <' . $jprops['jqstat'] . '>', 3 );
301
+                        $jprops['jftime'] = microtime(true);
302
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> request has no response, status now is <'.$jprops['jqstat'].'>', 3);
303 303
                     } else {
304 304
                         // UNKNOWN: unhandled results exception
305 305
                         // Update job properties.
306 306
                         $jprops['jqstat'] = 'JOB_UNKNOWN';
307 307
                         $jprops['jrstat'] = 'NONE';
308 308
                         $jprops['jvstat'] = 'NONE';
309
-                        $jprops['jftime'] = microtime( true );
310
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request has an UNKNOWN condition, status now is <' . $jprops['jqstat'] . '>, check log messages above for more information', 2 );
309
+                        $jprops['jftime'] = microtime(true);
310
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request has an UNKNOWN condition, status now is <'.$jprops['jqstat'].'>, check log messages above for more information', 2);
311 311
                     }
312 312
 
313 313
                     // Set queue update flag.
@@ -315,40 +315,40 @@  discard block
 block discarded – undo
315 315
                 }
316 316
 
317 317
                 // Mark DONE jobs for removal.
318
-                if ( 'JOB_DONE' == $jprops['jqstat'] ) {
318
+                if ('JOB_DONE' == $jprops['jqstat']) {
319 319
                     $update = true;
320 320
                     $deljob = true;
321 321
                 }
322 322
 
323 323
                 // Persist updated queue object.
324
-                if ( $update ) {
325
-                    if ( ! $deljob ) {
324
+                if ($update) {
325
+                    if (!$deljob) {
326 326
                         // Update properties of a NEW or PENDING job...
327
-                        $ao_ccss_queue[ $path ] = $jprops;
327
+                        $ao_ccss_queue[$path] = $jprops;
328 328
                     } else {
329 329
                         // ...or remove the DONE job.
330
-                        unset( $ao_ccss_queue[ $path ] );
331
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> is DONE and was removed from the queue', 3 );
330
+                        unset($ao_ccss_queue[$path]);
331
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> is DONE and was removed from the queue', 3);
332 332
                     }
333 333
 
334 334
                     // Update queue object.
335
-                    $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
336
-                    update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
337
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue updated by job id <' . $jprops['ljid'] . '>', 3 );
335
+                    $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
336
+                    update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
337
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Queue updated by job id <'.$jprops['ljid'].'>', 3);
338 338
 
339 339
                     // Update target rule.
340
-                    if ( $rule_update ) {
341
-                        $this->ao_ccss_rule_update( $jprops['ljid'], $jprops['rtarget'], $jprops['file'], $jprops['hash'] );
342
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> updated the target rule <' . $jprops['rtarget'] . '>', 3 );
340
+                    if ($rule_update) {
341
+                        $this->ao_ccss_rule_update($jprops['ljid'], $jprops['rtarget'], $jprops['file'], $jprops['hash']);
342
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> updated the target rule <'.$jprops['rtarget'].'>', 3);
343 343
                     }
344 344
                 } else {
345 345
                     // Or log no queue action.
346
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Nothing to do on this job', 3 );
346
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Nothing to do on this job', 3);
347 347
                 }
348 348
 
349 349
                 // Break the loop if request time limit is (almost exceeded).
350
-                if ( time() > $mt ) {
351
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'The time limit of ' . $ao_ccss_rtimelimit . ' seconds was exceeded, queue control must finish now', 3 );
350
+                if (time() > $mt) {
351
+                    autoptimizeCriticalCSSCore::ao_ccss_log('The time limit of '.$ao_ccss_rtimelimit.' seconds was exceeded, queue control must finish now', 3);
352 352
                     break;
353 353
                 }
354 354
 
@@ -357,46 +357,46 @@  discard block
 block discarded – undo
357 357
             }
358 358
 
359 359
             // Remove the lock file and log the queue end.
360
-            if ( file_exists( AO_CCSS_LOCK ) ) {
361
-                unlink( AO_CCSS_LOCK );
362
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control unlocked', 3 );
360
+            if (file_exists(AO_CCSS_LOCK)) {
361
+                unlink(AO_CCSS_LOCK);
362
+                autoptimizeCriticalCSSCore::ao_ccss_log('Queue control unlocked', 3);
363 363
             }
364
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control finished', 3 );
364
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue control finished', 3);
365 365
 
366 366
             // Log that queue is locked.
367 367
         } else {
368
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue is already running, skipping the attempt to run it again', 3 );
368
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue is already running, skipping the attempt to run it again', 3);
369 369
         }
370 370
     }
371 371
 
372
-    public function ao_ccss_diff_hashes( $ljid, $hash, $hashes, $rule ) {
372
+    public function ao_ccss_diff_hashes($ljid, $hash, $hashes, $rule) {
373 373
         // Compare job hashes
374 374
         // STEP 1: update job hashes.
375
-        if ( 1 == count( $hashes ) ) {
375
+        if (1 == count($hashes)) {
376 376
             // Job with a single hash
377 377
             // Set job hash.
378 378
             $hash = $hashes[0];
379
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> updated with SINGLE hash <' . $hash . '>', 3 );
379
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> updated with SINGLE hash <'.$hash.'>', 3);
380 380
         } else {
381 381
             // Job with multiple hashes
382 382
             // Loop through hashes to concatenate them.
383 383
             $nhash = '';
384
-            foreach ( $hashes as $shash ) {
384
+            foreach ($hashes as $shash) {
385 385
                 $nhash .= $shash;
386 386
             }
387 387
 
388 388
             // Set job hash.
389
-            $hash = md5( $nhash );
390
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> updated with a COMPOSITE hash <' . $hash . '>', 3 );
389
+            $hash = md5($nhash);
390
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> updated with a COMPOSITE hash <'.$hash.'>', 3);
391 391
         }
392 392
 
393 393
         // STEP 2: compare job to existing jobs to prevent double submission for same type+hash.
394 394
         global $ao_ccss_queue;
395 395
 
396
-        foreach ( $ao_ccss_queue as $queue_item ) {
397
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Comparing <' . $rule . $hash . '> with <' . $queue_item['rtarget'] . $queue_item['hash'] . '>', 3 );
398
-            if ( $queue_item['hash'] == $hash && $queue_item['rtarget'] == $rule && in_array( $queue_item['jqstat'], array( 'JOB_QUEUED', 'JOB_ONGOING', 'JOB_DONE' ) ) ) {
399
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> matches the already pending job <' . $queue_item['ljid'] . '>', 3 );
396
+        foreach ($ao_ccss_queue as $queue_item) {
397
+            autoptimizeCriticalCSSCore::ao_ccss_log('Comparing <'.$rule.$hash.'> with <'.$queue_item['rtarget'].$queue_item['hash'].'>', 3);
398
+            if ($queue_item['hash'] == $hash && $queue_item['rtarget'] == $rule && in_array($queue_item['jqstat'], array('JOB_QUEUED', 'JOB_ONGOING', 'JOB_DONE'))) {
399
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> matches the already pending job <'.$queue_item['ljid'].'>', 3);
400 400
                 return false;
401 401
             }
402 402
         }
@@ -406,32 +406,32 @@  discard block
 block discarded – undo
406 406
         global $ao_ccss_rules;
407 407
 
408 408
         // Prepare rule variables.
409
-        $trule = explode( '|', $rule );
410
-        $srule = $ao_ccss_rules[ $trule[0] ][ $trule[1] ];
409
+        $trule = explode('|', $rule);
410
+        $srule = $ao_ccss_rules[$trule[0]][$trule[1]];
411 411
 
412 412
         // Check if a MANUAL rule exist and return false.
413
-        if ( ! empty( $srule ) && ( 0 == $srule['hash'] && 0 != $srule['file'] ) ) {
414
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> matches the MANUAL rule <' . $trule[0] . '|' . $trule[1] . '>', 3 );
413
+        if (!empty($srule) && (0 == $srule['hash'] && 0 != $srule['file'])) {
414
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> matches the MANUAL rule <'.$trule[0].'|'.$trule[1].'>', 3);
415 415
             return false;
416
-        } elseif ( ! empty( $srule ) ) {
416
+        } elseif (!empty($srule)) {
417 417
             // Check if an AUTO rule exist.
418
-            if ( $hash === $srule['hash'] && is_file( AO_CCSS_DIR . $srule['file'] ) && 0 != filesize( AO_CCSS_DIR . $srule['file'] ) ) {
418
+            if ($hash === $srule['hash'] && is_file(AO_CCSS_DIR.$srule['file']) && 0 != filesize(AO_CCSS_DIR.$srule['file'])) {
419 419
                 // Check if job hash matches rule, if the CCSS file exists said file is not empty and return FALSE is so.
420
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> MATCH the one in rule <' . $trule[0] . '|' . $trule[1] . '>', 3 );
420
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> MATCH the one in rule <'.$trule[0].'|'.$trule[1].'>', 3);
421 421
                 return false;
422 422
             } else {
423 423
                 // Or return the new hash if they differ.
424
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> DOES NOT MATCH the one in rule <' . $trule[0] . '|' . $trule[1] . '> or rule\'s CCSS file was invalid.', 3 );
424
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> DOES NOT MATCH the one in rule <'.$trule[0].'|'.$trule[1].'> or rule\'s CCSS file was invalid.', 3);
425 425
                 return $hash;
426 426
             }
427 427
         } else {
428 428
             // Or just return the hash if no rule exist yet.
429
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> has no rule yet', 3 );
429
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> has no rule yet', 3);
430 430
             return $hash;
431 431
         }
432 432
     }
433 433
 
434
-    public function ao_ccss_api_generate( $path, $debug, $dcode ) {
434
+    public function ao_ccss_api_generate($path, $debug, $dcode) {
435 435
         // POST jobs to criticalcss.com and return responses
436 436
         // Get key and key status.
437 437
         global $ao_ccss_key;
@@ -443,35 +443,35 @@  discard block
 block discarded – undo
443 443
         global $ao_ccss_noptimize;
444 444
 
445 445
         $site_host = get_site_url();
446
-        $site_path = parse_url( $site_host, PHP_URL_PATH );
446
+        $site_path = parse_url($site_host, PHP_URL_PATH);
447 447
 
448
-        if ( ! empty( $site_path ) ) {
449
-            $site_host = str_replace( $site_path, '', $site_host );
448
+        if (!empty($site_path)) {
449
+            $site_host = str_replace($site_path, '', $site_host);
450 450
         }
451 451
 
452 452
         // Logic to bind to one domain to avoid site clones of sites would
453 453
         // automatically begin spawning requests to criticalcss.com which has
454 454
         // a per domain cost.
455 455
         global $ao_ccss_domain;
456
-        if ( empty( $ao_ccss_domain ) ) {
456
+        if (empty($ao_ccss_domain)) {
457 457
             // first request being done, update option to allow future requests are only allowed if from same domain.
458
-            update_option( 'autoptimize_ccss_domain', str_rot13( $site_host ) );
459
-        } elseif ( trim( $ao_ccss_domain, '\'"' ) !== 'none' && parse_url( $site_host, PHP_URL_HOST ) !== parse_url( $ao_ccss_domain, PHP_URL_HOST ) && apply_filters( 'autoptimize_filter_ccss_bind_domain', true ) ) {
458
+            update_option('autoptimize_ccss_domain', str_rot13($site_host));
459
+        } elseif (trim($ao_ccss_domain, '\'"') !== 'none' && parse_url($site_host, PHP_URL_HOST) !== parse_url($ao_ccss_domain, PHP_URL_HOST) && apply_filters('autoptimize_filter_ccss_bind_domain', true)) {
460 460
             // not the same domain, log as error and return without posting to criticalcss.com.
461
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Request for domain ' . $site_host . ' does not match bound domain ' . $ao_ccss_domain . ' so not proceeding.', 2 );
461
+            autoptimizeCriticalCSSCore::ao_ccss_log('Request for domain '.$site_host.' does not match bound domain '.$ao_ccss_domain.' so not proceeding.', 2);
462 462
             return false;
463 463
         }
464 464
 
465
-        $src_url = $site_host . $path;
465
+        $src_url = $site_host.$path;
466 466
 
467 467
         // Avoid AO optimizations if required by config or avoid lazyload if lazyload is active in AO.
468
-        if ( ! empty( $ao_ccss_noptimize ) ) {
468
+        if (!empty($ao_ccss_noptimize)) {
469 469
             $src_url .= '?ao_noptirocket=1';
470
-        } elseif ( class_exists( 'autoptimizeImages', false ) && autoptimizeImages::should_lazyload_wrapper() ) {
470
+        } elseif (class_exists('autoptimizeImages', false) && autoptimizeImages::should_lazyload_wrapper()) {
471 471
             $src_url .= '?ao_nolazy=1';
472 472
         }
473 473
 
474
-        $src_url = apply_filters( 'autoptimize_filter_ccss_cron_srcurl', $src_url );
474
+        $src_url = apply_filters('autoptimize_filter_ccss_cron_srcurl', $src_url);
475 475
 
476 476
         // Initialize request body.
477 477
         $body           = array();
@@ -481,88 +481,88 @@  discard block
 block discarded – undo
481 481
 
482 482
         // Prepare and add viewport size to the body if available.
483 483
         $viewport = autoptimizeCriticalCSSCore::ao_ccss_viewport();
484
-        if ( ! empty( $viewport['w'] ) && ! empty( $viewport['h'] ) ) {
484
+        if (!empty($viewport['w']) && !empty($viewport['h'])) {
485 485
             $body['width']  = $viewport['w'];
486 486
             $body['height'] = $viewport['h'];
487 487
         }
488 488
 
489 489
         // Prepare and add forceInclude to the body if available.
490 490
         global $ao_ccss_finclude;
491
-        $finclude = $this->ao_ccss_finclude( $ao_ccss_finclude );
492
-        if ( ! empty( $finclude ) ) {
491
+        $finclude = $this->ao_ccss_finclude($ao_ccss_finclude);
492
+        if (!empty($finclude)) {
493 493
             $body['forceInclude'] = $finclude;
494 494
         }
495 495
 
496 496
         // Add filter to allow the body array to be altered (e.g. to add customPageHeaders).
497
-        $body = apply_filters( 'autoptimize_ccss_cron_api_generate_body', $body );
497
+        $body = apply_filters('autoptimize_ccss_cron_api_generate_body', $body);
498 498
 
499 499
         // Body must be json and log it.
500
-        $body = json_encode( $body );
501
-        autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request body is ' . $body, 3 );
500
+        $body = json_encode($body);
501
+        autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request body is '.$body, 3);
502 502
 
503 503
         // Prepare the request.
504
-        $url  = esc_url_raw( AO_CCSS_API . 'generate?aover=' . AO_CCSS_VER );
504
+        $url  = esc_url_raw(AO_CCSS_API.'generate?aover='.AO_CCSS_VER);
505 505
         $args = array(
506 506
             'headers' => array(
507
-                'User-Agent'    => 'Autoptimize v' . AO_CCSS_VER,
507
+                'User-Agent'    => 'Autoptimize v'.AO_CCSS_VER,
508 508
                 'Content-type'  => 'application/json; charset=utf-8',
509
-                'Authorization' => 'JWT ' . $key,
509
+                'Authorization' => 'JWT '.$key,
510 510
                 'Connection'    => 'close',
511 511
             ),
512 512
             'body'    => $body,
513 513
         );
514 514
 
515 515
         // Dispatch the request and store its response code.
516
-        $req  = wp_safe_remote_post( $url, $args );
517
-        $code = wp_remote_retrieve_response_code( $req );
518
-        $body = json_decode( wp_remote_retrieve_body( $req ), true );
516
+        $req  = wp_safe_remote_post($url, $args);
517
+        $code = wp_remote_retrieve_response_code($req);
518
+        $body = json_decode(wp_remote_retrieve_body($req), true);
519 519
 
520
-        if ( $debug && $dcode ) {
520
+        if ($debug && $dcode) {
521 521
             // If queue debug is active, change response code.
522 522
             $code = $dcode;
523 523
         }
524 524
 
525
-        if ( 200 == $code ) {
525
+        if (200 == $code) {
526 526
             // Response code is OK.
527 527
             // Workaround criticalcss.com non-RESTful reponses.
528
-            if ( 'JOB_QUEUED' == $body['job']['status'] || 'JOB_ONGOING' == $body['job']['status'] || 'STATUS_JOB_BAD' == $body['job']['status'] ) {
528
+            if ('JOB_QUEUED' == $body['job']['status'] || 'JOB_ONGOING' == $body['job']['status'] || 'STATUS_JOB_BAD' == $body['job']['status']) {
529 529
                 // Log successful and return encoded request body.
530
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied successfully', 3 );
530
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied successfully', 3);
531 531
 
532 532
                 // This code also means the key is valid, so cache key status for 24h if not already cached.
533
-                if ( ( ! $key_status || 2 != $key_status ) && $key ) {
534
-                    update_option( 'autoptimize_ccss_keyst', 2 );
535
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is valid, updating key status', 3 );
533
+                if ((!$key_status || 2 != $key_status) && $key) {
534
+                    update_option('autoptimize_ccss_keyst', 2);
535
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is valid, updating key status', 3);
536 536
                 }
537 537
 
538 538
                 // Return the request body.
539 539
                 return $body;
540 540
             } else {
541 541
                 // Log successful requests with invalid reponses.
542
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied with code <' . $code . '> and an UNKNOWN error condition, body follows...', 2 );
543
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
542
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied with code <'.$code.'> and an UNKNOWN error condition, body follows...', 2);
543
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
544 544
                 return $body;
545 545
             }
546 546
         } else {
547 547
             // Response code is anything else.
548 548
             // Log failed request with a valid response code and return body.
549
-            if ( $code ) {
550
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied with error code <' . $code . '>, body follows...', 2 );
551
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
549
+            if ($code) {
550
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied with error code <'.$code.'>, body follows...', 2);
551
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
552 552
 
553
-                if ( 401 == $code ) {
553
+                if (401 == $code) {
554 554
                     // If request is unauthorized, also clear key status.
555
-                    update_option( 'autoptimize_ccss_keyst', 1 );
556
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is invalid, updating key status', 3 );
555
+                    update_option('autoptimize_ccss_keyst', 1);
556
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is invalid, updating key status', 3);
557 557
                 }
558 558
 
559 559
                 // Return the request body.
560 560
                 return $body;
561 561
             } else {
562 562
                 // Log failed request with no response and return false.
563
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> has no response, this could be a service timeout', 2 );
564
-                if ( is_wp_error( $req ) ) {
565
-                    autoptimizeCriticalCSSCore::ao_ccss_log( $req->get_error_message(), 2 );
563
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> has no response, this could be a service timeout', 2);
564
+                if (is_wp_error($req)) {
565
+                    autoptimizeCriticalCSSCore::ao_ccss_log($req->get_error_message(), 2);
566 566
                 }
567 567
 
568 568
                 return false;
@@ -570,76 +570,76 @@  discard block
 block discarded – undo
570 570
         }
571 571
     }
572 572
 
573
-    public function ao_ccss_api_results( $jobid, $debug, $dcode ) {
573
+    public function ao_ccss_api_results($jobid, $debug, $dcode) {
574 574
         // GET jobs from criticalcss.com and return responses
575 575
         // Get key.
576 576
         global $ao_ccss_key;
577 577
         $key = $ao_ccss_key;
578 578
 
579 579
         // Prepare the request.
580
-        $url  = AO_CCSS_API . 'results?resultId=' . $jobid;
580
+        $url  = AO_CCSS_API.'results?resultId='.$jobid;
581 581
         $args = array(
582 582
             'headers' => array(
583
-                'User-Agent'    => 'Autoptimize CriticalCSS Power-Up v' . AO_CCSS_VER,
584
-                'Authorization' => 'JWT ' . $key,
583
+                'User-Agent'    => 'Autoptimize CriticalCSS Power-Up v'.AO_CCSS_VER,
584
+                'Authorization' => 'JWT '.$key,
585 585
                 'Connection'    => 'close',
586 586
             ),
587 587
         );
588 588
 
589 589
         // Dispatch the request and store its response code.
590
-        $req  = wp_safe_remote_get( $url, $args );
591
-        $code = wp_remote_retrieve_response_code( $req );
592
-        $body = json_decode( wp_remote_retrieve_body( $req ), true );
590
+        $req  = wp_safe_remote_get($url, $args);
591
+        $code = wp_remote_retrieve_response_code($req);
592
+        $body = json_decode(wp_remote_retrieve_body($req), true);
593 593
 
594
-        if ( $debug && $dcode ) {
594
+        if ($debug && $dcode) {
595 595
             // If queue debug is active, change response code.
596 596
             $code = $dcode;
597 597
         }
598 598
 
599
-        if ( 200 == $code ) {
599
+        if (200 == $code) {
600 600
             // Response code is OK.
601
-            if ( is_array( $body ) && ( array_key_exists( 'status', $body ) || array_key_exists( 'job', $body ) ) && ( 'JOB_QUEUED' == $body['status'] || 'JOB_ONGOING' == $body['status'] || 'JOB_DONE' == $body['status'] || 'JOB_FAILED' == $body['status'] || 'JOB_UNKNOWN' == $body['status'] || 'STATUS_JOB_BAD' == $body['job']['status'] ) ) {
601
+            if (is_array($body) && (array_key_exists('status', $body) || array_key_exists('job', $body)) && ('JOB_QUEUED' == $body['status'] || 'JOB_ONGOING' == $body['status'] || 'JOB_DONE' == $body['status'] || 'JOB_FAILED' == $body['status'] || 'JOB_UNKNOWN' == $body['status'] || 'STATUS_JOB_BAD' == $body['job']['status'])) {
602 602
                 // Workaround criticalcss.com non-RESTful reponses
603 603
                 // Log successful and return encoded request body.
604
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied successfully', 3 );
604
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied successfully', 3);
605 605
                 return $body;
606
-            } elseif ( is_array( $body ) && ( array_key_exists( 'error', $body ) && 'This css no longer exists. Please re-generate it.' == $body['error'] ) ) {
606
+            } elseif (is_array($body) && (array_key_exists('error', $body) && 'This css no longer exists. Please re-generate it.' == $body['error'])) {
607 607
                 // Handle no CSS reply
608 608
                 // Log no CSS error and return encoded request body.
609
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied successfully but the CSS for it does not exist anymore', 3 );
609
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied successfully but the CSS for it does not exist anymore', 3);
610 610
                 return $body;
611 611
             } else {
612 612
                 // Log failed request and return false.
613
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied with code <' . $code . '> and an UNKNOWN error condition, body follows...', 2 );
614
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
613
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied with code <'.$code.'> and an UNKNOWN error condition, body follows...', 2);
614
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
615 615
                 return false;
616 616
             }
617 617
         } else {
618 618
             // Response code is anything else
619 619
             // Log failed request with a valid response code and return body.
620
-            if ( $code ) {
621
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied with error code <' . $code . '>, body follows...', 2 );
622
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
623
-                if ( 401 == $code ) {
620
+            if ($code) {
621
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied with error code <'.$code.'>, body follows...', 2);
622
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
623
+                if (401 == $code) {
624 624
                     // If request is unauthorized, also clear key status.
625
-                    update_option( 'autoptimize_ccss_keyst', 1 );
626
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is invalid, updating key status', 3 );
625
+                    update_option('autoptimize_ccss_keyst', 1);
626
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is invalid, updating key status', 3);
627 627
                 }
628 628
 
629 629
                 // Return the request body.
630 630
                 return $body;
631 631
             } else {
632 632
                 // Log failed request with no response and return false.
633
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> has no response, this could be a service timeout', 2 );
633
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> has no response, this could be a service timeout', 2);
634 634
                 return false;
635 635
             }
636 636
         }
637 637
     }
638 638
 
639
-    public function ao_ccss_save_file( $ccss, $target, $review ) {
639
+    public function ao_ccss_save_file($ccss, $target, $review) {
640 640
         // Save critical CSS into the filesystem and return its filename
641 641
         // Prepare review mark.
642
-        if ( $review ) {
642
+        if ($review) {
643 643
             $rmark = '_R';
644 644
         } else {
645 645
             $rmark = '';
@@ -649,21 +649,21 @@  discard block
 block discarded – undo
649 649
         $filename = false;
650 650
         $content  = $ccss;
651 651
 
652
-        if ( autoptimizeCriticalCSSCore::ao_ccss_check_contents( $content ) ) {
652
+        if (autoptimizeCriticalCSSCore::ao_ccss_check_contents($content)) {
653 653
             // Sanitize content, set filename and try to save file.
654
-            $file     = AO_CCSS_DIR . 'ccss_' . md5( $ccss . $target[1] ) . $rmark . '.css';
655
-            $status   = file_put_contents( $file, $content, LOCK_EX );
656
-            $filename = pathinfo( $file, PATHINFO_BASENAME );
657
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS file for the rule <' . $target[0] . '|' . $target[1] . '> was saved as <' . $filename . '>, size in bytes is <' . $status . '>', 3 );
654
+            $file     = AO_CCSS_DIR.'ccss_'.md5($ccss.$target[1]).$rmark.'.css';
655
+            $status   = file_put_contents($file, $content, LOCK_EX);
656
+            $filename = pathinfo($file, PATHINFO_BASENAME);
657
+            autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS file for the rule <'.$target[0].'|'.$target[1].'> was saved as <'.$filename.'>, size in bytes is <'.$status.'>', 3);
658 658
 
659
-            if ( ! $status ) {
659
+            if (!$status) {
660 660
                 // If file has not been saved, reset filename.
661
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS file <' . $filename . '> could not be not saved', 2 );
661
+                autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS file <'.$filename.'> could not be not saved', 2);
662 662
                 $filename = false;
663 663
                 return $filename;
664 664
             }
665 665
         } else {
666
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS received did not pass content check', 2 );
666
+            autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS received did not pass content check', 2);
667 667
             return $filename;
668 668
         }
669 669
 
@@ -673,15 +673,15 @@  discard block
 block discarded – undo
673 673
         global $ao_ccss_rules;
674 674
 
675 675
         // Prepare rule variables.
676
-        $srule   = $ao_ccss_rules[ $target[0] ][ $target[1] ];
676
+        $srule   = $ao_ccss_rules[$target[0]][$target[1]];
677 677
         $oldfile = $srule['file'];
678 678
 
679
-        if ( $oldfile && $oldfile !== $filename ) {
680
-            $delfile = AO_CCSS_DIR . $oldfile;
681
-            if ( file_exists( $delfile ) ) {
682
-                $unlinkst = unlink( $delfile );
683
-                if ( $unlinkst ) {
684
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'A previous critical CSS file <' . $oldfile . '> was removed for the rule <' . $target[0] . '|' . $target[1] . '>', 3 );
679
+        if ($oldfile && $oldfile !== $filename) {
680
+            $delfile = AO_CCSS_DIR.$oldfile;
681
+            if (file_exists($delfile)) {
682
+                $unlinkst = unlink($delfile);
683
+                if ($unlinkst) {
684
+                    autoptimizeCriticalCSSCore::ao_ccss_log('A previous critical CSS file <'.$oldfile.'> was removed for the rule <'.$target[0].'|'.$target[1].'>', 3);
685 685
                 }
686 686
             }
687 687
         }
@@ -690,29 +690,29 @@  discard block
 block discarded – undo
690 690
         return $filename;
691 691
     }
692 692
 
693
-    public function ao_ccss_rule_update( $ljid, $srule, $file, $hash ) {
693
+    public function ao_ccss_rule_update($ljid, $srule, $file, $hash) {
694 694
         // Update or create a rule
695 695
         // Attach required arrays.
696 696
         global $ao_ccss_rules;
697 697
 
698 698
         // Prepare rule variables.
699
-        $trule  = explode( '|', $srule );
700
-        $rule   = $ao_ccss_rules[ $trule[0] ][ $trule[1] ];
699
+        $trule  = explode('|', $srule);
700
+        $rule   = $ao_ccss_rules[$trule[0]][$trule[1]];
701 701
         $action = false;
702 702
         $rtype  = '';
703 703
 
704
-        if ( 0 === $rule['hash'] && 0 !== $rule['file'] ) {
704
+        if (0 === $rule['hash'] && 0 !== $rule['file']) {
705 705
             // manual rule, don't ever overwrite.
706 706
             $action = 'NOT UPDATED';
707 707
             $rtype  = 'MANUAL';
708
-        } elseif ( 0 === $rule['hash'] && 0 === $rule['file'] ) {
708
+        } elseif (0 === $rule['hash'] && 0 === $rule['file']) {
709 709
             // If this is an user created AUTO rule with no hash and file yet, update its hash and filename
710 710
             // Set rule hash, file and action flag.
711 711
             $rule['hash'] = $hash;
712 712
             $rule['file'] = $file;
713 713
             $action       = 'UPDATED';
714 714
             $rtype        = 'AUTO';
715
-        } elseif ( 0 !== $rule['hash'] && ctype_alnum( $rule['hash'] ) ) {
715
+        } elseif (0 !== $rule['hash'] && ctype_alnum($rule['hash'])) {
716 716
             // If this is an genuine AUTO rule, update its hash and filename
717 717
             // Set rule hash, file and action flag.
718 718
             $rule['hash'] = $hash;
@@ -722,7 +722,7 @@  discard block
 block discarded – undo
722 722
         } else {
723 723
             // If rule doesn't exist, create an AUTO rule
724 724
             // AUTO rules were only for types, but will now also work for paths.
725
-            if ( 'types' == $trule[0] || 'paths' == $trule[0] ) {
725
+            if ('types' == $trule[0] || 'paths' == $trule[0]) {
726 726
                 // Set rule hash and file and action flag.
727 727
                 $rule['hash'] = $hash;
728 728
                 $rule['file'] = $file;
@@ -730,47 +730,47 @@  discard block
 block discarded – undo
730 730
                 $rtype        = 'AUTO';
731 731
             } else {
732 732
                 // Log that no rule was created.
733
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Exception, no AUTO rule created', 3 );
733
+                autoptimizeCriticalCSSCore::ao_ccss_log('Exception, no AUTO rule created', 3);
734 734
             }
735 735
         }
736 736
 
737
-        if ( $action ) {
737
+        if ($action) {
738 738
             // If a rule creation/update is required, persist updated rules object.
739
-            $ao_ccss_rules[ $trule[0] ][ $trule[1] ] = $rule;
740
-            $ao_ccss_rules_raw                       = json_encode( $ao_ccss_rules );
741
-            update_option( 'autoptimize_ccss_rules', $ao_ccss_rules_raw );
742
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Target rule <' . $srule . '> of type <' . $rtype . '> was ' . $action . ' for job id <' . $ljid . '>', 3 );
739
+            $ao_ccss_rules[$trule[0]][$trule[1]] = $rule;
740
+            $ao_ccss_rules_raw                       = json_encode($ao_ccss_rules);
741
+            update_option('autoptimize_ccss_rules', $ao_ccss_rules_raw);
742
+            autoptimizeCriticalCSSCore::ao_ccss_log('Target rule <'.$srule.'> of type <'.$rtype.'> was '.$action.' for job id <'.$ljid.'>', 3);
743 743
         } else {
744
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'No rule action required', 3 );
744
+            autoptimizeCriticalCSSCore::ao_ccss_log('No rule action required', 3);
745 745
         }
746 746
     }
747 747
 
748
-    function ao_ccss_finclude( $finclude_raw ) {
748
+    function ao_ccss_finclude($finclude_raw) {
749 749
         // Prepare forceInclude object.
750
-        if ( ! empty( $finclude_raw ) ) {
750
+        if (!empty($finclude_raw)) {
751 751
             // If there are any content
752 752
             // Convert raw string into arra and initialize the returning object.
753
-            $fincludes = explode( ',', $finclude_raw );
753
+            $fincludes = explode(',', $finclude_raw);
754 754
             $finclude  = array();
755 755
 
756 756
             // Interacts over every rule.
757 757
             $i = 0;
758
-            foreach ( $fincludes as $include ) {
758
+            foreach ($fincludes as $include) {
759 759
                 // Trim leading and trailing whitespaces.
760
-                $include = trim( $include );
760
+                $include = trim($include);
761 761
 
762
-                if ( substr( $include, 0, 2 ) === '//' ) {
762
+                if (substr($include, 0, 2) === '//') {
763 763
                     // Regex rule
764 764
                     // Format value as required.
765
-                    $include = str_replace( '//', '/', $include );
766
-                    $include = $include . '/i';
765
+                    $include = str_replace('//', '/', $include);
766
+                    $include = $include.'/i';
767 767
 
768 768
                     // Store regex object.
769
-                    $finclude[ $i ]['type']  = 'RegExp';
770
-                    $finclude[ $i ]['value'] = $include;
769
+                    $finclude[$i]['type']  = 'RegExp';
770
+                    $finclude[$i]['value'] = $include;
771 771
                 } else {
772 772
                     // Simple value rule.
773
-                    $finclude[ $i ]['value'] = $include;
773
+                    $finclude[$i]['value'] = $include;
774 774
                 }
775 775
 
776 776
                 $i++;
@@ -787,54 +787,54 @@  discard block
 block discarded – undo
787 787
     public function ao_ccss_cleaning() {
788 788
         // Perform plugin maintenance
789 789
         // Truncate log file >= 1MB .
790
-        if ( file_exists( AO_CCSS_LOG ) ) {
791
-            if ( filesize( AO_CCSS_LOG ) >= 1048576 ) {
792
-                $logfile = fopen( AO_CCSS_LOG, 'w' );
793
-                fclose( $logfile );
790
+        if (file_exists(AO_CCSS_LOG)) {
791
+            if (filesize(AO_CCSS_LOG) >= 1048576) {
792
+                $logfile = fopen(AO_CCSS_LOG, 'w');
793
+                fclose($logfile);
794 794
             }
795 795
         }
796 796
 
797 797
         // Remove lock file.
798
-        if ( file_exists( AO_CCSS_LOCK ) ) {
799
-            unlink( AO_CCSS_LOCK );
798
+        if (file_exists(AO_CCSS_LOCK)) {
799
+            unlink(AO_CCSS_LOCK);
800 800
         }
801 801
 
802 802
         // Make sure queue processing is scheduled, recreate if not.
803
-        if ( ! wp_next_scheduled( 'ao_ccss_queue' ) ) {
804
-            wp_schedule_event( time(), apply_filters( 'ao_ccss_queue_schedule', 'ao_ccss' ), 'ao_ccss_queue' );
803
+        if (!wp_next_scheduled('ao_ccss_queue')) {
804
+            wp_schedule_event(time(), apply_filters('ao_ccss_queue_schedule', 'ao_ccss'), 'ao_ccss_queue');
805 805
         }
806 806
 
807 807
         // Queue cleaning.
808 808
         global $ao_ccss_queue;
809 809
         $queue_purge_threshold = 100;
810
-        $queue_purge_age       = 24 * 60 * 60;
811
-        $queue_length          = count( $ao_ccss_queue );
812
-        $timestamp_yesterday   = microtime( true ) - $queue_purge_age;
810
+        $queue_purge_age       = 24*60*60;
811
+        $queue_length          = count($ao_ccss_queue);
812
+        $timestamp_yesterday   = microtime(true) - $queue_purge_age;
813 813
         $remove_old_new        = false;
814 814
         $queue_altered         = false;
815 815
 
816
-        if ( $queue_length > $queue_purge_threshold ) {
816
+        if ($queue_length > $queue_purge_threshold) {
817 817
             $remove_old_new = true;
818 818
         }
819 819
 
820
-        foreach ( $ao_ccss_queue as $path => $job ) {
821
-            if ( ( $remove_old_new && 'NEW' == $job['jqstat'] && $job['jctime'] < $timestamp_yesterday ) || in_array( $job['jqstat'], array( 'JOB_FAILED', 'STATUS_JOB_BAD', 'NO_CSS', 'NO_RESPONSE' ) ) ) {
822
-                unset( $ao_ccss_queue[ $path ] );
820
+        foreach ($ao_ccss_queue as $path => $job) {
821
+            if (($remove_old_new && 'NEW' == $job['jqstat'] && $job['jctime'] < $timestamp_yesterday) || in_array($job['jqstat'], array('JOB_FAILED', 'STATUS_JOB_BAD', 'NO_CSS', 'NO_RESPONSE'))) {
822
+                unset($ao_ccss_queue[$path]);
823 823
                 $queue_altered = true;
824 824
             }
825 825
         }
826 826
 
827 827
         // save queue to options!
828
-        if ( $queue_altered ) {
829
-            $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
830
-            update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
831
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue cleaning done.', 3 );
828
+        if ($queue_altered) {
829
+            $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
830
+            update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
831
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue cleaning done.', 3);
832 832
         }
833 833
 
834 834
         // re-check key if invalid.
835 835
         global $ao_ccss_keyst;
836
-        if ( 1 == $ao_ccss_keyst ) {
837
-            $this->ao_ccss_api_generate( '', '', '' );
836
+        if (1 == $ao_ccss_keyst) {
837
+            $this->ao_ccss_api_generate('', '', '');
838 838
         }
839 839
     }
840 840
 }
Please login to merge, or discard this patch.
tests/test-ao.php 1 patch
Spacing   +461 added lines, -461 removed lines patch added patch discarded remove patch
@@ -10,17 +10,17 @@  discard block
 block discarded – undo
10 10
     protected $ao;
11 11
 
12 12
     protected static $flexible_url_parts_js = [
13
-        'default'          => 'wp-content/cache/autoptimize/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
14
-        'custom'           => 'wp-content/c/ao/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
15
-        'multisite'        => 'wp-content/cache/autoptimize/1/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
16
-        'multisite_custom' => 'wp-content/c/ao/1/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
13
+        'default'          => 'wp-content/cache/autoptimize/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
14
+        'custom'           => 'wp-content/c/ao/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
15
+        'multisite'        => 'wp-content/cache/autoptimize/1/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
16
+        'multisite_custom' => 'wp-content/c/ao/1/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
17 17
     ];
18 18
 
19 19
     protected static $flexible_url_parts_css = [
20
-        'default'          => 'wp-content/cache/autoptimize/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
21
-        'custom'           => 'wp-content/c/ao/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
22
-        'multisite'        => 'wp-content/cache/autoptimize/1/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
23
-        'multisite_custom' => 'wp-content/c/ao/1/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
20
+        'default'          => 'wp-content/cache/autoptimize/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
21
+        'custom'           => 'wp-content/c/ao/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
22
+        'multisite'        => 'wp-content/cache/autoptimize/1/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
23
+        'multisite_custom' => 'wp-content/c/ao/1/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
24 24
     ];
25 25
 
26 26
     protected function getAoStylesDefaultOptions()
@@ -28,17 +28,17 @@  discard block
 block discarded – undo
28 28
         $conf = autoptimizeConfig::instance();
29 29
 
30 30
         return [
31
-            'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
32
-            'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
33
-            'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
34
-            'defer'           => $conf->get( 'autoptimize_css_defer' ),
35
-            'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
36
-            'inline'          => $conf->get( 'autoptimize_css_inline' ),
37
-            'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
38
-            'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
39
-            'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
40
-            'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
41
-            'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
31
+            'aggregate'       => $conf->get('autoptimize_css_aggregate'),
32
+            'justhead'        => $conf->get('autoptimize_css_justhead'),
33
+            'datauris'        => $conf->get('autoptimize_css_datauris'),
34
+            'defer'           => $conf->get('autoptimize_css_defer'),
35
+            'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
36
+            'inline'          => $conf->get('autoptimize_css_inline'),
37
+            'css_exclude'     => $conf->get('autoptimize_css_exclude'),
38
+            'cdn_url'         => $conf->get('autoptimize_cdn_url'),
39
+            'include_inline'  => $conf->get('autoptimize_css_include_inline'),
40
+            'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
41
+            'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
42 42
         ];
43 43
     }
44 44
 
@@ -47,15 +47,15 @@  discard block
 block discarded – undo
47 47
         $conf = autoptimizeConfig::instance();
48 48
 
49 49
         return [
50
-            'aggregate'           => $conf->get( 'autoptimize_js_aggregate' ),
51
-            'defer_not_aggregate' => $conf->get( 'autoptimize_js_defer_not_aggregate' ),
52
-            'justhead'            => $conf->get( 'autoptimize_js_justhead' ),
53
-            'forcehead'           => $conf->get( 'autoptimize_js_forcehead' ),
54
-            'trycatch'            => $conf->get( 'autoptimize_js_trycatch' ),
55
-            'js_exclude'          => $conf->get( 'autoptimize_js_exclude' ),
56
-            'cdn_url'             => $conf->get( 'autoptimize_cdn_url' ),
57
-            'include_inline'      => $conf->get( 'autoptimize_js_include_inline' ),
58
-            'minify_excluded'     => $conf->get( 'autoptimize_minify_excluded' ),
50
+            'aggregate'           => $conf->get('autoptimize_js_aggregate'),
51
+            'defer_not_aggregate' => $conf->get('autoptimize_js_defer_not_aggregate'),
52
+            'justhead'            => $conf->get('autoptimize_js_justhead'),
53
+            'forcehead'           => $conf->get('autoptimize_js_forcehead'),
54
+            'trycatch'            => $conf->get('autoptimize_js_trycatch'),
55
+            'js_exclude'          => $conf->get('autoptimize_js_exclude'),
56
+            'cdn_url'             => $conf->get('autoptimize_cdn_url'),
57
+            'include_inline'      => $conf->get('autoptimize_js_include_inline'),
58
+            'minify_excluded'     => $conf->get('autoptimize_minify_excluded'),
59 59
         ];
60 60
     }
61 61
 
@@ -65,35 +65,35 @@  discard block
 block discarded – undo
65 65
     protected function get_urls()
66 66
     {
67 67
         static $site_url = null;
68
-        if ( null === $site_url ) {
68
+        if (null === $site_url) {
69 69
             $site_url = site_url();
70 70
         }
71 71
 
72 72
         static $cdn_url = null;
73
-        if ( null === $cdn_url ) {
74
-            $cdn_url = autoptimizeOptionWrapper::get_option( 'autoptimize_cdn_url' );
73
+        if (null === $cdn_url) {
74
+            $cdn_url = autoptimizeOptionWrapper::get_option('autoptimize_cdn_url');
75 75
         }
76 76
 
77 77
         static $imgopt_host = null;
78
-        if ( null === $imgopt_host ) {
78
+        if (null === $imgopt_host) {
79 79
             $optimizer   = new autoptimizeImages();
80
-            $imgopt_host = rtrim( $optimizer->get_imgopt_host(), '/' );
80
+            $imgopt_host = rtrim($optimizer->get_imgopt_host(), '/');
81 81
         }
82 82
 
83 83
         static $urls = [];
84 84
 
85
-        if ( empty( $urls ) ) {
85
+        if (empty($urls)) {
86 86
             $parts = autoptimizeUtils::get_ao_wp_site_url_parts();
87 87
             $urls  = [
88 88
                 'siteurl'    => $site_url,
89
-                'prsiteurl'  => '//' . str_replace( array( 'http://', 'https://' ), '', $site_url ),
90
-                'wwwsiteurl' => $parts['scheme'] . '://www.' . str_replace( 'www.', '', $parts['host'] ),
89
+                'prsiteurl'  => '//'.str_replace(array('http://', 'https://'), '', $site_url),
90
+                'wwwsiteurl' => $parts['scheme'].'://www.'.str_replace('www.', '', $parts['host']),
91 91
                 'cdnurl'     => $cdn_url,
92 92
                 'imgopthost' => $imgopt_host,
93 93
                 'subfolder'  => '',
94 94
             ];
95 95
 
96
-            if ( AO_TEST_SUBFOLDER_INSTALL ) {
96
+            if (AO_TEST_SUBFOLDER_INSTALL) {
97 97
                 $urls['subfolder'] = 'wordpress/';
98 98
             }
99 99
         }
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
      */
107 107
     public function setUp()
108 108
     {
109
-        $this->ao = new autoptimizeMain( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
109
+        $this->ao = new autoptimizeMain(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
110 110
 
111 111
         parent::setUp();
112 112
     }
@@ -125,8 +125,8 @@  discard block
 block discarded – undo
125 125
             'autoptimize_filter_css_inlinesize',
126 126
             'autoptimize_filter_css_fonts_cdn',
127 127
         );
128
-        foreach ( $filter_tags as $filter_tag ) {
129
-            remove_all_filters( $filter_tag );
128
+        foreach ($filter_tags as $filter_tag) {
129
+            remove_all_filters($filter_tag);
130 130
         }
131 131
 
132 132
         parent::tearDown();
@@ -252,20 +252,20 @@  discard block
 block discarded – undo
252 252
     protected function get_test_markup_output()
253 253
     {
254 254
         $key = 'default';
255
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
255
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
256 256
             $key = 'custom';
257 257
         }
258 258
 
259
-        $csspart = self::$flexible_url_parts_css[ $key ];
260
-        $jspart  = self::$flexible_url_parts_js[ $key ];
259
+        $csspart = self::$flexible_url_parts_css[$key];
260
+        $jspart  = self::$flexible_url_parts_js[$key];
261 261
 
262 262
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
263
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
263
+        if (AO_TEST_SUBFOLDER_INSTALL) {
264 264
             $csshash = '56398de576d59887e88e3011715250e0';
265 265
         }
266 266
 
267 267
         $urls      = $this->get_urls();
268
-            $siteurl   = $urls['siteurl'];
268
+            $siteurl = $urls['siteurl'];
269 269
         $cdnurl    = $urls['cdnurl'];
270 270
         $subfolder = $urls['subfolder'];
271 271
 
@@ -321,15 +321,15 @@  discard block
 block discarded – undo
321 321
     protected function get_test_markup_output_ms()
322 322
     {
323 323
         $key = 'multisite';
324
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
324
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
325 325
             $key = 'multisite_custom';
326 326
         }
327 327
 
328
-        $csspart = self::$flexible_url_parts_css[ $key ];
329
-        $jspart  = self::$flexible_url_parts_js[ $key ];
328
+        $csspart = self::$flexible_url_parts_css[$key];
329
+        $jspart  = self::$flexible_url_parts_js[$key];
330 330
 
331 331
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
332
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
332
+        if (AO_TEST_SUBFOLDER_INSTALL) {
333 333
             $csshash = '56398de576d59887e88e3011715250e0';
334 334
         }
335 335
 
@@ -390,15 +390,15 @@  discard block
 block discarded – undo
390 390
     protected function get_test_markup_output_inline_defer()
391 391
     {
392 392
         $key = 'default';
393
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
393
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
394 394
             $key = 'custom';
395 395
         }
396 396
 
397
-        $csspart = self::$flexible_url_parts_css[ $key ];
398
-        $jspart  = self::$flexible_url_parts_js[ $key ];
397
+        $csspart = self::$flexible_url_parts_css[$key];
398
+        $jspart  = self::$flexible_url_parts_js[$key];
399 399
 
400 400
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
401
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
401
+        if (AO_TEST_SUBFOLDER_INSTALL) {
402 402
             $csshash = '56398de576d59887e88e3011715250e0';
403 403
         }
404 404
 
@@ -459,15 +459,15 @@  discard block
 block discarded – undo
459 459
     protected function get_test_markup_output_inline_defer_ms()
460 460
     {
461 461
         $key = 'multisite';
462
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
462
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
463 463
             $key = 'multisite_custom';
464 464
         }
465 465
 
466
-        $csspart = self::$flexible_url_parts_css[ $key ];
467
-        $jspart  = self::$flexible_url_parts_js[ $key ];
466
+        $csspart = self::$flexible_url_parts_css[$key];
467
+        $jspart  = self::$flexible_url_parts_js[$key];
468 468
 
469 469
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
470
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
470
+        if (AO_TEST_SUBFOLDER_INSTALL) {
471 471
             $csshash = '56398de576d59887e88e3011715250e0';
472 472
         }
473 473
 
@@ -528,11 +528,11 @@  discard block
 block discarded – undo
528 528
     /**
529 529
      * @dataProvider provider_test_rewrite_markup_with_cdn
530 530
      */
531
-    function test_rewrite_markup_with_cdn( $input, $expected )
531
+    function test_rewrite_markup_with_cdn($input, $expected)
532 532
     {
533
-        $actual = $this->ao->end_buffering( $input );
533
+        $actual = $this->ao->end_buffering($input);
534 534
 
535
-        $this->assertEquals( $expected, $actual );
535
+        $this->assertEquals($expected, $actual);
536 536
     }
537 537
 
538 538
     public function provider_test_rewrite_markup_with_cdn()
@@ -544,7 +544,7 @@  discard block
 block discarded – undo
544 544
                 $this->get_test_markup(),
545 545
                 // Expected output.
546 546
                 // TODO/FIXME: This seemed like the fastest way to get MS crude test to pass...
547
-                ( is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output() ),
547
+                (is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output()),
548 548
             ),
549 549
 
550 550
         );
@@ -604,12 +604,12 @@  discard block
 block discarded – undo
604 604
 }
605 605
 CSS;
606 606
 
607
-        $instance = new autoptimizeStyles( $css_in );
608
-        $instance->setOption( 'cdn_url', $cdnurl );
607
+        $instance = new autoptimizeStyles($css_in);
608
+        $instance->setOption('cdn_url', $cdnurl);
609 609
 
610
-        $css_actual = $instance->rewrite_assets( $css_in );
610
+        $css_actual = $instance->rewrite_assets($css_in);
611 611
 
612
-        $this->assertEquals( $css_expected, $css_actual );
612
+        $this->assertEquals($css_expected, $css_actual);
613 613
     }
614 614
 
615 615
     public function test_default_cssmin_minifier()
@@ -643,21 +643,21 @@  discard block
 block discarded – undo
643 643
 .bg{background:url('img/something.svg')}.bg-no-quote{background:url(img/something.svg)}.bg-double-quotes{background:url("img/something.svg")}.whitespaces{background:url ("../../somewhere-else/svg.svg")}.host-relative{background:url("/img/something.svg")}.protocol-relative{background:url("//something/somewhere/example.png")}@font-face{font-family:'Roboto';font-style:normal;font-weight:100;src:url(../fonts/roboto-v15-latin-ext_latin-100.eot);src:local('Roboto Thin'),local('Roboto-Thin'),url(../fonts/roboto-v15-latin-ext_latin-100.eot?#iefix) format('embedded-opentype'),url(../fonts/roboto-v15-latin-ext_latin-100.woff2) format('woff2'),url(../fonts/roboto-v15-latin-ext_latin-100.woff) format('woff'),url(../fonts/roboto-v15-latin-ext_latin-100.ttf) format('truetype'),url(../fonts/roboto-v15-latin-ext_latin-100.svg#Roboto) format('svg')}
644 644
 CSS;
645 645
 
646
-        $instance = new autoptimizeStyles( $css );
647
-        $minified = $instance->run_minifier_on( $css );
646
+        $instance = new autoptimizeStyles($css);
647
+        $minified = $instance->run_minifier_on($css);
648 648
 
649
-        $this->assertEquals( $expected, $minified );
649
+        $this->assertEquals($expected, $minified);
650 650
     }
651 651
 
652 652
     /**
653 653
      * @dataProvider provider_test_should_aggregate_script_types
654 654
      */
655
-    public function test_should_aggregate_script_types( $input, $expected )
655
+    public function test_should_aggregate_script_types($input, $expected)
656 656
     {
657
-        $instance = new autoptimizeScripts( '' );
658
-        $actual   = $instance->should_aggregate( $input );
657
+        $instance = new autoptimizeScripts('');
658
+        $actual   = $instance->should_aggregate($input);
659 659
 
660
-        $this->assertEquals( $expected, $actual );
660
+        $this->assertEquals($expected, $actual);
661 661
     }
662 662
 
663 663
     public function provider_test_should_aggregate_script_types()
@@ -719,11 +719,11 @@  discard block
 block discarded – undo
719 719
     /**
720 720
      * @dataProvider provider_is_valid_buffer
721 721
      */
722
-    public function test_valid_buffers( $input, $expected )
722
+    public function test_valid_buffers($input, $expected)
723 723
     {
724
-        $actual = $this->ao->is_valid_buffer( $input );
724
+        $actual = $this->ao->is_valid_buffer($input);
725 725
 
726
-        $this->assertEquals( $expected, $actual );
726
+        $this->assertEquals($expected, $actual);
727 727
     }
728 728
 
729 729
     public function provider_is_valid_buffer()
@@ -792,11 +792,11 @@  discard block
 block discarded – undo
792 792
     /**
793 793
      * @dataProvider provider_is_amp_markup
794 794
      */
795
-    public function test_autoptimize_is_amp_markup( $input, $expected )
795
+    public function test_autoptimize_is_amp_markup($input, $expected)
796 796
     {
797
-        $actual = autoptimizeMain::is_amp_markup( $input );
797
+        $actual = autoptimizeMain::is_amp_markup($input);
798 798
 
799
-        $this->assertEquals( $expected, $actual );
799
+        $this->assertEquals($expected, $actual);
800 800
     }
801 801
 
802 802
     public function provider_is_amp_markup()
@@ -827,31 +827,31 @@  discard block
 block discarded – undo
827 827
     public function test_skips_buffering_when_ao_noptimize_filter_is_true()
828 828
     {
829 829
         // True => disable autoptimize.
830
-        add_filter( 'autoptimize_filter_noptimize', '__return_true' );
830
+        add_filter('autoptimize_filter_noptimize', '__return_true');
831 831
 
832 832
         // Buffering should not run due to the above filter.
833 833
         $expected = false;
834
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
834
+        $actual   = $this->ao->should_buffer($doing_tests = true);
835 835
 
836
-        $this->assertEquals( $expected, $actual );
836
+        $this->assertEquals($expected, $actual);
837 837
     }
838 838
 
839 839
     public function test_does_buffering_when_ao_noptimize_filter_is_false()
840 840
     {
841 841
         // False => disable noptimize, aka, run normally (weird, yes...).
842
-        add_filter( 'autoptimize_filter_noptimize', '__return_false' );
842
+        add_filter('autoptimize_filter_noptimize', '__return_false');
843 843
 
844 844
         // Buffering should run because of above.
845 845
         $expected = true;
846
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
846
+        $actual   = $this->ao->should_buffer($doing_tests = true);
847 847
 
848
-        $this->assertEquals( $expected, $actual );
848
+        $this->assertEquals($expected, $actual);
849 849
     }
850 850
 
851 851
     public function test_ignores_ao_noptimize_qs_when_instructed()
852 852
     {
853 853
         // Should skip checking for the qs completely due to filter.
854
-        add_filter( 'autoptimize_filter_honor_qs_noptimize', '__return_false' );
854
+        add_filter('autoptimize_filter_honor_qs_noptimize', '__return_false');
855 855
 
856 856
         /**
857 857
          * The above should then result in the "current" value being `false`
@@ -862,23 +862,23 @@  discard block
 block discarded – undo
862 862
          */
863 863
 
864 864
         $that = $this; // Makes it work on php 5.3!
865
-        add_filter( 'autoptimize_filter_noptimize', function ( $current_value ) use ( $that ) {
865
+        add_filter('autoptimize_filter_noptimize', function($current_value) use ($that) {
866 866
             $expected = false;
867
-            if ( defined( 'DONOTMINIFY' ) && DONOTMINIFY ) {
867
+            if (defined('DONOTMINIFY') && DONOTMINIFY) {
868 868
                 $expected = true;
869 869
             }
870 870
 
871
-            $that->assertEquals( $expected, $current_value );
871
+            $that->assertEquals($expected, $current_value);
872 872
         });
873 873
 
874
-        $this->ao->should_buffer( $doing_tests = true );
874
+        $this->ao->should_buffer($doing_tests = true);
875 875
     }
876 876
 
877 877
     public function test_wpengine_cache_flush()
878 878
     {
879 879
         // Creating a mock so that we can get past class_exists() and method_exists() checks present
880 880
         // in `autoptimizeCache::flushPageCache()`...
881
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
881
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
882 882
                 ->disableOriginalConstructor()->setMethods(
883 883
                     array(
884 884
                         'purge_varnish_cache',
@@ -887,9 +887,9 @@  discard block
 block discarded – undo
887 887
                 ->getMock();
888 888
 
889 889
         $that = $this;
890
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
891
-            $expected_methods = array( 'purge_varnish_cache' );
892
-            $that->assertEquals( $methods, $expected_methods );
890
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
891
+            $expected_methods = array('purge_varnish_cache');
892
+            $that->assertEquals($methods, $expected_methods);
893 893
 
894 894
             return $methods;
895 895
         });
@@ -903,7 +903,7 @@  discard block
 block discarded – undo
903 903
     public function test_wpengine_cache_flush_agressive()
904 904
     {
905 905
         // Creating a mock so that we can get past class_exists() and method_exists() checks `autoptimize_flush_pagecache()`...
906
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
906
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
907 907
                 ->disableOriginalConstructor()->setMethods(
908 908
                     array(
909 909
                         'purge_varnish_cache',
@@ -913,19 +913,19 @@  discard block
 block discarded – undo
913 913
                 )
914 914
                 ->getMock();
915 915
 
916
-        add_filter( 'autoptimize_flush_wpengine_aggressive', function() {
916
+        add_filter('autoptimize_flush_wpengine_aggressive', function() {
917 917
             return true;
918 918
         });
919 919
 
920 920
         $that = $this;
921
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
921
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
922 922
             $expected_methods = array(
923 923
                 'purge_varnish_cache',
924 924
                 'purge_memcached',
925 925
                 'clear_maxcdn_cache',
926 926
             );
927 927
 
928
-            $that->assertEquals( $methods, $expected_methods );
928
+            $that->assertEquals($methods, $expected_methods);
929 929
 
930 930
             return $methods;
931 931
         });
@@ -936,15 +936,15 @@  discard block
 block discarded – undo
936 936
     /**
937 937
      * @dataProvider provider_test_url_replace_cdn
938 938
      */
939
-    public function test_url_replace_cdn( $cdn_url, $input, $expected )
939
+    public function test_url_replace_cdn($cdn_url, $input, $expected)
940 940
     {
941
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
941
+        $mock = $this->getMockBuilder('autoptimizeBase')
942 942
                 ->disableOriginalConstructor()
943 943
                 ->getMockForAbstractClass();
944 944
 
945 945
         $mock->cdn_url = $cdn_url;
946
-        $actual        = $mock->url_replace_cdn( $input );
947
-        $this->assertEquals( $expected, $actual );
946
+        $actual        = $mock->url_replace_cdn($input);
947
+        $this->assertEquals($expected, $actual);
948 948
     }
949 949
 
950 950
     public function provider_test_url_replace_cdn()
@@ -961,13 +961,13 @@  discard block
 block discarded – undo
961 961
                 // CDN base url, url, expected result...
962 962
                 'http://cdn-test.example.org',
963 963
                 '/a.jpg',
964
-                'http://cdn-test.example.org/' . $subfolder . 'a.jpg',
964
+                'http://cdn-test.example.org/'.$subfolder.'a.jpg',
965 965
             ),
966 966
             // Full link with a matching AUTOPTIMIZE_WP_SITE_URL gets properly replaced...
967 967
             array(
968 968
                 'http://cdn-test.example.org',
969
-                $siteurl . '/wp-content/themes/something/example.svg',
970
-                'http://cdn-test.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
969
+                $siteurl.'/wp-content/themes/something/example.svg',
970
+                'http://cdn-test.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
971 971
             ),
972 972
             // Protocol-relative url with a "local" hostname that doesn't match example.org (AUTOPTIMIZE_WP_SITE_URL)...
973 973
             array(
@@ -978,59 +978,59 @@  discard block
 block discarded – undo
978 978
             // www.example.org does not match example.org (AUTOPTIMIZE_WP_SITE_URL) so it's left alone...
979 979
             array(
980 980
                 'http://cdn-test.example.org',
981
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
982
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
981
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
982
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
983 983
             ),
984 984
             // SSL cdn url + host-relative link...
985 985
             array(
986 986
                 'https://cdn.example.org',
987 987
                 '/a.jpg',
988
-                'https://cdn.example.org/' . $subfolder . 'a.jpg',
988
+                'https://cdn.example.org/'.$subfolder.'a.jpg',
989 989
             ),
990 990
             // SSL cdn url + http site url that matches AUTOPTIMIZE_WP_SITE_URL is properly replaced...
991 991
             array(
992 992
                 'https://cdn.example.org',
993
-                $siteurl . '/wp-content/themes/something/example.svg',
994
-                'https://cdn.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
993
+                $siteurl.'/wp-content/themes/something/example.svg',
994
+                'https://cdn.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
995 995
             ),
996 996
             // Protocol-relative cdn url given with protocol relative link that matches AUTOPTIMIZE_WP_SITE_URL host...
997 997
             array(
998 998
                 '//cdn.example.org',
999
-                $protorelativesiteurl . '/something.jpg',
1000
-                '//cdn.example.org/' . $subfolder . 'something.jpg',
999
+                $protorelativesiteurl.'/something.jpg',
1000
+                '//cdn.example.org/'.$subfolder.'something.jpg',
1001 1001
             ),
1002 1002
             // Protocol-relative cdn url given a http link that matches AUTOPTIMIZE_WP_SITE_URL host...
1003 1003
             array(
1004 1004
                 '//cdn.example.org',
1005
-                $siteurl . '/something.png',
1006
-                '//cdn.example.org/' . $subfolder . 'something.png',
1005
+                $siteurl.'/something.png',
1006
+                '//cdn.example.org/'.$subfolder.'something.png',
1007 1007
             ),
1008 1008
             // Protocol-relative cdn url with a host-relative link...
1009 1009
             array(
1010 1010
                 '//cdn.example.org',
1011 1011
                 '/a.jpg',
1012
-                '//cdn.example.org/' . $subfolder . 'a.jpg',
1012
+                '//cdn.example.org/'.$subfolder.'a.jpg',
1013 1013
             ),
1014 1014
             // Testing cdn urls with an explicit port number...
1015 1015
             array(
1016 1016
                 'http://cdn.com:8080',
1017 1017
                 '/a.jpg',
1018
-                'http://cdn.com:8080/' . $subfolder . 'a.jpg',
1018
+                'http://cdn.com:8080/'.$subfolder.'a.jpg',
1019 1019
             ),
1020 1020
             array(
1021 1021
                 '//cdn.com:4433',
1022 1022
                 '/a.jpg',
1023
-                '//cdn.com:4433/' . $subfolder . 'a.jpg',
1023
+                '//cdn.com:4433/'.$subfolder.'a.jpg',
1024 1024
             ),
1025 1025
             array(
1026 1026
                 '//cdn.com:4433',
1027
-                $siteurl . '/something.jpg',
1028
-                '//cdn.com:4433/' . $subfolder . 'something.jpg',
1027
+                $siteurl.'/something.jpg',
1028
+                '//cdn.com:4433/'.$subfolder.'something.jpg',
1029 1029
             ),
1030 1030
             array(
1031 1031
                 '//cdn.com:1234',
1032
-                $protorelativesiteurl . '/something.jpg',
1033
-                '//cdn.com:1234/' . $subfolder . 'something.jpg',
1032
+                $protorelativesiteurl.'/something.jpg',
1033
+                '//cdn.com:1234/'.$subfolder.'something.jpg',
1034 1034
             ),
1035 1035
             // Relative links should not be touched by url_replace_cdn()...
1036 1036
             array(
@@ -1055,8 +1055,8 @@  discard block
 block discarded – undo
1055 1055
             // even though they are really strange...
1056 1056
             array(
1057 1057
                 $siteurl, // example.org or http://localhost or http://localhost/wordpress
1058
-                $siteurl . '/something.jpg',
1059
-                $siteurl . '/something.jpg',
1058
+                $siteurl.'/something.jpg',
1059
+                $siteurl.'/something.jpg',
1060 1060
             ),
1061 1061
             // These shouldn't really be changed, or even if replacements do
1062 1062
             // happen, they shouldn't be destructive...
@@ -1095,31 +1095,31 @@  discard block
 block discarded – undo
1095 1095
         $test_link = '/a.jpg';
1096 1096
         $cdn_url   = '//cdn.example.org';
1097 1097
 
1098
-        $with_ssl = function( $cdn ) {
1098
+        $with_ssl = function($cdn) {
1099 1099
             return '';
1100 1100
         };
1101 1101
         $expected_with_ssl = '/a.jpg';
1102 1102
 
1103
-        $without_ssl = function( $cdn ) {
1103
+        $without_ssl = function($cdn) {
1104 1104
             return $cdn;
1105 1105
         };
1106
-        $expected_without_ssl = '//cdn.example.org/' . $sub . 'a.jpg';
1106
+        $expected_without_ssl = '//cdn.example.org/'.$sub.'a.jpg';
1107 1107
 
1108 1108
         // With a filter that returns something considered "empty", cdn replacement shouldn't occur...
1109
-        add_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1110
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
1109
+        add_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1110
+        $mock = $this->getMockBuilder('autoptimizeBase')
1111 1111
                 ->disableOriginalConstructor()
1112 1112
                 ->getMockForAbstractClass();
1113 1113
 
1114 1114
         $mock->cdn_url   = $cdn_url;
1115
-        $actual_with_ssl = $mock->url_replace_cdn( $test_link );
1116
-        $this->assertEquals( $expected_with_ssl, $actual_with_ssl );
1117
-        remove_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1115
+        $actual_with_ssl = $mock->url_replace_cdn($test_link);
1116
+        $this->assertEquals($expected_with_ssl, $actual_with_ssl);
1117
+        remove_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1118 1118
 
1119 1119
         // With a filter that returns an actual cdn url, cdn replacement should occur.
1120
-        add_filter( 'autoptimize_filter_base_cdnurl', $without_ssl );
1121
-        $actual_without_ssl = $mock->url_replace_cdn( $test_link );
1122
-        $this->assertEquals( $expected_without_ssl, $actual_without_ssl );
1120
+        add_filter('autoptimize_filter_base_cdnurl', $without_ssl);
1121
+        $actual_without_ssl = $mock->url_replace_cdn($test_link);
1122
+        $this->assertEquals($expected_without_ssl, $actual_without_ssl);
1123 1123
     }
1124 1124
 
1125 1125
     public function provider_cssmin_issues()
@@ -1158,11 +1158,11 @@  discard block
 block discarded – undo
1158 1158
     /**
1159 1159
      * @dataProvider provider_cssmin_issues
1160 1160
      */
1161
-    public function test_cssmin_issues( $input, $expected )
1161
+    public function test_cssmin_issues($input, $expected)
1162 1162
     {
1163
-        $minifier = new autoptimizeCSSmin( false ); // No need to raise limits for now.
1164
-        $actual   = $minifier->run( $input );
1165
-        $this->assertEquals( $expected, $actual );
1163
+        $minifier = new autoptimizeCSSmin(false); // No need to raise limits for now.
1164
+        $actual   = $minifier->run($input);
1165
+        $this->assertEquals($expected, $actual);
1166 1166
     }
1167 1167
 
1168 1168
     public function provider_getpath()
@@ -1187,12 +1187,12 @@  discard block
 block discarded – undo
1187 1187
             // This file comes with core, so should exist...
1188 1188
             array(
1189 1189
                 '/wp-includes/js/jquery/jquery.js',
1190
-                WP_ROOT_DIR . '/wp-includes/js/jquery/jquery.js',
1190
+                WP_ROOT_DIR.'/wp-includes/js/jquery/jquery.js',
1191 1191
             ),
1192 1192
             // This file comes with core as of 5.6, so should exist...
1193 1193
             array(
1194 1194
                 '/wp-includes/js/jquery/jquery.min.js',
1195
-                WP_ROOT_DIR . '/wp-includes/js/jquery/jquery.min.js',
1195
+                WP_ROOT_DIR.'/wp-includes/js/jquery/jquery.min.js',
1196 1196
             ),
1197 1197
             // Empty $url should return false.
1198 1198
             array(
@@ -1217,12 +1217,12 @@  discard block
 block discarded – undo
1217 1217
     /**
1218 1218
      * @dataProvider provider_getpath
1219 1219
      */
1220
-    public function test_getpath( $input, $expected )
1220
+    public function test_getpath($input, $expected)
1221 1221
     {
1222
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )->disableOriginalConstructor()->getMockForAbstractClass();
1222
+        $mock = $this->getMockBuilder('autoptimizeBase')->disableOriginalConstructor()->getMockForAbstractClass();
1223 1223
 
1224
-        $actual = $mock->getpath( $input );
1225
-        $this->assertEquals( $expected, $actual );
1224
+        $actual = $mock->getpath($input);
1225
+        $this->assertEquals($expected, $actual);
1226 1226
     }
1227 1227
 
1228 1228
     /**
@@ -1236,7 +1236,7 @@  discard block
 block discarded – undo
1236 1236
 
1237 1237
         $protorelativesiteurl = $urls['prsiteurl'];
1238 1238
 
1239
-        $css_orig     = <<<CSS
1239
+        $css_orig = <<<CSS
1240 1240
 header{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90px' height='110px' viewBox='0 0 90 110'%3E%3Cstyle%3E.a%7Bstop-color:%23FFF;%7D.b%7Bstop-color:%23B2D235;%7D.c%7Bstop-color:%23BEE7FA;%7D.d%7Bfill:%23590C15;%7D%3C/style%3E%3ClinearGradient id='c' y2='135.4' gradientUnits='userSpaceOnUse' x2='209.1' gradientTransform='rotate(-1.467 -4082.888 7786.794)' y1='205.8' x1='262'%3E%3Cstop class='b' offset='0'/%3E%3Cstop class='b' offset='.48'/%3E%3Cstop stop-color='%23829D25' offset='1'/%3E%3C/linearGradient%3E%3Cpath stroke-width='.3' d='M77.3 45.4c-3-3.5-7.1-6.5-11.6-7.8-5.1-1.5-10-.1-14.9 1.5C52 35.4 54.3 29 60 24l-4.8-5.5c-3.4 3-5.8 6.3-7.5 9.4-1.7-4.3-4.1-8.4-7.5-12C33.4 8.6 24.3 4.7 15.1 4.2c-.2 9.3 3.1 18.6 9.9 25.9 5.2 5.6 11.8 9.2 18.7 10.8-2.5.2-4.9-.1-7.7-.9-5.2-1.4-10.5-2.8-15.8-1C10.6 42.3 4.5 51.9 4 61.7c-.5 11.6 3.8 23.8 9.9 33.5 3.9 6.3 9.6 13.7 17.7 13.4 3.8-.1 7-2.1 10.7-2.7 5.2-.8 9.1 1.2 14.1 1.8 16.4 2 24.4-23.6 26.4-35.9 1.2-9.1.8-19.1-5.5-26.4z' stroke='%233E6D1F' fill='url(%23c)'/%3E%3C/svg%3E")}
1241 1241
 section.clipped.clippedTop {clip-path:url("#clipPolygonTop")}
1242 1242
 section.clipped.clippedBottom {clip-path:url("#clipPolygonBottom")}
@@ -1249,13 +1249,13 @@  discard block
 block discarded – undo
1249 1249
 .myimg {background-image: url($protorelativesiteurl/wp-content/themes/my-theme/images/under-left-leaf.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/over-blue-bird.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/under-top.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/bg-top-grunge.png);}
1250 1250
 CSS;
1251 1251
 
1252
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1253
-        $this->assertEquals( $css_expected, $fixurls_result );
1252
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1253
+        $this->assertEquals($css_expected, $fixurls_result);
1254 1254
     }
1255 1255
 
1256 1256
     public function test_background_datauri_sprites_with_fixurls()
1257 1257
     {
1258
-        $css_orig     = <<<CSS
1258
+        $css_orig = <<<CSS
1259 1259
 .shadow { background:url(img/1x1.png) top center; }
1260 1260
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1261 1261
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1307,27 +1307,27 @@  discard block
 block discarded – undo
1307 1307
 CSS;
1308 1308
 
1309 1309
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1310
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1310
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1311 1311
             return true;
1312
-        }, 10, 2 );
1312
+        }, 10, 2);
1313 1313
 
1314 1314
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1315
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1315
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1316 1316
             $head = 'data:image/png;base64,';
1317 1317
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1318 1318
 
1319
-            $result['full']       = $head . $data;
1319
+            $result['full']       = $head.$data;
1320 1320
             $result['base64data'] = $data;
1321 1321
             return $result;
1322
-        }, 10, 2 );
1322
+        }, 10, 2);
1323 1323
 
1324
-        $instance = new autoptimizeStyles( $css_orig );
1325
-        $instance->setOption( 'datauris', true );
1324
+        $instance = new autoptimizeStyles($css_orig);
1325
+        $instance->setOption('datauris', true);
1326 1326
 
1327
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1328
-        $css_actual     = $instance->rewrite_assets( $fixurls_result );
1327
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1328
+        $css_actual     = $instance->rewrite_assets($fixurls_result);
1329 1329
 
1330
-        $this->assertEquals( $css_expected, $css_actual );
1330
+        $this->assertEquals($css_expected, $css_actual);
1331 1331
     }
1332 1332
 
1333 1333
     /**
@@ -1347,7 +1347,7 @@  discard block
 block discarded – undo
1347 1347
      */
1348 1348
     public function test_background_datauri_sprites_without_fixurls()
1349 1349
     {
1350
-        $css_orig     = <<<CSS
1350
+        $css_orig = <<<CSS
1351 1351
 .shadow { background:url(img/1x1.png) top center; }
1352 1352
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1353 1353
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1391,24 +1391,24 @@  discard block
 block discarded – undo
1391 1391
 CSS;
1392 1392
 
1393 1393
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1394
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1394
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1395 1395
             return true;
1396
-        }, 10, 2 );
1396
+        }, 10, 2);
1397 1397
 
1398 1398
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1399
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1399
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1400 1400
             $head = 'data:image/png;base64,';
1401 1401
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1402 1402
 
1403
-            $result['full']       = $head . $data;
1403
+            $result['full']       = $head.$data;
1404 1404
             $result['base64data'] = $data;
1405 1405
             return $result;
1406
-        }, 10, 2 );
1406
+        }, 10, 2);
1407 1407
 
1408
-        $instance = new autoptimizeStyles( $css_orig );
1409
-        $instance->setOption( 'datauris', true );
1410
-        $css_actual = $instance->rewrite_assets( $css_orig );
1411
-        $this->assertEquals( $css_expected, $css_actual );
1408
+        $instance = new autoptimizeStyles($css_orig);
1409
+        $instance->setOption('datauris', true);
1410
+        $css_actual = $instance->rewrite_assets($css_orig);
1411
+        $this->assertEquals($css_expected, $css_actual);
1412 1412
     }
1413 1413
 
1414 1414
     /**
@@ -1528,12 +1528,12 @@  discard block
 block discarded – undo
1528 1528
 CSS;
1529 1529
 
1530 1530
         // Test with fonts pointed to the CDN + cdn option is set.
1531
-        add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );
1532
-        $instance = new autoptimizeStyles( $css_in );
1533
-        $instance->setOption( 'cdn_url', $cdnurl );
1534
-        $css_actual_fonts_cdn = $instance->rewrite_assets( $css_in );
1531
+        add_filter('autoptimize_filter_css_fonts_cdn', '__return_true');
1532
+        $instance = new autoptimizeStyles($css_in);
1533
+        $instance->setOption('cdn_url', $cdnurl);
1534
+        $css_actual_fonts_cdn = $instance->rewrite_assets($css_in);
1535 1535
 
1536
-        $this->assertEquals( $css_expected_fonts_cdn, $css_actual_fonts_cdn );
1536
+        $this->assertEquals($css_expected_fonts_cdn, $css_actual_fonts_cdn);
1537 1537
     }
1538 1538
 
1539 1539
     /**
@@ -1649,10 +1649,10 @@  discard block
 block discarded – undo
1649 1649
 }
1650 1650
 CSS;
1651 1651
         // Test without moving fonts to CDN, but cdn option is set.
1652
-        $instance = new autoptimizeStyles( $css_in );
1653
-        $instance->setOption( 'cdn_url', $urls['cdnurl'] );
1654
-        $css_actual = $instance->rewrite_assets( $css_in );
1655
-        $this->assertEquals( $css_expected, $css_actual );
1652
+        $instance = new autoptimizeStyles($css_in);
1653
+        $instance->setOption('cdn_url', $urls['cdnurl']);
1654
+        $css_actual = $instance->rewrite_assets($css_in);
1655
+        $this->assertEquals($css_expected, $css_actual);
1656 1656
     }
1657 1657
 
1658 1658
     public function test_assets_regex_replaces_multi_bg_images()
@@ -1673,16 +1673,16 @@  discard block
 block discarded – undo
1673 1673
 }
1674 1674
 CSS;
1675 1675
 
1676
-        $instance = new autoptimizeStyles( $in );
1677
-        $instance->setOption( 'cdn_url', $cdnurl );
1678
-        $actual = $instance->rewrite_assets( $in );
1676
+        $instance = new autoptimizeStyles($in);
1677
+        $instance->setOption('cdn_url', $cdnurl);
1678
+        $actual = $instance->rewrite_assets($in);
1679 1679
 
1680
-        $this->assertEquals( $expected, $actual );
1680
+        $this->assertEquals($expected, $actual);
1681 1681
     }
1682 1682
 
1683 1683
     public function test_at_supports_spacing_issue_110()
1684 1684
     {
1685
-        $in       = <<<CSS
1685
+        $in = <<<CSS
1686 1686
 @supports (-webkit-filter: blur(3px)) or (filter: blur(3px)) {
1687 1687
     .blur {
1688 1688
         filter:blur(3px);
@@ -1696,10 +1696,10 @@  discard block
 block discarded – undo
1696 1696
 @supports (-webkit-filter:blur(3px)) or (filter:blur(3px)){.blur{filter:blur(3px)}}@supports((position:-webkit-sticky) or (position:sticky)){.sticky{position:sticky}}
1697 1697
 CSS;
1698 1698
 
1699
-        $instance = new autoptimizeStyles( $in );
1700
-        $actual   = $instance->run_minifier_on( $in );
1699
+        $instance = new autoptimizeStyles($in);
1700
+        $actual   = $instance->run_minifier_on($in);
1701 1701
 
1702
-        $this->assertEquals( $expected, $actual );
1702
+        $this->assertEquals($expected, $actual);
1703 1703
     }
1704 1704
 
1705 1705
     public function test_css_import_semicolon_url_issue_122()
@@ -1715,18 +1715,18 @@  discard block
 block discarded – undo
1715 1715
 </style>
1716 1716
 HTML;
1717 1717
 
1718
-        $expected = '<style media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css?a&#038;b);@import url(' . $cdnurl . '/' . $sub . 'bar.css);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1718
+        $expected = '<style media="all">@import url('.$cdnurl.'/'.$sub.'foo.css?a&#038;b);@import url('.$cdnurl.'/'.$sub.'bar.css);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1719 1719
 
1720 1720
         $options = [
1721 1721
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1722 1722
         ];
1723 1723
 
1724
-        $instance = new autoptimizeStyles( $in );
1725
-        $instance->read( $options['autoptimizeStyles'] );
1724
+        $instance = new autoptimizeStyles($in);
1725
+        $instance->read($options['autoptimizeStyles']);
1726 1726
         $instance->minify();
1727 1727
         $instance->cache();
1728 1728
         $actual = $instance->getcontent();
1729
-        $this->assertEquals( $expected, $actual );
1729
+        $this->assertEquals($expected, $actual);
1730 1730
     }
1731 1731
 
1732 1732
     public function test_fixurls_with_at_imports_and_media_queries()
@@ -1736,10 +1736,10 @@  discard block
 block discarded – undo
1736 1736
         $subfolder = $urls['subfolder'];
1737 1737
 
1738 1738
         $in  = '@import "foo.css"; @import "bar.css" (orientation:landscape);';
1739
-        $exp = '@import url(' . $prsiteurl . '/wp-content/themes/my-theme/foo.css); @import url(' . $prsiteurl . '/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1739
+        $exp = '@import url('.$prsiteurl.'/wp-content/themes/my-theme/foo.css); @import url('.$prsiteurl.'/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1740 1740
 
1741
-        $actual = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $in );
1742
-        $this->assertEquals( $exp, $actual );
1741
+        $actual = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $in);
1742
+        $this->assertEquals($exp, $actual);
1743 1743
     }
1744 1744
 
1745 1745
     public function test_aostyles_at_imports_with_media_queries()
@@ -1754,43 +1754,43 @@  discard block
 block discarded – undo
1754 1754
 </style>
1755 1755
 HTML;
1756 1756
 
1757
-        $expected = '<style media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css);@import url(' . $cdnurl . '/' . $sub . 'bar.css) (orientation:landscape);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1757
+        $expected = '<style media="all">@import url('.$cdnurl.'/'.$sub.'foo.css);@import url('.$cdnurl.'/'.$sub.'bar.css) (orientation:landscape);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1758 1758
 
1759 1759
         $options = [
1760 1760
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1761 1761
         ];
1762 1762
 
1763
-        $instance = new autoptimizeStyles( $in );
1764
-        $instance->read( $options['autoptimizeStyles'] );
1763
+        $instance = new autoptimizeStyles($in);
1764
+        $instance->read($options['autoptimizeStyles']);
1765 1765
         $instance->minify();
1766 1766
         $instance->cache();
1767 1767
 
1768 1768
         $actual = $instance->getcontent();
1769
-        $this->assertEquals( $expected, $actual );
1769
+        $this->assertEquals($expected, $actual);
1770 1770
     }
1771 1771
 
1772 1772
     public function test_cache_size_checker_hooked_by_default()
1773 1773
     {
1774
-        $this->assertNotEmpty( autoptimizeCacheChecker::SCHEDULE_HOOK );
1774
+        $this->assertNotEmpty(autoptimizeCacheChecker::SCHEDULE_HOOK);
1775 1775
 
1776 1776
         // No schedule, because it's only added when is_admin() is true.
1777
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1777
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1778 1778
 
1779 1779
         // Proving that setup() sets the schedule as needed.
1780 1780
         $checker = new autoptimizeCacheChecker();
1781 1781
         $checker->setup();
1782
-        $this->assertEquals( 'twicedaily', wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1782
+        $this->assertEquals('twicedaily', wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1783 1783
     }
1784 1784
 
1785 1785
     public function test_cache_size_checker_disabled_with_filter()
1786 1786
     {
1787
-        add_filter( 'autoptimize_filter_cachecheck_do', '__return_false' );
1787
+        add_filter('autoptimize_filter_cachecheck_do', '__return_false');
1788 1788
 
1789 1789
         $checker = new autoptimizeCacheChecker();
1790 1790
         $checker->setup();
1791
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1791
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1792 1792
 
1793
-        remove_all_filters( 'autoptimize_filter_cachecheck_do' );
1793
+        remove_all_filters('autoptimize_filter_cachecheck_do');
1794 1794
     }
1795 1795
 
1796 1796
     public function test_is_start_buffering_hooked_properly()
@@ -1803,12 +1803,12 @@  discard block
 block discarded – undo
1803 1803
          * https://www.theaveragedev.com/mocking-constants-in-tests/.
1804 1804
          */
1805 1805
 
1806
-        if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
1806
+        if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
1807 1807
             $this->assertEquals(
1808 1808
                 autoptimizeMain::INIT_EARLIER_PRIORITY,
1809
-                has_action( 'init', array( $instance, 'start_buffering' ) )
1809
+                has_action('init', array($instance, 'start_buffering'))
1810 1810
             );
1811
-            $this->assertTrue( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) );
1811
+            $this->assertTrue(!defined('AUTOPTIMIZE_HOOK_INTO'));
1812 1812
         }
1813 1813
 
1814 1814
         /*
@@ -1825,18 +1825,18 @@  discard block
 block discarded – undo
1825 1825
 
1826 1826
     public function test_inline_and_defer_markup()
1827 1827
     {
1828
-        add_filter( 'autoptimize_filter_css_defer', '__return_true' );
1829
-        add_filter( 'autoptimize_filter_css_defer_inline', '__return_true' );
1828
+        add_filter('autoptimize_filter_css_defer', '__return_true');
1829
+        add_filter('autoptimize_filter_css_defer_inline', '__return_true');
1830 1830
 
1831
-        $actual = $this->ao->end_buffering( $this->get_test_markup() );
1832
-        if ( is_multisite() ) {
1833
-            $this->assertEquals( $this->get_test_markup_output_inline_defer_ms(), $actual );
1831
+        $actual = $this->ao->end_buffering($this->get_test_markup());
1832
+        if (is_multisite()) {
1833
+            $this->assertEquals($this->get_test_markup_output_inline_defer_ms(), $actual);
1834 1834
         } else {
1835
-            $this->assertEquals( $this->get_test_markup_output_inline_defer(), $actual );
1835
+            $this->assertEquals($this->get_test_markup_output_inline_defer(), $actual);
1836 1836
         }
1837 1837
 
1838
-        remove_all_filters( 'autoptimize_filter_css_defer' );
1839
-        remove_all_filters( 'autoptimize_filter_css_defer_inline' );
1838
+        remove_all_filters('autoptimize_filter_css_defer');
1839
+        remove_all_filters('autoptimize_filter_css_defer_inline');
1840 1840
     }
1841 1841
 
1842 1842
     public function test_js_aggregation_decision_and_dontaggregate_filter()
@@ -1844,47 +1844,47 @@  discard block
 block discarded – undo
1844 1844
         $opts = $this->getAoScriptsDefaultOptions();
1845 1845
 
1846 1846
         // Aggregating: true by default.
1847
-        $scripts = new autoptimizeScripts( '' );
1848
-        $scripts->read( $opts );
1849
-        $this->assertTrue( $scripts->aggregating() );
1847
+        $scripts = new autoptimizeScripts('');
1848
+        $scripts->read($opts);
1849
+        $this->assertTrue($scripts->aggregating());
1850 1850
 
1851 1851
         // Aggregating: option=true (dontaggregate=false by default).
1852 1852
         $opts['aggregate'] = true;
1853
-        $scripts           = new autoptimizeScripts( '' );
1854
-        $scripts->read( $opts );
1855
-        $this->assertTrue( $scripts->aggregating() );
1853
+        $scripts           = new autoptimizeScripts('');
1854
+        $scripts->read($opts);
1855
+        $this->assertTrue($scripts->aggregating());
1856 1856
 
1857 1857
         // Aggregating: option=true, dontaggregate=false explicit.
1858 1858
         $opts['aggregate'] = true;
1859
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1860
-        $scripts = new autoptimizeScripts( '' );
1861
-        $scripts->read( $opts );
1862
-        $this->assertTrue( $scripts->aggregating() );
1863
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1859
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1860
+        $scripts = new autoptimizeScripts('');
1861
+        $scripts->read($opts);
1862
+        $this->assertTrue($scripts->aggregating());
1863
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1864 1864
 
1865 1865
         // Not aggregating: option=true, dontaggregate=true.
1866 1866
         $opts['aggregate'] = true;
1867
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1868
-        $scripts = new autoptimizeScripts( '' );
1869
-        $scripts->read( $opts );
1870
-        $this->assertFalse( $scripts->aggregating() );
1871
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1867
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1868
+        $scripts = new autoptimizeScripts('');
1869
+        $scripts->read($opts);
1870
+        $this->assertFalse($scripts->aggregating());
1871
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1872 1872
 
1873 1873
         // Not aggregating: option=false, dontaggregate=false.
1874 1874
         $opts['aggregate'] = false;
1875
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1876
-        $scripts = new autoptimizeScripts( '' );
1877
-        $scripts->read( $opts );
1878
-        $this->assertFalse( $scripts->aggregating() );
1879
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1875
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1876
+        $scripts = new autoptimizeScripts('');
1877
+        $scripts->read($opts);
1878
+        $this->assertFalse($scripts->aggregating());
1879
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1880 1880
 
1881 1881
         // Not aggregating: option=false, dontaggregate=true.
1882 1882
         $opts['aggregate'] = false;
1883
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1884
-        $scripts = new autoptimizeScripts( '' );
1885
-        $scripts->read( $opts );
1886
-        $this->assertFalse( $scripts->aggregating() );
1887
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1883
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1884
+        $scripts = new autoptimizeScripts('');
1885
+        $scripts->read($opts);
1886
+        $this->assertFalse($scripts->aggregating());
1887
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1888 1888
     }
1889 1889
 
1890 1890
     public function test_css_aggregation_decision_and_dontaggregate_filter()
@@ -1892,78 +1892,78 @@  discard block
 block discarded – undo
1892 1892
         $opts = $this->getAoStylesDefaultOptions();
1893 1893
 
1894 1894
         // Aggregating: true by default.
1895
-        $styles = new autoptimizeStyles( '' );
1896
-        $this->assertTrue( $styles->aggregating() );
1895
+        $styles = new autoptimizeStyles('');
1896
+        $this->assertTrue($styles->aggregating());
1897 1897
 
1898 1898
         // Aggregating: option=true (dontaggregate=false by default).
1899 1899
         $opts['aggregate'] = true;
1900
-        $styles            = new autoptimizeStyles( '' );
1901
-        $styles->read( $opts );
1902
-        $this->assertTrue( $styles->aggregating() );
1900
+        $styles            = new autoptimizeStyles('');
1901
+        $styles->read($opts);
1902
+        $this->assertTrue($styles->aggregating());
1903 1903
 
1904 1904
         // Aggregating: option=true, dontaggregate=false explicit.
1905 1905
         $opts['aggregate'] = true;
1906
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1907
-        $styles = new autoptimizeStyles( '' );
1908
-        $styles->read( $opts );
1909
-        $this->assertTrue( $styles->aggregating() );
1910
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1906
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1907
+        $styles = new autoptimizeStyles('');
1908
+        $styles->read($opts);
1909
+        $this->assertTrue($styles->aggregating());
1910
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1911 1911
 
1912 1912
         // Not aggregating: option=true, dontaggregate=true.
1913 1913
         $opts['aggregate'] = true;
1914
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1915
-        $styles = new autoptimizeStyles( '' );
1916
-        $styles->read( $opts );
1917
-        $this->assertFalse( $styles->aggregating() );
1918
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1914
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1915
+        $styles = new autoptimizeStyles('');
1916
+        $styles->read($opts);
1917
+        $this->assertFalse($styles->aggregating());
1918
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1919 1919
 
1920 1920
         // Not aggregating: option=false, dontaggregate=false.
1921 1921
         $opts['aggregate'] = false;
1922
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1923
-        $styles = new autoptimizeStyles( '' );
1924
-        $styles->read( $opts );
1925
-        $this->assertFalse( $styles->aggregating() );
1926
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1922
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1923
+        $styles = new autoptimizeStyles('');
1924
+        $styles->read($opts);
1925
+        $this->assertFalse($styles->aggregating());
1926
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1927 1927
 
1928 1928
         // Not aggregating: option=false, dontaggregate=true.
1929 1929
         $opts['aggregate'] = false;
1930
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1931
-        $styles = new autoptimizeStyles( '' );
1932
-        $styles->read( $opts );
1933
-        $this->assertFalse( $styles->aggregating() );
1934
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1930
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1931
+        $styles = new autoptimizeStyles('');
1932
+        $styles->read($opts);
1933
+        $this->assertFalse($styles->aggregating());
1934
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1935 1935
     }
1936 1936
 
1937 1937
     public function test_css_minify_single_with_cdning()
1938 1938
     {
1939
-        $pathname = dirname( __FILE__ ) . '/fixtures/minify-single.css';
1939
+        $pathname = dirname(__FILE__).'/fixtures/minify-single.css';
1940 1940
         $opts     = $this->getAoStylesDefaultOptions();
1941
-        $styles   = new autoptimizeStyles( '' );
1942
-        $styles->read( $opts );
1941
+        $styles   = new autoptimizeStyles('');
1942
+        $styles->read($opts);
1943 1943
 
1944
-        $url = $styles->minify_single( $pathname, $cache_miss = true );
1944
+        $url = $styles->minify_single($pathname, $cache_miss = true);
1945 1945
 
1946 1946
         // Minified url filename + its pointed to cdn.
1947
-        $this->assertContains( AUTOPTIMIZE_CACHE_CHILD_DIR, $url );
1948
-        $this->assertContains( '/autoptimize_single_', $url );
1949
-        $this->assertContains( $styles->cdn_url, $url );
1947
+        $this->assertContains(AUTOPTIMIZE_CACHE_CHILD_DIR, $url);
1948
+        $this->assertContains('/autoptimize_single_', $url);
1949
+        $this->assertContains($styles->cdn_url, $url);
1950 1950
 
1951 1951
         // Actual minified css contents are minified and cdn-ed.
1952
-        $path     = $styles->getpath( $url );
1953
-        $contents = file_get_contents( $path );
1954
-        $this->assertContains( $styles->cdn_url, $contents );
1955
-        $this->assertContains( '.bg{background:url(' . $styles->cdn_url, $contents );
1952
+        $path     = $styles->getpath($url);
1953
+        $contents = file_get_contents($path);
1954
+        $this->assertContains($styles->cdn_url, $contents);
1955
+        $this->assertContains('.bg{background:url('.$styles->cdn_url, $contents);
1956 1956
     }
1957 1957
 
1958 1958
     public function test_ao_partners_instantiation_without_explicit_include()
1959 1959
     {
1960 1960
         $partners = new autoptimizePartners();
1961
-        $this->assertTrue( $partners instanceof autoptimizePartners );
1961
+        $this->assertTrue($partners instanceof autoptimizePartners);
1962 1962
     }
1963 1963
 
1964 1964
     public function test_html_minify_keep_html_comments_inside_script_blocks()
1965 1965
     {
1966
-        $markup   = <<<MARKUP
1966
+        $markup = <<<MARKUP
1967 1967
 <script>
1968 1968
 <!-- End Support AJAX add to cart -->
1969 1969
 var a = "b";
@@ -1993,23 +1993,23 @@  discard block
 block discarded – undo
1993 1993
             ],
1994 1994
         ];
1995 1995
 
1996
-        $instance = new autoptimizeHTML( $markup );
1997
-        $instance->read( $options['autoptimizeHTML'] );
1996
+        $instance = new autoptimizeHTML($markup);
1997
+        $instance->read($options['autoptimizeHTML']);
1998 1998
         $instance->minify();
1999 1999
         $actual = $instance->getcontent();
2000
-        $this->assertEquals( $expected, $actual );
2000
+        $this->assertEquals($expected, $actual);
2001 2001
 
2002
-        $instance = new autoptimizeHTML( $markup2 );
2003
-        $instance->read( $options['autoptimizeHTML'] );
2002
+        $instance = new autoptimizeHTML($markup2);
2003
+        $instance->read($options['autoptimizeHTML']);
2004 2004
         $instance->minify();
2005 2005
         $actual2 = $instance->getcontent();
2006
-        $this->assertEquals( $expected2, $actual2 );
2006
+        $this->assertEquals($expected2, $actual2);
2007 2007
     }
2008 2008
 
2009 2009
     public function test_html_minify_remove_html_comments_inside_script_blocks()
2010 2010
     {
2011 2011
         // Default case, html comments removed (keepcomments = false).
2012
-        $markup1   = <<<MARKUP
2012
+        $markup1 = <<<MARKUP
2013 2013
 <script>
2014 2014
 var a = "b";
2015 2015
 <!-- End Support AJAX add to cart -->
@@ -2020,7 +2020,7 @@  discard block
 block discarded – undo
2020 2020
 <!-- End Support AJAX add to cart</script>
2021 2021
 MARKUP;
2022 2022
 
2023
-        $markup2   = <<<MARKUP
2023
+        $markup2 = <<<MARKUP
2024 2024
 <script>
2025 2025
 <!-- End Support AJAX add to cart -->
2026 2026
 var a = "b";
@@ -2037,17 +2037,17 @@  discard block
 block discarded – undo
2037 2037
             ],
2038 2038
         ];
2039 2039
 
2040
-        $instance = new autoptimizeHTML( $markup1 );
2041
-        $instance->read( $options['autoptimizeHTML'] );
2040
+        $instance = new autoptimizeHTML($markup1);
2041
+        $instance->read($options['autoptimizeHTML']);
2042 2042
         $instance->minify();
2043 2043
         $actual = $instance->getcontent();
2044
-        $this->assertEquals( $expected1, $actual );
2044
+        $this->assertEquals($expected1, $actual);
2045 2045
 
2046
-        $instance = new autoptimizeHTML( $markup2 );
2047
-        $instance->read( $options['autoptimizeHTML'] );
2046
+        $instance = new autoptimizeHTML($markup2);
2047
+        $instance->read($options['autoptimizeHTML']);
2048 2048
         $instance->minify();
2049 2049
         $actual2 = $instance->getcontent();
2050
-        $this->assertEquals( $expected2, $actual2 );
2050
+        $this->assertEquals($expected2, $actual2);
2051 2051
     }
2052 2052
 
2053 2053
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern()
@@ -2071,11 +2071,11 @@  discard block
 block discarded – undo
2071 2071
             ],
2072 2072
         ];
2073 2073
 
2074
-        $instance = new autoptimizeHTML( $markup );
2075
-        $instance->read( $options['autoptimizeHTML'] );
2074
+        $instance = new autoptimizeHTML($markup);
2075
+        $instance->read($options['autoptimizeHTML']);
2076 2076
         $instance->minify();
2077 2077
         $actual = $instance->getcontent();
2078
-        $this->assertEquals( $expected, $actual );
2078
+        $this->assertEquals($expected, $actual);
2079 2079
     }
2080 2080
 
2081 2081
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern_untouched()
@@ -2100,49 +2100,49 @@  discard block
 block discarded – undo
2100 2100
             ],
2101 2101
         ];
2102 2102
 
2103
-        $instance = new autoptimizeHTML( $markup );
2104
-        $instance->read( $options['autoptimizeHTML'] );
2103
+        $instance = new autoptimizeHTML($markup);
2104
+        $instance->read($options['autoptimizeHTML']);
2105 2105
         $instance->minify();
2106 2106
         $actual = $instance->getcontent();
2107
-        $this->assertEquals( $expected, $actual );
2107
+        $this->assertEquals($expected, $actual);
2108 2108
     }
2109 2109
 
2110 2110
     public function test_utils_mbstring_availabilty_overriding()
2111 2111
     {
2112 2112
         $orig     = autoptimizeUtils::mbstring_available();
2113
-        $opposite = ! $orig;
2113
+        $opposite = !$orig;
2114 2114
 
2115
-        $this->assertSame( $orig, autoptimizeUtils::mbstring_available() );
2115
+        $this->assertSame($orig, autoptimizeUtils::mbstring_available());
2116 2116
         // Override works...
2117
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available( $opposite ) );
2117
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available($opposite));
2118 2118
         // And override remains cached as the last version.
2119
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available() );
2119
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available());
2120 2120
     }
2121 2121
 
2122 2122
     public function test_utils_mbstring_basics()
2123 2123
     {
2124 2124
         // Turn on mbstring usage.
2125
-        autoptimizeUtils::mbstring_available( true );
2125
+        autoptimizeUtils::mbstring_available(true);
2126 2126
 
2127
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'ASCII' ) );
2128
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'CP850' ) );
2129
-        $this->assertSame( 3, autoptimizeUtils::strlen( '한국어' ) );
2127
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'ASCII'));
2128
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'CP850'));
2129
+        $this->assertSame(3, autoptimizeUtils::strlen('한국어'));
2130 2130
 
2131
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', '' ) );
2132
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', 'a', -1 ) );
2133
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'd' ) );
2134
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'a', 3 ) );
2135
-        $this->assertSame( 1, autoptimizeUtils::strpos( '한국어', '국' ) );
2131
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', ''));
2132
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', 'a', -1));
2133
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'd'));
2134
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'a', 3));
2135
+        $this->assertSame(1, autoptimizeUtils::strpos('한국어', '국'));
2136 2136
     }
2137 2137
 
2138 2138
     /**
2139 2139
      * @dataProvider provider_utils_substr_replace
2140 2140
      */
2141
-    function test_utils_substr_replace_basics_mbstring( $s, $repl, $start, $len, $expected )
2141
+    function test_utils_substr_replace_basics_mbstring($s, $repl, $start, $len, $expected)
2142 2142
     {
2143 2143
         // Force mbstring code path...
2144
-        autoptimizeUtils::mbstring_available( true );
2145
-        $this->assertEquals( $expected, autoptimizeUtils::substr_replace( $s, $repl, $start, $len ) );
2144
+        autoptimizeUtils::mbstring_available(true);
2145
+        $this->assertEquals($expected, autoptimizeUtils::substr_replace($s, $repl, $start, $len));
2146 2146
     }
2147 2147
 
2148 2148
     public function provider_utils_substr_replace()
@@ -2184,48 +2184,48 @@  discard block
 block discarded – undo
2184 2184
 
2185 2185
     function test_mb_substr_replace_with_ascii_input_string()
2186 2186
     {
2187
-        autoptimizeUtils::mbstring_available( false );
2187
+        autoptimizeUtils::mbstring_available(false);
2188 2188
 
2189 2189
         $str = 'Ascii';
2190 2190
 
2191
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2192
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2193
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2194
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2195
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2191
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2192
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2193
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2194
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2195
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2196 2196
     }
2197 2197
 
2198 2198
     function test_mb_substr_replace_with_utf8_input_string()
2199 2199
     {
2200
-        autoptimizeUtils::mbstring_available( true );
2200
+        autoptimizeUtils::mbstring_available(true);
2201 2201
 
2202 2202
         $str = 'âønæë';
2203 2203
 
2204
-        $this->assertSame( 'âñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2205
-        $this->assertSame( 'ñnæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2206
-        $this->assertSame( 'âøñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2207
-        $this->assertSame( 'âøz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2208
-        $this->assertSame( 'âñæë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2204
+        $this->assertSame('âñ', autoptimizeUtils::substr_replace($str, 'ñ', 1)); // No length.
2205
+        $this->assertSame('ñnæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2206
+        $this->assertSame('âøñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2207
+        $this->assertSame('âøz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2208
+        $this->assertSame('âñæë', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2209 2209
     }
2210 2210
 
2211 2211
     function test_default_substr_replace_with_ascii_input_string()
2212 2212
     {
2213 2213
         // Disable mbstring which should fall ack to substr_replace...
2214
-        autoptimizeUtils::mbstring_available( false );
2214
+        autoptimizeUtils::mbstring_available(false);
2215 2215
 
2216 2216
         $str = 'Ascii';
2217 2217
 
2218
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2219
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2220
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2221
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2222
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2218
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2219
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2220
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2221
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2222
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2223 2223
     }
2224 2224
 
2225 2225
     function test_default_substr_replace_with_utf8_input_string()
2226 2226
     {
2227 2227
         // Disabling mbstring, falling back to substr_replace...
2228
-        autoptimizeUtils::mbstring_available( false );
2228
+        autoptimizeUtils::mbstring_available(false);
2229 2229
 
2230 2230
         // This is really impossible to make work properly, since
2231 2231
         // any start/len parameters we give are working with bytes instead
@@ -2234,59 +2234,59 @@  discard block
 block discarded – undo
2234 2234
 
2235 2235
         // $this->assertSame( '�ñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2236 2236
         // $this->assertSame( 'ñ�næë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2237
-        $this->assertSame( 'ñønæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2238
-        $this->assertSame( 'âñxæë', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2239
-        $this->assertSame( 'âz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2237
+        $this->assertSame('ñønæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2238
+        $this->assertSame('âñxæë', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2239
+        $this->assertSame('âz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2240 2240
     }
2241 2241
 
2242 2242
     public function test_cache_fast_delete()
2243 2243
     {
2244
-        add_filter( 'autoptimize_filter_cache_clear_advanced', '__return_true' );
2244
+        add_filter('autoptimize_filter_cache_clear_advanced', '__return_true');
2245 2245
 
2246
-        $this->assertTrue( autoptimizeCache::clearall_actionless() );
2246
+        $this->assertTrue(autoptimizeCache::clearall_actionless());
2247 2247
 
2248
-        remove_all_filters( 'autoptimize_filter_cache_clear_advanced' );
2248
+        remove_all_filters('autoptimize_filter_cache_clear_advanced');
2249 2249
     }
2250 2250
 
2251 2251
     public function test_delete_advanced_cache_clear_artifacts()
2252 2252
     {
2253
-        add_filter( 'autoptimize_filter_cache_clear_advanced', '__return_true' );
2253
+        add_filter('autoptimize_filter_cache_clear_advanced', '__return_true');
2254 2254
 
2255
-        $this->assertTrue( autoptimizeCache::delete_advanced_cache_clear_artifacts() );
2255
+        $this->assertTrue(autoptimizeCache::delete_advanced_cache_clear_artifacts());
2256 2256
 
2257
-        remove_all_filters( 'autoptimize_filter_cache_clear_advanced' );
2257
+        remove_all_filters('autoptimize_filter_cache_clear_advanced');
2258 2258
     }
2259 2259
 
2260 2260
     public function provider_canonicalization()
2261 2261
     {
2262 2262
         return array(
2263
-            array( '../common', 'common' ),
2264
-            array( '../what-does-this-mean/really?/', 'what-does-this-mean/really?/' ),
2265
-            array( '../../what/where/how', 'what/where/how' ),
2266
-            array( '/../more.dots.please/', '/more.dots.please/' ),
2267
-            array( '/../../what/where/how', '/what/where/how' ),
2268
-            array( '/a/b/c/../../../d/e/file.txt', '/d/e/file.txt' ),
2269
-            array( 'a/b/../c', 'a/c' ),
2270
-            array( './../../etc/passwd', './etc/passwd' ),
2271
-            array( '/var/.////./user/./././..//.//../////../././.././test/////', '/test/' ),
2272
-            array( '/var/user/./././.././../.././././test/', '/test/' ),
2273
-            array( '/hello/0//how/../are/../you', '/hello/0/you' ),
2274
-            array( '', '' ),
2275
-            array( '.', '.' ),
2276
-            array( '..', '..' ),
2277
-            array( './..', './..' ),
2278
-            array( '../.', '.' ),
2263
+            array('../common', 'common'),
2264
+            array('../what-does-this-mean/really?/', 'what-does-this-mean/really?/'),
2265
+            array('../../what/where/how', 'what/where/how'),
2266
+            array('/../more.dots.please/', '/more.dots.please/'),
2267
+            array('/../../what/where/how', '/what/where/how'),
2268
+            array('/a/b/c/../../../d/e/file.txt', '/d/e/file.txt'),
2269
+            array('a/b/../c', 'a/c'),
2270
+            array('./../../etc/passwd', './etc/passwd'),
2271
+            array('/var/.////./user/./././..//.//../////../././.././test/////', '/test/'),
2272
+            array('/var/user/./././.././../.././././test/', '/test/'),
2273
+            array('/hello/0//how/../are/../you', '/hello/0/you'),
2274
+            array('', ''),
2275
+            array('.', '.'),
2276
+            array('..', '..'),
2277
+            array('./..', './..'),
2278
+            array('../.', '.'),
2279 2279
             // This might be debatable...
2280
-            array( '../..', '..' ),
2280
+            array('../..', '..'),
2281 2281
         );
2282 2282
     }
2283 2283
 
2284 2284
     /**
2285 2285
      * @dataProvider provider_canonicalization
2286 2286
      */
2287
-    public function test_path_canonicalize( $path, $canonicalized )
2287
+    public function test_path_canonicalize($path, $canonicalized)
2288 2288
     {
2289
-        $this->assertSame( $canonicalized, autoptimizeUtils::path_canonicalize( $path ) );
2289
+        $this->assertSame($canonicalized, autoptimizeUtils::path_canonicalize($path));
2290 2290
     }
2291 2291
 
2292 2292
     /**
@@ -2300,16 +2300,16 @@  discard block
 block discarded – undo
2300 2300
     public function test_autoptimize_filter_cdn_magic_path_check()
2301 2301
     {
2302 2302
         $cdnurl = 'http://cdn.example.org';
2303
-        add_filter( 'autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2 );
2303
+        add_filter('autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2);
2304 2304
 
2305 2305
         // Even when site is in a subfolder, the resulting cdn-rewritten url
2306 2306
         // should not magically include it, due to the above filter.
2307 2307
         // The second parameter is here to force a cache miss and re-run
2308 2308
         // the filter since we're using the same cdn url all over the place,
2309 2309
         // but want to prove different things with it.
2310
-        $this->assertSame( $cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed( $cdnurl, true ) );
2310
+        $this->assertSame($cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed($cdnurl, true));
2311 2311
 
2312
-        remove_all_filters( 'autoptimize_filter_cdn_magic_path_check' );
2312
+        remove_all_filters('autoptimize_filter_cdn_magic_path_check');
2313 2313
     }
2314 2314
 
2315 2315
     /**
@@ -2334,9 +2334,9 @@  discard block
 block discarded – undo
2334 2334
 <img src='$imgopthost/client/q_glossy,ret_img,w_400,h_200/$siteurl/wp-content/image.jpg' width='400' height='200' srcset="$imgopthost/client/q_glossy,ret_img,w_300/$siteurl/wp-content/image-300X150.jpg 300w, $imgopthost/client/q_glossy,ret_img,w_600/$siteurl/wp-content/image-600X300.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" />
2335 2335
 MARKUP;
2336 2336
         $instance = autoptimizeImages::instance();
2337
-        $instance->set_options( $opts );
2338
-        $actual = $instance->filter_optimize_images( $markup );
2339
-        $this->assertEquals( $expected, $actual );
2337
+        $instance->set_options($opts);
2338
+        $actual = $instance->filter_optimize_images($markup);
2339
+        $this->assertEquals($expected, $actual);
2340 2340
     }
2341 2341
     
2342 2342
     /**
@@ -2364,9 +2364,9 @@  discard block
 block discarded – undo
2364 2364
 <img src='$siteurl/wp-content/excluded.jpg' width='400' height='200' srcset="$siteurl/wp-content/image-300X150.jpg 300w, $siteurl/wp-content/image-600X300.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" />
2365 2365
 MARKUP;
2366 2366
         $instance = autoptimizeImages::instance();
2367
-        $instance->set_options( $opts );
2368
-        $actual = $instance->filter_optimize_images( $markup );
2369
-        $this->assertEquals( $expected, $actual );
2367
+        $instance->set_options($opts);
2368
+        $actual = $instance->filter_optimize_images($markup);
2369
+        $this->assertEquals($expected, $actual);
2370 2370
     }
2371 2371
 
2372 2372
     /**
@@ -2391,9 +2391,9 @@  discard block
 block discarded – undo
2391 2391
 <picture><source srcset="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg" media="(min-width: 800px)"><img src="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></picture>
2392 2392
 MARKUP;
2393 2393
         $instance = autoptimizeImages::instance();
2394
-        $instance->set_options( $opts );
2395
-        $actual = $instance->filter_optimize_images( $markup );
2396
-        $this->assertEquals( $expected, $actual );
2394
+        $instance->set_options($opts);
2395
+        $actual = $instance->filter_optimize_images($markup);
2396
+        $this->assertEquals($expected, $actual);
2397 2397
     }
2398 2398
 
2399 2399
     /**
@@ -2418,9 +2418,9 @@  discard block
 block discarded – undo
2418 2418
 <picture><source data-srcset="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg" media="(min-width: 800px)"><noscript><img src="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></noscript><img class="lazyload" src='$imgopthost/client/q_lqip,ret_wait/$siteurl/wp-content/image.jpg' data-src="https://cdn.shortpixel.ai/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></picture>
2419 2419
 MARKUP;
2420 2420
         $instance = autoptimizeImages::instance();
2421
-        $instance->set_options( $opts );
2422
-        $actual = $instance->filter_optimize_images( $markup );
2423
-        $this->assertEquals( $expected, $actual );
2421
+        $instance->set_options($opts);
2422
+        $actual = $instance->filter_optimize_images($markup);
2423
+        $this->assertEquals($expected, $actual);
2424 2424
     }
2425 2425
 
2426 2426
     /**
@@ -2446,9 +2446,9 @@  discard block
 block discarded – undo
2446 2446
 MARKUP;
2447 2447
 
2448 2448
         $instance = autoptimizeImages::instance();
2449
-        $instance->set_options( $opts );
2450
-        $actual = $instance->filter_optimize_images( $markup );
2451
-        $this->assertEquals( $expected, $actual );
2449
+        $instance->set_options($opts);
2450
+        $actual = $instance->filter_optimize_images($markup);
2451
+        $this->assertEquals($expected, $actual);
2452 2452
     }
2453 2453
 
2454 2454
     /**
@@ -2474,9 +2474,9 @@  discard block
 block discarded – undo
2474 2474
 MARKUP;
2475 2475
 
2476 2476
         $instance = autoptimizeImages::instance();
2477
-        $instance->set_options( $opts );
2478
-        $actual = $instance->filter_optimize_images( $markup );
2479
-        $this->assertEquals( $expected, $actual );
2477
+        $instance->set_options($opts);
2478
+        $actual = $instance->filter_optimize_images($markup);
2479
+        $this->assertEquals($expected, $actual);
2480 2480
     }
2481 2481
 
2482 2482
     /**
@@ -2501,9 +2501,9 @@  discard block
 block discarded – undo
2501 2501
 MARKUP;
2502 2502
 
2503 2503
         $instance = autoptimizeImages::instance();
2504
-        $instance->set_options( $opts );
2505
-        $actual = $instance->filter_lazyload_images( $markup );
2506
-        $this->assertEquals( $expected, $actual );
2504
+        $instance->set_options($opts);
2505
+        $actual = $instance->filter_lazyload_images($markup);
2506
+        $this->assertEquals($expected, $actual);
2507 2507
     }
2508 2508
 
2509 2509
     /**
@@ -2528,9 +2528,9 @@  discard block
 block discarded – undo
2528 2528
 MARKUP;
2529 2529
 
2530 2530
         $instance = autoptimizeImages::instance();
2531
-        $instance->set_options( $opts );
2532
-        $actual = $instance->filter_lazyload_images( $markup );
2533
-        $this->assertEquals( $expected, $actual );
2531
+        $instance->set_options($opts);
2532
+        $actual = $instance->filter_lazyload_images($markup);
2533
+        $this->assertEquals($expected, $actual);
2534 2534
     }
2535 2535
 
2536 2536
     /**
@@ -2555,9 +2555,9 @@  discard block
 block discarded – undo
2555 2555
 MARKUP;
2556 2556
 
2557 2557
         $instance = autoptimizeImages::instance();
2558
-        $instance->set_options( $opts );
2559
-        $actual = $instance->filter_lazyload_images( $markup );
2560
-        $this->assertEquals( $expected, $actual );
2558
+        $instance->set_options($opts);
2559
+        $actual = $instance->filter_lazyload_images($markup);
2560
+        $this->assertEquals($expected, $actual);
2561 2561
     }
2562 2562
 
2563 2563
     /**
@@ -2576,11 +2576,11 @@  discard block
 block discarded – undo
2576 2576
 MARKUP;
2577 2577
 
2578 2578
         $instance = autoptimizeImages::instance();
2579
-        $instance->set_options( $opts );
2580
-        $actual = $instance->filter_optimize_images( $markup );
2579
+        $instance->set_options($opts);
2580
+        $actual = $instance->filter_optimize_images($markup);
2581 2581
 
2582 2582
         // Expecting $markup since replacement should not happen.
2583
-        $this->assertEquals( $markup, $actual );
2583
+        $this->assertEquals($markup, $actual);
2584 2584
     }
2585 2585
 
2586 2586
     /**
@@ -2606,10 +2606,10 @@  discard block
 block discarded – undo
2606 2606
 MARKUP;
2607 2607
 
2608 2608
         $instance = autoptimizeImages::instance();
2609
-        $instance->set_options( $opts );
2610
-        $actual = $instance->filter_optimize_images( $markup );
2609
+        $instance->set_options($opts);
2610
+        $actual = $instance->filter_optimize_images($markup);
2611 2611
 
2612
-        $this->assertEquals( $expected, $actual );
2612
+        $this->assertEquals($expected, $actual);
2613 2613
     }
2614 2614
 
2615 2615
     /**
@@ -2619,8 +2619,8 @@  discard block
 block discarded – undo
2619 2619
     {
2620 2620
         $urls                                        = $this->get_urls();
2621 2621
         $siteurl                                     = $urls['siteurl'];
2622
-        $siteurlparsed                               = parse_url( $siteurl );
2623
-        $sitedomain                                  = $siteurlparsed['scheme'] . '://' . $siteurlparsed['host'];
2622
+        $siteurlparsed                               = parse_url($siteurl);
2623
+        $sitedomain                                  = $siteurlparsed['scheme'].'://'.$siteurlparsed['host'];
2624 2624
         $imgopthost                                  = $urls['imgopthost'];
2625 2625
         $opts                                        = autoptimizeImages::fetch_options();
2626 2626
         $opts['autoptimize_imgopt_checkbox_field_1'] = '1';
@@ -2635,10 +2635,10 @@  discard block
 block discarded – undo
2635 2635
 MARKUP;
2636 2636
 
2637 2637
         $instance = autoptimizeImages::instance();
2638
-        $instance->set_options( $opts );
2639
-        $actual = $instance->filter_optimize_images( $markup );
2638
+        $instance->set_options($opts);
2639
+        $actual = $instance->filter_optimize_images($markup);
2640 2640
 
2641
-        $this->assertEquals( $expected, $actual );
2641
+        $this->assertEquals($expected, $actual);
2642 2642
     }
2643 2643
 
2644 2644
     /**
@@ -2663,53 +2663,53 @@  discard block
 block discarded – undo
2663 2663
 MARKUP;
2664 2664
 
2665 2665
         $instance = autoptimizeImages::instance();
2666
-        $instance->set_options( $opts );
2667
-        $actual = $instance->filter_optimize_images( $markup );
2666
+        $instance->set_options($opts);
2667
+        $actual = $instance->filter_optimize_images($markup);
2668 2668
 
2669
-        $this->assertEquals( $expected, $actual );
2669
+        $this->assertEquals($expected, $actual);
2670 2670
     }
2671 2671
 
2672 2672
     /**
2673 2673
      * @dataProvider provider_str_is_valid_regex
2674 2674
      */
2675
-    public function test_str_is_valid_regex( $str, $expected )
2675
+    public function test_str_is_valid_regex($str, $expected)
2676 2676
     {
2677
-        $actual = autoptimizeUtils::str_is_valid_regex( $str );
2677
+        $actual = autoptimizeUtils::str_is_valid_regex($str);
2678 2678
 
2679
-        $this->assertEquals( $expected, $actual );
2679
+        $this->assertEquals($expected, $actual);
2680 2680
     }
2681 2681
 
2682 2682
     public function provider_str_is_valid_regex()
2683 2683
     {
2684 2684
         return [
2685
-            [ '<!--[if', false ],
2686
-            [ '&lt;--[if', false ],
2687
-            [ '/booya/i', true ],
2688
-            [ '~Valid(Regular)Expression~', true ],
2685
+            ['<!--[if', false],
2686
+            ['&lt;--[if', false],
2687
+            ['/booya/i', true],
2688
+            ['~Valid(Regular)Expression~', true],
2689 2689
         ];
2690 2690
     }
2691 2691
 
2692 2692
     /**
2693 2693
      * @dataProvider provider_protocol_relative_tests
2694 2694
      */
2695
-    public function test_is_protocol_relative( $str, $expected )
2695
+    public function test_is_protocol_relative($str, $expected)
2696 2696
     {
2697
-        $actual = autoptimizeUtils::is_protocol_relative( $str );
2697
+        $actual = autoptimizeUtils::is_protocol_relative($str);
2698 2698
 
2699
-        $this->assertEquals( $expected, $actual );
2699
+        $this->assertEquals($expected, $actual);
2700 2700
     }
2701 2701
 
2702 2702
     public function provider_protocol_relative_tests()
2703 2703
     {
2704 2704
         return [
2705
-            [ '//something-that-might-be-an-url-but-isnt-really', true ],
2706
-            [ '', false ],
2707
-            [ null, false ],
2708
-            [ 'booya/i', false ],
2709
-            [ '/root-relative', false ],
2710
-            [ 'http://what.ever/', false ],
2711
-            [ 'https://booya.kasha', false ],
2712
-            [ '1/', false ],
2705
+            ['//something-that-might-be-an-url-but-isnt-really', true],
2706
+            ['', false],
2707
+            [null, false],
2708
+            ['booya/i', false],
2709
+            ['/root-relative', false],
2710
+            ['http://what.ever/', false],
2711
+            ['https://booya.kasha', false],
2712
+            ['1/', false],
2713 2713
         ];
2714 2714
     }
2715 2715
 
@@ -2724,38 +2724,38 @@  discard block
 block discarded – undo
2724 2724
 
2725 2725
         $expected = 'img.centered,.aligncenter{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}';
2726 2726
 
2727
-        $instance = new autoptimizeStyles( $css );
2728
-        $minified = $instance->run_minifier_on( $css );
2727
+        $instance = new autoptimizeStyles($css);
2728
+        $minified = $instance->run_minifier_on($css);
2729 2729
 
2730
-        $this->assertEquals( $expected, $minified );
2730
+        $this->assertEquals($expected, $minified);
2731 2731
     }
2732 2732
 
2733 2733
     public function test_css_font_names_mangling()
2734 2734
     {
2735 2735
         // Properly quoted font names dont get mangled.
2736 2736
         $css      = 'h2{font-family:"Archivo Black"}';
2737
-        $instance = new autoptimizeStyles( $css );
2738
-        $actual   = $instance->run_minifier_on( $css );
2739
-        $this->assertEquals( $css, $actual );
2737
+        $instance = new autoptimizeStyles($css);
2738
+        $actual   = $instance->run_minifier_on($css);
2739
+        $this->assertEquals($css, $actual);
2740 2740
 
2741 2741
         // When not quoted, 'Black' used to become '#000', but not anymore :) ...
2742 2742
         $css_unquoted = 'h2{font-family:Archivo Black;}';
2743 2743
         $expected     = 'h2{font-family:Archivo Black}';
2744
-        $instance     = new autoptimizeStyles( $css_unquoted );
2745
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2746
-        $this->assertEquals( $expected, $actual );
2744
+        $instance     = new autoptimizeStyles($css_unquoted);
2745
+        $actual       = $instance->run_minifier_on($css_unquoted);
2746
+        $this->assertEquals($expected, $actual);
2747 2747
 
2748 2748
         $css_unquoted = 'h1{font:italic 1.2em Fira White,serif}';
2749
-        $instance     = new autoptimizeStyles( $css_unquoted );
2750
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2751
-        $this->assertEquals( $css_unquoted, $actual );
2749
+        $instance     = new autoptimizeStyles($css_unquoted);
2750
+        $actual       = $instance->run_minifier_on($css_unquoted);
2751
+        $this->assertEquals($css_unquoted, $actual);
2752 2752
     }
2753 2753
 
2754 2754
     public function test_is_plugin_active_utils_wrapper()
2755 2755
     {
2756 2756
         // Our plugin is loaded via "muplugins_loaded" filter in tests/bootstrap.php.
2757
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'autoptimize/autoptimize.php' ) );
2758
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) );
2757
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('autoptimize/autoptimize.php'));
2758
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php'));
2759 2759
     }
2760 2760
 
2761 2761
     public function test_jsminphp_string_literal_minification()
@@ -2769,8 +2769,8 @@  discard block
 block discarded – undo
2769 2769
         $expected = '`line
2770 2770
 break`+`he  llo`;foo`hel( \'\');lo`;`he\nl\`lo`;(`he${one + two}`)';
2771 2771
 
2772
-        $actual = JSMin::minify( $js );
2773
-        $this->assertEquals( $expected, $actual );
2772
+        $actual = JSMin::minify($js);
2773
+        $this->assertEquals($expected, $actual);
2774 2774
     }
2775 2775
 
2776 2776
     /**
@@ -2790,9 +2790,9 @@  discard block
 block discarded – undo
2790 2790
 MARKUP;
2791 2791
 
2792 2792
         $instance = autoptimizeExtra::instance();
2793
-        $instance->set_options( $opts );
2794
-        $actual = $instance->filter_preload( $markup );
2795
-        $this->assertEquals( $expected, $actual );
2793
+        $instance->set_options($opts);
2794
+        $actual = $instance->filter_preload($markup);
2795
+        $this->assertEquals($expected, $actual);
2796 2796
     }
2797 2797
 
2798 2798
     /**
@@ -2812,9 +2812,9 @@  discard block
 block discarded – undo
2812 2812
 MARKUP;
2813 2813
 
2814 2814
         $instance = autoptimizeExtra::instance();
2815
-        $instance->set_options( $opts );
2816
-        $actual = $instance->filter_preload( $markup );
2817
-        $this->assertEquals( $expected, $actual );
2815
+        $instance->set_options($opts);
2816
+        $actual = $instance->filter_preload($markup);
2817
+        $this->assertEquals($expected, $actual);
2818 2818
     }
2819 2819
 
2820 2820
     /**
@@ -2834,9 +2834,9 @@  discard block
 block discarded – undo
2834 2834
 MARKUP;
2835 2835
 
2836 2836
         $instance = autoptimizeExtra::instance();
2837
-        $instance->set_options( $opts );
2838
-        $actual = $instance->filter_optimize_google_fonts( $markup );
2839
-        $this->assertEquals( $expected, $actual );
2837
+        $instance->set_options($opts);
2838
+        $actual = $instance->filter_optimize_google_fonts($markup);
2839
+        $this->assertEquals($expected, $actual);
2840 2840
     }
2841 2841
 
2842 2842
     /**
@@ -2844,19 +2844,19 @@  discard block
 block discarded – undo
2844 2844
      */
2845 2845
     public function test_network_no_site_settings()
2846 2846
     {
2847
-        if ( is_multisite() ) {
2848
-            define( 'TEST_MULTISITE_FORCE_AO_ON_NETWORK', true );
2847
+        if (is_multisite()) {
2848
+            define('TEST_MULTISITE_FORCE_AO_ON_NETWORK', true);
2849 2849
             // set options through WordPress core methods.
2850
-            update_option( 'autoptimize_js_exclude', 'site' );
2851
-            update_network_option( get_main_network_id(), 'autoptimize_js_exclude', 'network' );
2852
-            update_network_option( get_main_network_id(), 'autoptimize_enable_site_config', '' );
2850
+            update_option('autoptimize_js_exclude', 'site');
2851
+            update_network_option(get_main_network_id(), 'autoptimize_js_exclude', 'network');
2852
+            update_network_option(get_main_network_id(), 'autoptimize_enable_site_config', '');
2853 2853
 
2854 2854
             // and then try fetching them through optionwrapper.
2855 2855
             $expected = 'network';
2856
-            $actual   = autoptimizeOptionWrapper::get_option( 'autoptimize_js_exclude' );
2857
-            $this->assertEquals( $expected, $actual );
2856
+            $actual   = autoptimizeOptionWrapper::get_option('autoptimize_js_exclude');
2857
+            $this->assertEquals($expected, $actual);
2858 2858
         } else {
2859
-            $this->assertEquals( 1, 1 ); // just to ensure this isn't marked as a risky test.
2859
+            $this->assertEquals(1, 1); // just to ensure this isn't marked as a risky test.
2860 2860
         }
2861 2861
     }
2862 2862
 
@@ -2865,19 +2865,19 @@  discard block
 block discarded – undo
2865 2865
      */
2866 2866
     public function test_network_per_site_settings()
2867 2867
     {
2868
-        if ( is_multisite() ) {
2868
+        if (is_multisite()) {
2869 2869
             // define of TEST_MULTISITE_FORCE_AO_ON_NETWORK not needed, done in previous test.
2870 2870
             // set options through WordPress core methods.
2871
-            update_option( 'autoptimize_js_exclude', 'site' );
2872
-            update_network_option( get_main_network_id(), 'autoptimize_js_exclude', 'network' );
2873
-            update_network_option( get_main_network_id(), 'autoptimize_enable_site_config', 'on' );
2871
+            update_option('autoptimize_js_exclude', 'site');
2872
+            update_network_option(get_main_network_id(), 'autoptimize_js_exclude', 'network');
2873
+            update_network_option(get_main_network_id(), 'autoptimize_enable_site_config', 'on');
2874 2874
 
2875 2875
             // and then try fetching them through optionwrapper.
2876 2876
             $expected = 'site';
2877
-            $actual   = autoptimizeOptionWrapper::get_option( 'autoptimize_js_exclude' );
2878
-            $this->assertEquals( $expected, $actual );
2877
+            $actual   = autoptimizeOptionWrapper::get_option('autoptimize_js_exclude');
2878
+            $this->assertEquals($expected, $actual);
2879 2879
         } else {
2880
-            $this->assertEquals( 1, 1 ); // just to ensure this isn't marked as a risky test.
2880
+            $this->assertEquals(1, 1); // just to ensure this isn't marked as a risky test.
2881 2881
         }
2882 2882
     }
2883 2883
 }
Please login to merge, or discard this patch.