Completed
Push — master ( 471c26...e80620 )
by frank
01:49
created
config/autoptimize_404_handler.php 1 patch
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -20,24 +20,24 @@
 block discarded – undo
20 20
  * to files that don't exist in AO's cache.
21 21
  */
22 22
 
23
-$original_request = strtok( $_SERVER['REQUEST_URI'], '?' );
23
+$original_request = strtok($_SERVER['REQUEST_URI'], '?');
24 24
 
25
-if ( strpos( $original_request, 'uucss/uucss-' ) !== false ) {
26
-    $original_request = preg_replace( '/uucss\/uucss-[a-z0-9]{32}-/', 'css/', $original_request  );
25
+if (strpos($original_request, 'uucss/uucss-') !== false) {
26
+    $original_request = preg_replace('/uucss\/uucss-[a-z0-9]{32}-/', 'css/', $original_request);
27 27
 }
28 28
 
29
-$fallback_target  = preg_replace( '/(.*)_(?:[a-z0-9]{32})\.(js|css)$/', '${1}_fallback.${2}', $original_request );
29
+$fallback_target  = preg_replace('/(.*)_(?:[a-z0-9]{32})\.(js|css)$/', '${1}_fallback.${2}', $original_request);
30 30
 $ao_cache_dir     = '<!--ao-cache-dir-->';
31
-$js_or_css        = pathinfo( $original_request, PATHINFO_EXTENSION );
32
-$fallback_path    = $ao_cache_dir . $js_or_css . '/autoptimize_fallback.' . $js_or_css;
31
+$js_or_css        = pathinfo($original_request, PATHINFO_EXTENSION);
32
+$fallback_path    = $ao_cache_dir.$js_or_css.'/autoptimize_fallback.'.$js_or_css;
33 33
 
34
-if ( $original_request !== $fallback_target && file_exists( $fallback_path ) ) {
34
+if ($original_request !== $fallback_target && file_exists($fallback_path)) {
35 35
     // error_log( 'Autoptimize file ' . $original_request . ' not found, using fallback instead.' );
36
-    header( 'HTTP/1.1 301 Moved Permanently' );
37
-    header( 'Location: ' . $fallback_target );
36
+    header('HTTP/1.1 301 Moved Permanently');
37
+    header('Location: '.$fallback_target);
38 38
 } else {
39 39
     // error_log( 'Autoptimize file ' . $original_request . ' not found, sending 410 gone response.' );
40
-    header( 'HTTP/1.1 410 Gone' );
40
+    header('HTTP/1.1 410 Gone');
41 41
 }
42 42
 
43 43
 exit();
Please login to merge, or discard this patch.
classes/autoptimizeScripts.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
  * Class for JS optimization.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -206,133 +206,133 @@  discard block
 block discarded – undo
206 206
      *
207 207
      * @param array $options all options.
208 208
      */
209
-    public function read( $options )
209
+    public function read($options)
210 210
     {
211
-        $noptimize_js = apply_filters( 'autoptimize_filter_js_noptimize', false, $this->content );
212
-        if ( $noptimize_js ) {
211
+        $noptimize_js = apply_filters('autoptimize_filter_js_noptimize', false, $this->content);
212
+        if ($noptimize_js) {
213 213
             return false;
214 214
         }
215 215
 
216 216
         // only optimize known good JS?
217
-        $allowlist_js = apply_filters( 'autoptimize_filter_js_allowlist', '', $this->content );
218
-        $allowlist_js = apply_filters( 'autoptimize_filter_js_whitelist', $allowlist_js, $this->content ); // fixme: to be removed in next version.
219
-        if ( ! empty( $allowlist_js ) ) {
220
-            $this->allowlist = array_filter( array_map( 'trim', explode( ',', $allowlist_js ) ) );
217
+        $allowlist_js = apply_filters('autoptimize_filter_js_allowlist', '', $this->content);
218
+        $allowlist_js = apply_filters('autoptimize_filter_js_whitelist', $allowlist_js, $this->content); // fixme: to be removed in next version.
219
+        if (!empty($allowlist_js)) {
220
+            $this->allowlist = array_filter(array_map('trim', explode(',', $allowlist_js)));
221 221
         }
222 222
 
223 223
         // is there JS we should simply remove?
224
-        $removable_js = apply_filters( 'autoptimize_filter_js_removables', '', $this->content );
225
-        if ( ! empty( $removable_js ) ) {
226
-            $this->jsremovables = array_filter( array_map( 'trim', explode( ',', $removable_js ) ) );
224
+        $removable_js = apply_filters('autoptimize_filter_js_removables', '', $this->content);
225
+        if (!empty($removable_js)) {
226
+            $this->jsremovables = array_filter(array_map('trim', explode(',', $removable_js)));
227 227
         }
228 228
 
229 229
         // only header?
230
-        if ( apply_filters( 'autoptimize_filter_js_justhead', $options['justhead'] ) ) {
231
-            $content             = explode( '</head>', $this->content, 2 );
232
-            $this->content       = $content[0] . '</head>';
230
+        if (apply_filters('autoptimize_filter_js_justhead', $options['justhead'])) {
231
+            $content             = explode('</head>', $this->content, 2);
232
+            $this->content       = $content[0].'</head>';
233 233
             $this->restofcontent = $content[1];
234 234
         }
235 235
 
236 236
         // Determine whether we're doing JS-files aggregation or not.
237
-        if ( ! $options['aggregate'] ) {
237
+        if (!$options['aggregate']) {
238 238
             $this->aggregate = false;
239 239
         }
240 240
         // Returning true for "dontaggregate" turns off aggregation.
241
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_js_dontaggregate', false ) ) {
241
+        if ($this->aggregate && apply_filters('autoptimize_filter_js_dontaggregate', false)) {
242 242
             $this->aggregate = false;
243 243
         }
244 244
         
245 245
         // Defer when not aggregating.
246
-        if ( false === $this->aggregate && apply_filters( 'autoptimize_js_filter_defer_not_aggregate', $options['defer_not_aggregate'] ) ) {
246
+        if (false === $this->aggregate && apply_filters('autoptimize_js_filter_defer_not_aggregate', $options['defer_not_aggregate'])) {
247 247
             $this->defer_not_aggregate = true;
248 248
         }
249 249
 
250 250
         // include inline?
251
-        if ( apply_filters( 'autoptimize_js_include_inline', $options['include_inline'] ) ) {
251
+        if (apply_filters('autoptimize_js_include_inline', $options['include_inline'])) {
252 252
             $this->include_inline = true;
253 253
         }
254 254
 
255 255
         // filter to "late inject minified JS", default to true for now (it is faster).
256
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_js_inject_min_late', true );
256
+        $this->inject_min_late = apply_filters('autoptimize_filter_js_inject_min_late', true);
257 257
 
258 258
         // filters to override hardcoded do(nt)move(last) array contents (array in, array out!).
259
-        $this->dontmove   = apply_filters( 'autoptimize_filter_js_dontmove', $this->dontmove );
260
-        $this->domovelast = apply_filters( 'autoptimize_filter_js_movelast', $this->domovelast );
261
-        $this->domove     = apply_filters( 'autoptimize_filter_js_domove', $this->domove );
259
+        $this->dontmove   = apply_filters('autoptimize_filter_js_dontmove', $this->dontmove);
260
+        $this->domovelast = apply_filters('autoptimize_filter_js_movelast', $this->domovelast);
261
+        $this->domove     = apply_filters('autoptimize_filter_js_domove', $this->domove);
262 262
 
263 263
         // Determine whether excluded files should be minified if not yet so.
264
-        if ( ! $options['minify_excluded'] && $options['aggregate'] ) {
264
+        if (!$options['minify_excluded'] && $options['aggregate']) {
265 265
             $this->minify_excluded = false;
266 266
         }
267
-        $this->minify_excluded = apply_filters( 'autoptimize_filter_js_minify_excluded', $this->minify_excluded, '' );
267
+        $this->minify_excluded = apply_filters('autoptimize_filter_js_minify_excluded', $this->minify_excluded, '');
268 268
 
269 269
         // get extra exclusions settings or filter.
270 270
         $exclude_js = $options['js_exclude'];
271
-        $exclude_js = apply_filters( 'autoptimize_filter_js_exclude', $exclude_js, $this->content );
272
-
273
-        if ( '' !== $exclude_js ) {
274
-            if ( is_array( $exclude_js ) ) {
275
-                $remove_keys = array_keys( $exclude_js, 'remove' );
276
-                if ( false !== $remove_keys ) {
277
-                    foreach ( $remove_keys as $remove_key ) {
278
-                        unset( $exclude_js[ $remove_key ] );
271
+        $exclude_js = apply_filters('autoptimize_filter_js_exclude', $exclude_js, $this->content);
272
+
273
+        if ('' !== $exclude_js) {
274
+            if (is_array($exclude_js)) {
275
+                $remove_keys = array_keys($exclude_js, 'remove');
276
+                if (false !== $remove_keys) {
277
+                    foreach ($remove_keys as $remove_key) {
278
+                        unset($exclude_js[$remove_key]);
279 279
                         $this->jsremovables[] = $remove_key;
280 280
                     }
281 281
                 }
282
-                $excl_js_arr = array_keys( $exclude_js );
282
+                $excl_js_arr = array_keys($exclude_js);
283 283
             } else {
284
-                $excl_js_arr = array_filter( array_map( 'trim', explode( ',', $exclude_js ) ) );
284
+                $excl_js_arr = array_filter(array_map('trim', explode(',', $exclude_js)));
285 285
             }
286
-            $this->dontmove = array_merge( $excl_js_arr, $this->dontmove );
286
+            $this->dontmove = array_merge($excl_js_arr, $this->dontmove);
287 287
         }
288 288
 
289 289
         // Should we add try-catch?
290
-        if ( $options['trycatch'] ) {
290
+        if ($options['trycatch']) {
291 291
             $this->trycatch = true;
292 292
         }
293 293
 
294 294
         // force js in head?
295
-        if ( $options['forcehead'] ) {
295
+        if ($options['forcehead']) {
296 296
             $this->forcehead = true;
297 297
         } else {
298 298
             $this->forcehead = false;
299 299
         }
300 300
 
301
-        $this->forcehead = apply_filters( 'autoptimize_filter_js_forcehead', $this->forcehead );
301
+        $this->forcehead = apply_filters('autoptimize_filter_js_forcehead', $this->forcehead);
302 302
 
303 303
         // get cdn url.
304 304
         $this->cdn_url = $options['cdn_url'];
305 305
 
306 306
         // noptimize me.
307
-        $this->content = $this->hide_noptimize( $this->content );
307
+        $this->content = $this->hide_noptimize($this->content);
308 308
 
309 309
         // Save IE hacks.
310
-        $this->content = $this->hide_iehacks( $this->content );
310
+        $this->content = $this->hide_iehacks($this->content);
311 311
 
312 312
         // comments.
313
-        $this->content = $this->hide_comments( $this->content );
313
+        $this->content = $this->hide_comments($this->content);
314 314
 
315 315
         // Get script files.
316
-        if ( preg_match_all( '#<script.*</script>#Usmi', $this->content, $matches ) ) {
317
-            foreach ( $matches[0] as $tag ) {
316
+        if (preg_match_all('#<script.*</script>#Usmi', $this->content, $matches)) {
317
+            foreach ($matches[0] as $tag) {
318 318
                 // only consider script aggregation for types allowlisted in should_aggregate-function.
319
-                $should_aggregate = $this->should_aggregate( $tag );
320
-                if ( ! $should_aggregate ) {
319
+                $should_aggregate = $this->should_aggregate($tag);
320
+                if (!$should_aggregate) {
321 321
                     $tag = '';
322 322
                     continue;
323 323
                 }
324 324
 
325
-                if ( preg_match( '#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source ) ) {
325
+                if (preg_match('#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source)) {
326 326
                     // non-inline script.
327
-                    if ( $this->isremovable( $tag, $this->jsremovables ) ) {
328
-                        $this->content = str_replace( $tag, '', $this->content );
327
+                    if ($this->isremovable($tag, $this->jsremovables)) {
328
+                        $this->content = str_replace($tag, '', $this->content);
329 329
                         continue;
330 330
                     }
331 331
 
332 332
                     $orig_tag = null;
333
-                    $url      = current( explode( '?', $source[2], 2 ) );
334
-                    $path     = $this->getpath( $url );
335
-                    if ( false !== $path && preg_match( '#\.js$#', $path ) && $this->ismergeable( $tag ) ) {
333
+                    $url      = current(explode('?', $source[2], 2));
334
+                    $path     = $this->getpath($url);
335
+                    if (false !== $path && preg_match('#\.js$#', $path) && $this->ismergeable($tag)) {
336 336
                         // ok to optimize, add to array.
337 337
                         $this->scripts[] = $path;
338 338
                     } else {
@@ -340,35 +340,35 @@  discard block
 block discarded – undo
340 340
                         $new_tag  = $tag;
341 341
 
342 342
                         // non-mergeable script (excluded or dynamic or external).
343
-                        if ( is_array( $exclude_js ) ) {
343
+                        if (is_array($exclude_js)) {
344 344
                             // should we add flags?
345
-                            foreach ( $exclude_js as $excl_tag => $excl_flags ) {
346
-                                if ( false !== strpos( $orig_tag, $excl_tag ) && in_array( $excl_flags, array( 'async', 'defer' ) ) ) {
347
-                                    $new_tag = str_replace( '<script ', '<script ' . $excl_flags . ' ', $new_tag );
345
+                            foreach ($exclude_js as $excl_tag => $excl_flags) {
346
+                                if (false !== strpos($orig_tag, $excl_tag) && in_array($excl_flags, array('async', 'defer'))) {
347
+                                    $new_tag = str_replace('<script ', '<script '.$excl_flags.' ', $new_tag);
348 348
                                 }
349 349
                             }
350 350
                         }
351 351
                         
352 352
                         // not aggregating but deferring?
353
-                        if ( $this->defer_not_aggregate && false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path && strpos( $new_tag, ' defer' ) === false ) {
354
-                            $new_tag = str_replace( '<script ', '<script defer ', $new_tag );
353
+                        if ($this->defer_not_aggregate && false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path && strpos($new_tag, ' defer') === false) {
354
+                            $new_tag = str_replace('<script ', '<script defer ', $new_tag);
355 355
                             // and remove async as async+defer=async while we explicitly want defer.
356
-                            if ( strpos( $new_tag, ' async' ) !== false && apply_filters( 'autoptimize_filter_js_defer_remove_async', true ) ) {
357
-                                $new_tag = str_replace( array( ' async', ' async="async"', " async='async'" ), '', $new_tag );
356
+                            if (strpos($new_tag, ' async') !== false && apply_filters('autoptimize_filter_js_defer_remove_async', true)) {
357
+                                $new_tag = str_replace(array(' async', ' async="async"', " async='async'"), '', $new_tag);
358 358
                             }
359 359
                         }
360 360
 
361 361
                         // Should we minify the non-aggregated script?
362 362
                         // -> if aggregate is on and exclude minify is on
363 363
                         // -> if aggregate is off and the file is not in dontmove.
364
-                        if ( $path && $this->minify_excluded ) {
365
-                            $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
366
-                            if ( ( false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path ) || ( true === $this->aggregate && ( false === $consider_minified_array || str_replace( $consider_minified_array, '', $path ) === $path ) ) ) {
367
-                                $minified_url = $this->minify_single( $path );
368
-                                if ( ! empty( $minified_url ) ) {
364
+                        if ($path && $this->minify_excluded) {
365
+                            $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
366
+                            if ((false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path) || (true === $this->aggregate && (false === $consider_minified_array || str_replace($consider_minified_array, '', $path) === $path))) {
367
+                                $minified_url = $this->minify_single($path);
368
+                                if (!empty($minified_url)) {
369 369
                                     // Replace original URL with minified URL from cache.
370
-                                    $new_tag = str_replace( $url, $minified_url, $new_tag );
371
-                                } elseif ( apply_filters( 'autoptimize_filter_ccsjs_remove_empty_minified_url', false ) ) {
370
+                                    $new_tag = str_replace($url, $minified_url, $new_tag);
371
+                                } elseif (apply_filters('autoptimize_filter_ccsjs_remove_empty_minified_url', false)) {
372 372
                                     // Remove the original script tag, because cache content is empty but only if filter
373 373
                                     // is trued because $minified_url is also false if original JS is minified already.
374 374
                                     $new_tag = '';
@@ -376,17 +376,17 @@  discard block
 block discarded – undo
376 376
                             }
377 377
                         }
378 378
 
379
-                        if ( $this->ismovable( $new_tag ) ) {
379
+                        if ($this->ismovable($new_tag)) {
380 380
                             // can be moved, flags and all.
381
-                            if ( $this->movetolast( $new_tag ) ) {
381
+                            if ($this->movetolast($new_tag)) {
382 382
                                 $this->move['last'][] = $new_tag;
383 383
                             } else {
384 384
                                 $this->move['first'][] = $new_tag;
385 385
                             }
386 386
                         } else {
387 387
                             // cannot be moved, so if flag was added re-inject altered tag immediately.
388
-                            if ( ( '' !== $new_tag && $orig_tag !== $new_tag ) || ( '' === $new_tag && apply_filters( 'autoptimize_filter_js_remove_empty_files', false ) ) ) {
389
-                                $this->content = str_replace( $orig_tag, $new_tag, $this->content );
388
+                            if (('' !== $new_tag && $orig_tag !== $new_tag) || ('' === $new_tag && apply_filters('autoptimize_filter_js_remove_empty_files', false))) {
389
+                                $this->content = str_replace($orig_tag, $new_tag, $this->content);
390 390
                                 $orig_tag      = '';
391 391
                             }
392 392
                             // and forget about the $tag (not to be touched any more).
@@ -395,23 +395,23 @@  discard block
 block discarded – undo
395 395
                     }
396 396
                 } else {
397 397
                     // Inline script.
398
-                    if ( $this->isremovable( $tag, $this->jsremovables ) ) {
399
-                        $this->content = str_replace( $tag, '', $this->content );
398
+                    if ($this->isremovable($tag, $this->jsremovables)) {
399
+                        $this->content = str_replace($tag, '', $this->content);
400 400
                         continue;
401 401
                     }
402 402
 
403 403
                     // unhide comments, as javascript may be wrapped in comment-tags for old times' sake.
404
-                    $tag = $this->restore_comments( $tag );
405
-                    if ( $this->ismergeable( $tag ) && $this->include_inline ) {
406
-                        preg_match( '#<script.*>(.*)</script>#Usmi', $tag, $code );
407
-                        $code            = preg_replace( '#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1] );
408
-                        $code            = preg_replace( '/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code );
409
-                        $this->scripts[] = 'INLINE;' . $code;
404
+                    $tag = $this->restore_comments($tag);
405
+                    if ($this->ismergeable($tag) && $this->include_inline) {
406
+                        preg_match('#<script.*>(.*)</script>#Usmi', $tag, $code);
407
+                        $code            = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1]);
408
+                        $code            = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code);
409
+                        $this->scripts[] = 'INLINE;'.$code;
410 410
                     } else {
411 411
                         // Can we move this?
412
-                        $autoptimize_js_moveable = apply_filters( 'autoptimize_js_moveable', '', $tag );
413
-                        if ( $this->ismovable( $tag ) || '' !== $autoptimize_js_moveable ) {
414
-                            if ( $this->movetolast( $tag ) || 'last' === $autoptimize_js_moveable ) {
412
+                        $autoptimize_js_moveable = apply_filters('autoptimize_js_moveable', '', $tag);
413
+                        if ($this->ismovable($tag) || '' !== $autoptimize_js_moveable) {
414
+                            if ($this->movetolast($tag) || 'last' === $autoptimize_js_moveable) {
415 415
                                 $this->move['last'][] = $tag;
416 416
                             } else {
417 417
                                 $this->move['first'][] = $tag;
@@ -422,11 +422,11 @@  discard block
 block discarded – undo
422 422
                         }
423 423
                     }
424 424
                     // Re-hide comments to be able to do the removal based on tag from $this->content.
425
-                    $tag = $this->hide_comments( $tag );
425
+                    $tag = $this->hide_comments($tag);
426 426
                 }
427 427
 
428 428
                 // Remove the original script tag.
429
-                $this->content = str_replace( $tag, '', $this->content );
429
+                $this->content = str_replace($tag, '', $this->content);
430 430
             }
431 431
 
432 432
             return true;
@@ -451,30 +451,30 @@  discard block
 block discarded – undo
451 451
      * @param string $tag Script node & child(ren).
452 452
      * @return bool
453 453
      */
454
-    public function should_aggregate( $tag )
454
+    public function should_aggregate($tag)
455 455
     {
456
-        if ( empty( $tag ) ) {
456
+        if (empty($tag)) {
457 457
             return false;
458 458
         }
459 459
 
460 460
         // We're only interested in the type attribute of the <script> tag itself, not any possible
461 461
         // inline code that might just contain the 'type=' string...
462 462
         $tag_parts = array();
463
-        preg_match( '#<(script[^>]*)>#i', $tag, $tag_parts );
463
+        preg_match('#<(script[^>]*)>#i', $tag, $tag_parts);
464 464
         $tag_without_contents = null;
465
-        if ( ! empty( $tag_parts[1] ) ) {
465
+        if (!empty($tag_parts[1])) {
466 466
             $tag_without_contents = $tag_parts[1];
467 467
         }
468 468
 
469
-        $has_type = ( strpos( $tag_without_contents, 'type' ) !== false );
469
+        $has_type = (strpos($tag_without_contents, 'type') !== false);
470 470
 
471 471
         $type_valid = false;
472
-        if ( $has_type ) {
473
-            $type_valid = (bool) preg_match( '/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents );
472
+        if ($has_type) {
473
+            $type_valid = (bool) preg_match('/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents);
474 474
         }
475 475
 
476 476
         $should_aggregate = false;
477
-        if ( ! $has_type || $type_valid ) {
477
+        if (!$has_type || $type_valid) {
478 478
             $should_aggregate = true;
479 479
         }
480 480
 
@@ -486,75 +486,75 @@  discard block
 block discarded – undo
486 486
      */
487 487
     public function minify()
488 488
     {
489
-        foreach ( $this->scripts as $script ) {
490
-            if ( empty( $script ) ) {
489
+        foreach ($this->scripts as $script) {
490
+            if (empty($script)) {
491 491
                 continue;
492 492
             }
493 493
 
494 494
             // TODO/FIXME: some duplicate code here, can be reduced/simplified.
495
-            if ( preg_match( '#^INLINE;#', $script ) ) {
495
+            if (preg_match('#^INLINE;#', $script)) {
496 496
                 // Inline script.
497
-                $script = preg_replace( '#^INLINE;#', '', $script );
498
-                $script = rtrim( $script, ";\n\t\r" ) . ';';
497
+                $script = preg_replace('#^INLINE;#', '', $script);
498
+                $script = rtrim($script, ";\n\t\r").';';
499 499
                 // Add try-catch?
500
-                if ( $this->trycatch ) {
501
-                    $script = 'try{' . $script . '}catch(e){}';
500
+                if ($this->trycatch) {
501
+                    $script = 'try{'.$script.'}catch(e){}';
502 502
                 }
503
-                $tmpscript = apply_filters( 'autoptimize_js_individual_script', $script, '' );
504
-                if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscript ) ) {
503
+                $tmpscript = apply_filters('autoptimize_js_individual_script', $script, '');
504
+                if (has_filter('autoptimize_js_individual_script') && !empty($tmpscript)) {
505 505
                     $script                = $tmpscript;
506 506
                     $this->alreadyminified = true;
507 507
                 }
508
-                $this->jscode .= "\n" . $script;
508
+                $this->jscode .= "\n".$script;
509 509
             } else {
510 510
                 // External script.
511
-                if ( false !== $script && file_exists( $script ) && is_readable( $script ) ) {
512
-                    $scriptsrc = file_get_contents( $script );
513
-                    $scriptsrc = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc );
514
-                    $scriptsrc = rtrim( $scriptsrc, ";\n\t\r" ) . ';';
511
+                if (false !== $script && file_exists($script) && is_readable($script)) {
512
+                    $scriptsrc = file_get_contents($script);
513
+                    $scriptsrc = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc);
514
+                    $scriptsrc = rtrim($scriptsrc, ";\n\t\r").';';
515 515
                     // Add try-catch?
516
-                    if ( $this->trycatch ) {
517
-                        $scriptsrc = 'try{' . $scriptsrc . '}catch(e){}';
516
+                    if ($this->trycatch) {
517
+                        $scriptsrc = 'try{'.$scriptsrc.'}catch(e){}';
518 518
                     }
519
-                    $tmpscriptsrc = apply_filters( 'autoptimize_js_individual_script', $scriptsrc, $script );
520
-                    if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscriptsrc ) ) {
519
+                    $tmpscriptsrc = apply_filters('autoptimize_js_individual_script', $scriptsrc, $script);
520
+                    if (has_filter('autoptimize_js_individual_script') && !empty($tmpscriptsrc)) {
521 521
                         $scriptsrc             = $tmpscriptsrc;
522 522
                         $this->alreadyminified = true;
523
-                    } elseif ( $this->can_inject_late( $script ) ) {
524
-                        $scriptsrc = self::build_injectlater_marker( $script, md5( $scriptsrc ) );
523
+                    } elseif ($this->can_inject_late($script)) {
524
+                        $scriptsrc = self::build_injectlater_marker($script, md5($scriptsrc));
525 525
                     }
526
-                    $this->jscode .= "\n" . $scriptsrc;
526
+                    $this->jscode .= "\n".$scriptsrc;
527 527
                 }
528 528
             }
529 529
         }
530 530
 
531 531
         // Check for already-minified code.
532
-        $this->md5hash = md5( $this->jscode );
533
-        $ccheck        = new autoptimizeCache( $this->md5hash, 'js' );
534
-        if ( $ccheck->check() ) {
532
+        $this->md5hash = md5($this->jscode);
533
+        $ccheck        = new autoptimizeCache($this->md5hash, 'js');
534
+        if ($ccheck->check()) {
535 535
             $this->jscode = $ccheck->retrieve();
536 536
             return true;
537 537
         }
538
-        unset( $ccheck );
538
+        unset($ccheck);
539 539
 
540 540
         // $this->jscode has all the uncompressed code now.
541
-        if ( true !== $this->alreadyminified ) {
542
-            if ( apply_filters( 'autoptimize_js_do_minify', true ) ) {
543
-                $tmp_jscode = trim( JSMin::minify( $this->jscode ) );
544
-                if ( ! empty( $tmp_jscode ) ) {
541
+        if (true !== $this->alreadyminified) {
542
+            if (apply_filters('autoptimize_js_do_minify', true)) {
543
+                $tmp_jscode = trim(JSMin::minify($this->jscode));
544
+                if (!empty($tmp_jscode)) {
545 545
                     $this->jscode = $tmp_jscode;
546
-                    unset( $tmp_jscode );
546
+                    unset($tmp_jscode);
547 547
                 }
548
-                $this->jscode = $this->inject_minified( $this->jscode );
549
-                $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
548
+                $this->jscode = $this->inject_minified($this->jscode);
549
+                $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
550 550
                 return true;
551 551
             } else {
552
-                $this->jscode = $this->inject_minified( $this->jscode );
552
+                $this->jscode = $this->inject_minified($this->jscode);
553 553
                 return false;
554 554
             }
555 555
         }
556 556
 
557
-        $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
557
+        $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
558 558
         return true;
559 559
     }
560 560
 
@@ -563,13 +563,13 @@  discard block
 block discarded – undo
563 563
      */
564 564
     public function cache()
565 565
     {
566
-        $cache = new autoptimizeCache( $this->md5hash, 'js' );
567
-        if ( ! $cache->check() ) {
566
+        $cache = new autoptimizeCache($this->md5hash, 'js');
567
+        if (!$cache->check()) {
568 568
             // Cache our code.
569
-            $cache->cache( $this->jscode, 'text/javascript' );
569
+            $cache->cache($this->jscode, 'text/javascript');
570 570
         }
571
-        $this->url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
572
-        $this->url = $this->url_replace_cdn( $this->url );
571
+        $this->url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
572
+        $this->url = $this->url_replace_cdn($this->url);
573 573
     }
574 574
 
575 575
     /**
@@ -578,47 +578,47 @@  discard block
 block discarded – undo
578 578
     public function getcontent()
579 579
     {
580 580
         // Restore the full content.
581
-        if ( ! empty( $this->restofcontent ) ) {
581
+        if (!empty($this->restofcontent)) {
582 582
             $this->content      .= $this->restofcontent;
583 583
             $this->restofcontent = '';
584 584
         }
585 585
 
586 586
         // Add the scripts taking forcehead/ deferred (default) into account.
587
-        if ( $this->forcehead ) {
588
-            $replace_tag = array( '</head>', 'before' );
587
+        if ($this->forcehead) {
588
+            $replace_tag = array('</head>', 'before');
589 589
             $defer       = '';
590 590
         } else {
591
-            $replace_tag = array( '</body>', 'before' );
591
+            $replace_tag = array('</body>', 'before');
592 592
             $defer       = 'defer ';
593 593
         }
594 594
 
595
-        $defer   = apply_filters( 'autoptimize_filter_js_defer', $defer );
595
+        $defer   = apply_filters('autoptimize_filter_js_defer', $defer);
596 596
         $type_js = '';
597
-        if ( apply_filters( 'autoptimize_filter_cssjs_addtype', false ) ) {
597
+        if (apply_filters('autoptimize_filter_cssjs_addtype', false)) {
598 598
             $type_js = 'type="text/javascript" ';
599 599
         }
600 600
 
601
-        $bodyreplacementpayload = '<script ' . $type_js . $defer . 'src="' . $this->url . '"></script>';
602
-        $bodyreplacementpayload = apply_filters( 'autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload );
601
+        $bodyreplacementpayload = '<script '.$type_js.$defer.'src="'.$this->url.'"></script>';
602
+        $bodyreplacementpayload = apply_filters('autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload);
603 603
 
604
-        $bodyreplacement  = implode( '', $this->move['first'] );
604
+        $bodyreplacement  = implode('', $this->move['first']);
605 605
         $bodyreplacement .= $bodyreplacementpayload;
606
-        $bodyreplacement .= implode( '', $this->move['last'] );
606
+        $bodyreplacement .= implode('', $this->move['last']);
607 607
 
608
-        $replace_tag = apply_filters( 'autoptimize_filter_js_replacetag', $replace_tag );
608
+        $replace_tag = apply_filters('autoptimize_filter_js_replacetag', $replace_tag);
609 609
 
610
-        if ( strlen( $this->jscode ) > 0 ) {
611
-            $this->inject_in_html( $bodyreplacement, $replace_tag );
610
+        if (strlen($this->jscode) > 0) {
611
+            $this->inject_in_html($bodyreplacement, $replace_tag);
612 612
         }
613 613
 
614 614
         // Restore comments.
615
-        $this->content = $this->restore_comments( $this->content );
615
+        $this->content = $this->restore_comments($this->content);
616 616
 
617 617
         // Restore IE hacks.
618
-        $this->content = $this->restore_iehacks( $this->content );
618
+        $this->content = $this->restore_iehacks($this->content);
619 619
 
620 620
         // Restore noptimize.
621
-        $this->content = $this->restore_noptimize( $this->content );
621
+        $this->content = $this->restore_noptimize($this->content);
622 622
 
623 623
         // Return the modified HTML.
624 624
         return $this->content;
@@ -629,34 +629,34 @@  discard block
 block discarded – undo
629 629
      *
630 630
      * @param string $tag JS tag.
631 631
      */
632
-    private function ismergeable( $tag )
632
+    private function ismergeable($tag)
633 633
     {
634
-        if ( empty( $tag ) || ! $this->aggregate ) {
634
+        if (empty($tag) || !$this->aggregate) {
635 635
             return false;
636 636
         }
637 637
 
638
-        if ( ! empty( $this->allowlist ) ) {
639
-            foreach ( $this->allowlist as $match ) {
640
-                if ( false !== strpos( $tag, $match ) ) {
638
+        if (!empty($this->allowlist)) {
639
+            foreach ($this->allowlist as $match) {
640
+                if (false !== strpos($tag, $match)) {
641 641
                     return true;
642 642
                 }
643 643
             }
644 644
             // No match with allowlist.
645 645
             return false;
646 646
         } else {
647
-            foreach ( $this->domove as $match ) {
648
-                if ( false !== strpos( $tag, $match ) ) {
647
+            foreach ($this->domove as $match) {
648
+                if (false !== strpos($tag, $match)) {
649 649
                     // Matched something.
650 650
                     return false;
651 651
                 }
652 652
             }
653 653
 
654
-            if ( $this->movetolast( $tag ) ) {
654
+            if ($this->movetolast($tag)) {
655 655
                 return false;
656 656
             }
657 657
 
658
-            foreach ( $this->dontmove as $match ) {
659
-                if ( false !== strpos( $tag, $match ) ) {
658
+            foreach ($this->dontmove as $match) {
659
+                if (false !== strpos($tag, $match)) {
660 660
                     // Matched something.
661 661
                     return false;
662 662
                 }
@@ -672,25 +672,25 @@  discard block
 block discarded – undo
672 672
      *
673 673
      * @param string $tag tag to check for blocklist (exclusions).
674 674
      */
675
-    private function ismovable( $tag )
675
+    private function ismovable($tag)
676 676
     {
677
-        if ( empty( $tag ) || true !== $this->include_inline || apply_filters( 'autoptimize_filter_js_unmovable', true ) ) {
677
+        if (empty($tag) || true !== $this->include_inline || apply_filters('autoptimize_filter_js_unmovable', true)) {
678 678
             return false;
679 679
         }
680 680
 
681
-        foreach ( $this->domove as $match ) {
682
-            if ( false !== strpos( $tag, $match ) ) {
681
+        foreach ($this->domove as $match) {
682
+            if (false !== strpos($tag, $match)) {
683 683
                 // Matched something.
684 684
                 return true;
685 685
             }
686 686
         }
687 687
 
688
-        if ( $this->movetolast( $tag ) ) {
688
+        if ($this->movetolast($tag)) {
689 689
             return true;
690 690
         }
691 691
 
692
-        foreach ( $this->dontmove as $match ) {
693
-            if ( false !== strpos( $tag, $match ) ) {
692
+        foreach ($this->dontmove as $match) {
693
+            if (false !== strpos($tag, $match)) {
694 694
                 // Matched something.
695 695
                 return false;
696 696
             }
@@ -700,14 +700,14 @@  discard block
 block discarded – undo
700 700
         return true;
701 701
     }
702 702
 
703
-    private function movetolast( $tag )
703
+    private function movetolast($tag)
704 704
     {
705
-        if ( empty( $tag ) ) {
705
+        if (empty($tag)) {
706 706
             return false;
707 707
         }
708 708
 
709
-        foreach ( $this->domovelast as $match ) {
710
-            if ( false !== strpos( $tag, $match ) ) {
709
+        foreach ($this->domovelast as $match) {
710
+            if (false !== strpos($tag, $match)) {
711 711
                 // Matched, return true.
712 712
                 return true;
713 713
             }
@@ -727,12 +727,12 @@  discard block
 block discarded – undo
727 727
      * @param string $js_path Path to JS file.
728 728
      * @return bool
729 729
      */
730
-    private function can_inject_late( $js_path ) {
731
-        $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
732
-        if ( true !== $this->inject_min_late ) {
730
+    private function can_inject_late($js_path) {
731
+        $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
732
+        if (true !== $this->inject_min_late) {
733 733
             // late-inject turned off.
734 734
             return false;
735
-        } elseif ( ( false === strpos( $js_path, 'min.js' ) ) && ( false === strpos( $js_path, 'wp-includes/js/jquery/jquery.js' ) ) && ( str_replace( $consider_minified_array, '', $js_path ) === $js_path ) ) {
735
+        } elseif ((false === strpos($js_path, 'min.js')) && (false === strpos($js_path, 'wp-includes/js/jquery/jquery.js')) && (str_replace($consider_minified_array, '', $js_path) === $js_path)) {
736 736
             // file not minified based on filename & filter.
737 737
             return false;
738 738
         } else {
@@ -759,35 +759,35 @@  discard block
 block discarded – undo
759 759
      *
760 760
      * @return bool|string Url pointing to the minified js file or false.
761 761
      */
762
-    public function minify_single( $filepath, $cache_miss = false )
762
+    public function minify_single($filepath, $cache_miss = false)
763 763
     {
764
-        $contents = $this->prepare_minify_single( $filepath );
764
+        $contents = $this->prepare_minify_single($filepath);
765 765
 
766
-        if ( empty( $contents ) ) {
766
+        if (empty($contents)) {
767 767
             return false;
768 768
         }
769 769
 
770 770
         // Check cache.
771
-        $hash  = 'single_' . md5( $contents );
772
-        $cache = new autoptimizeCache( $hash, 'js' );
771
+        $hash  = 'single_'.md5($contents);
772
+        $cache = new autoptimizeCache($hash, 'js');
773 773
 
774 774
         // If not in cache already, minify...
775
-        if ( ! $cache->check() || $cache_miss ) {
776
-            $contents = trim( JSMin::minify( $contents ) );
775
+        if (!$cache->check() || $cache_miss) {
776
+            $contents = trim(JSMin::minify($contents));
777 777
 
778 778
             // Check if minified cache content is empty.
779
-            if ( empty( $contents ) ) {
779
+            if (empty($contents)) {
780 780
                 return false;
781 781
             }
782 782
 
783 783
             // Filter contents of excluded minified CSS.
784
-            $contents = apply_filters( 'autoptimize_filter_js_single_after_minify', $contents );
784
+            $contents = apply_filters('autoptimize_filter_js_single_after_minify', $contents);
785 785
 
786 786
             // Store in cache.
787
-            $cache->cache( $contents, 'text/javascript' );
787
+            $cache->cache($contents, 'text/javascript');
788 788
         }
789 789
 
790
-        $url = $this->build_minify_single_url( $cache );
790
+        $url = $this->build_minify_single_url($cache);
791 791
 
792 792
         return $url;
793 793
     }
Please login to merge, or discard this patch.
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/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.
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, true );
2369
-        $this->assertEquals( $expected, $actual );
2367
+        $instance->set_options($opts);
2368
+        $actual = $instance->filter_optimize_images($markup, true);
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="$imgopthost/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.
classes/autoptimizeCriticalCSSEnqueue.php 1 patch
Spacing   +74 added lines, -74 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;
@@ -42,17 +42,17 @@  discard block
 block discarded – undo
42 42
 
43 43
             // Get request path and page type, and initialize the queue update flag.
44 44
             $req_orig        = $_SERVER['REQUEST_URI'];
45
-            $req_path        = strtok( $req_orig, '?' );
45
+            $req_path        = strtok($req_orig, '?');
46 46
 
47 47
             // Check if we have a lang param. we need to keep as WPML can switch languages based on that
48 48
             // and that includes RTL -> LTR so diff. structure, so rules would be RTL vs LTR
49 49
             // but this needs changes in the structur of the rule object so off by default for now
50 50
             // as now this will simply result in conditional rules being overwritten.
51
-            if ( apply_filters( 'autoptimize_filter_ccss_coreenqueue_honor_lang', false ) && strpos( $req_orig, 'lang=' ) !== false ) {
52
-                $req_params = strtok( '?' );
53
-                parse_str( $req_params, $req_params_arr );
54
-                if ( array_key_exists( 'lang', $req_params_arr ) && !empty( $req_params_arr['lang'] ) ) {
55
-                    $req_path .= '?lang=' . $req_params_arr['lang'];
51
+            if (apply_filters('autoptimize_filter_ccss_coreenqueue_honor_lang', false) && strpos($req_orig, 'lang=') !== false) {
52
+                $req_params = strtok('?');
53
+                parse_str($req_params, $req_params_arr);
54
+                if (array_key_exists('lang', $req_params_arr) && !empty($req_params_arr['lang'])) {
55
+                    $req_path .= '?lang='.$req_params_arr['lang'];
56 56
                 }
57 57
             }
58 58
 
@@ -63,21 +63,21 @@  discard block
 block discarded – undo
63 63
             $queue_update    = false;
64 64
 
65 65
             // Match for paths in rules.
66
-            foreach ( $ao_ccss_rules['paths'] as $path => $props ) {
66
+            foreach ($ao_ccss_rules['paths'] as $path => $props) {
67 67
 
68 68
                 // Prepare rule target and log.
69
-                $target_rule = 'paths|' . $path;
70
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Qualifying path <' . $req_path . '> for job submission by rule <' . $target_rule . '>', 3 );
69
+                $target_rule = 'paths|'.$path;
70
+                autoptimizeCriticalCSSCore::ao_ccss_log('Qualifying path <'.$req_path.'> for job submission by rule <'.$target_rule.'>', 3);
71 71
 
72 72
                 // Path match
73 73
                 // -> exact match needed for AUTO rules
74 74
                 // -> partial match OK for MANUAL rules (which have empty hash and a file with CCSS).
75
-                if ( $path === $req_path || ( false == $props['hash'] && false != $props['file'] && preg_match( '|' . $path . '|', $req_path ) ) ) {
75
+                if ($path === $req_path || (false == $props['hash'] && false != $props['file'] && preg_match('|'.$path.'|', $req_path))) {
76 76
 
77 77
                     // There's a path match in the rule, so job QUALIFIES with a path rule match.
78 78
                     $job_qualify     = true;
79 79
                     $rule_properties = $props;
80
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Path <' . $req_path . '> QUALIFIED for job submission by rule <' . $target_rule . '>', 3 );
80
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Path <'.$req_path.'> QUALIFIED for job submission by rule <'.$target_rule.'>', 3);
81 81
 
82 82
                     // Stop processing other path rules.
83 83
                     break;
@@ -85,19 +85,19 @@  discard block
 block discarded – undo
85 85
             }
86 86
 
87 87
             // Match for types in rules if no path rule matches and if we're not enforcing paths.
88
-            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 ) ) ) {
89
-                foreach ( $ao_ccss_rules['types'] as $type => $props ) {
88
+            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))) {
89
+                foreach ($ao_ccss_rules['types'] as $type => $props) {
90 90
 
91 91
                     // Prepare rule target and log.
92
-                    $target_rule = 'types|' . $type;
93
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Qualifying page type <' . $req_type . '> on path <' . $req_path . '> for job submission by rule <' . $target_rule . '>', 3 );
92
+                    $target_rule = 'types|'.$type;
93
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Qualifying page type <'.$req_type.'> on path <'.$req_path.'> for job submission by rule <'.$target_rule.'>', 3);
94 94
 
95
-                    if ( $req_type == $type ) {
95
+                    if ($req_type == $type) {
96 96
                         // Type match.
97 97
                         // There's a type match in the rule, so job QUALIFIES with a type rule match.
98 98
                         $job_qualify     = true;
99 99
                         $rule_properties = $props;
100
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Page type <' . $req_type . '> on path <' . $req_path . '> QUALIFIED for job submission by rule <' . $target_rule . '>', 3 );
100
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Page type <'.$req_type.'> on path <'.$req_path.'> QUALIFIED for job submission by rule <'.$target_rule.'>', 3);
101 101
 
102 102
                         // Stop processing other type rules.
103 103
                         break;
@@ -105,11 +105,11 @@  discard block
 block discarded – undo
105 105
                 }
106 106
             }
107 107
 
108
-            if ( $job_qualify && ( ( false == $rule_properties['hash'] && false != $rule_properties['file'] ) || strpos( $req_type, 'template_' ) !== false ) ) {
108
+            if ($job_qualify && ((false == $rule_properties['hash'] && false != $rule_properties['file']) || strpos($req_type, 'template_') !== false)) {
109 109
                 // 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.
110 110
                 $job_qualify = false;
111
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission DISQUALIFIED by MANUAL rule <' . $target_rule . '> with hash <' . $rule_properties['hash'] . '> and file <' . $rule_properties['file'] . '>', 3 );
112
-            } elseif ( ! $job_qualify && empty( $rule_properties ) ) {
111
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission DISQUALIFIED by MANUAL rule <'.$target_rule.'> with hash <'.$rule_properties['hash'].'> and file <'.$rule_properties['file'].'>', 3);
112
+            } elseif (!$job_qualify && empty($rule_properties)) {
113 113
                 // But if job does not qualify and rule properties are set, job qualifies as there is no matching rule for it yet
114 114
                 // Fill-in the new target rule.
115 115
                 $job_qualify = true;
@@ -117,28 +117,28 @@  discard block
 block discarded – undo
117 117
                 // Should we switch to path-base AUTO-rules? Conditions:
118 118
                 // 1. forcepath option has to be enabled (off by default)
119 119
                 // 2. request type should be (by default, but filterable) one of is_page (removed for now: woo_is_product or woo_is_product_category).
120
-                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 ) ) {
121
-                    if ( '/' !== $req_path ) {
122
-                        $target_rule = 'paths|' . $req_path;
120
+                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)) {
121
+                    if ('/' !== $req_path) {
122
+                        $target_rule = 'paths|'.$req_path;
123 123
                     } else {
124 124
                         // 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.
125
-                        $target_rule = 'types|' . 'is_front_page';
125
+                        $target_rule = 'types|'.'is_front_page';
126 126
                     }
127 127
                 } else {
128
-                    $target_rule = 'types|' . $req_type;
128
+                    $target_rule = 'types|'.$req_type;
129 129
                 }
130
-                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 );
130
+                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);
131 131
             } else {
132 132
                 // Or just log a job qualified by a matching rule.
133
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission QUALIFIED by AUTO rule <' . $target_rule . '> with hash <' . $rule_properties['hash'] . '> and file <' . $rule_properties['file'] . '>', 3 );
133
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission QUALIFIED by AUTO rule <'.$target_rule.'> with hash <'.$rule_properties['hash'].'> and file <'.$rule_properties['file'].'>', 3);
134 134
             }
135 135
 
136 136
             // Submit job.
137
-            if ( $job_qualify ) {
138
-                if ( ! array_key_exists( $req_path, $ao_ccss_queue ) ) {
137
+            if ($job_qualify) {
138
+                if (!array_key_exists($req_path, $ao_ccss_queue)) {
139 139
                     // This is a NEW job
140 140
                     // Merge job into the queue.
141
-                    $ao_ccss_queue[ $req_path ] = $self->ao_ccss_define_job(
141
+                    $ao_ccss_queue[$req_path] = $self->ao_ccss_define_job(
142 142
                         $req_path,
143 143
                         $target_rule,
144 144
                         $req_type,
@@ -154,30 +154,30 @@  discard block
 block discarded – undo
154 154
                 } else {
155 155
                     // This is an existing job
156 156
                     // The job is still NEW, most likely this is extra CSS file for the same page that needs a hash.
157
-                    if ( 'NEW' == $ao_ccss_queue[ $req_path ]['jqstat'] ) {
157
+                    if ('NEW' == $ao_ccss_queue[$req_path]['jqstat']) {
158 158
                         // Add hash if it's not already in the job.
159
-                        if ( ! in_array( $hash, $ao_ccss_queue[ $req_path ]['hashes'] ) ) {
159
+                        if (!in_array($hash, $ao_ccss_queue[$req_path]['hashes'])) {
160 160
                             // Push new hash to its array and update flag.
161
-                            $queue_update = array_push( $ao_ccss_queue[ $req_path ]['hashes'], $hash );
161
+                            $queue_update = array_push($ao_ccss_queue[$req_path]['hashes'], $hash);
162 162
 
163 163
                             // Log job update.
164
-                            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 );
164
+                            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);
165 165
 
166 166
                             // Return from here as the hash array is already updated.
167 167
                             return true;
168 168
                         }
169
-                    } elseif ( 'NEW' != $ao_ccss_queue[ $req_path ]['jqstat'] && 'JOB_QUEUED' != $ao_ccss_queue[ $req_path ]['jqstat'] && 'JOB_ONGOING' != $ao_ccss_queue[ $req_path ]['jqstat'] ) {
169
+                    } elseif ('NEW' != $ao_ccss_queue[$req_path]['jqstat'] && 'JOB_QUEUED' != $ao_ccss_queue[$req_path]['jqstat'] && 'JOB_ONGOING' != $ao_ccss_queue[$req_path]['jqstat']) {
170 170
                         // Allow requeuing jobs that are not NEW, JOB_QUEUED or JOB_ONGOING
171 171
                         // Merge new job keeping some previous job values.
172
-                        $ao_ccss_queue[ $req_path ] = $self->ao_ccss_define_job(
172
+                        $ao_ccss_queue[$req_path] = $self->ao_ccss_define_job(
173 173
                             $req_path,
174 174
                             $target_rule,
175 175
                             $req_type,
176 176
                             $hash,
177
-                            $ao_ccss_queue[ $req_path ]['file'],
178
-                            $ao_ccss_queue[ $req_path ]['jid'],
179
-                            $ao_ccss_queue[ $req_path ]['jrstat'],
180
-                            $ao_ccss_queue[ $req_path ]['jvstat'],
177
+                            $ao_ccss_queue[$req_path]['file'],
178
+                            $ao_ccss_queue[$req_path]['jid'],
179
+                            $ao_ccss_queue[$req_path]['jrstat'],
180
+                            $ao_ccss_queue[$req_path]['jvstat'],
181 181
                             false
182 182
                         );
183 183
                         // Set update flag.
@@ -185,14 +185,14 @@  discard block
 block discarded – undo
185 185
                     }
186 186
                 }
187 187
 
188
-                if ( $queue_update ) {
188
+                if ($queue_update) {
189 189
                     // Persist the job to the queue and return.
190
-                    $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
191
-                    update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
190
+                    $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
191
+                    update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
192 192
                     return true;
193 193
                 } else {
194 194
                     // Or just return false if no job was added.
195
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'A job for path <' . $req_path . '> already exist with NEW or PENDING status, skipping job creation', 3 );
195
+                    autoptimizeCriticalCSSCore::ao_ccss_log('A job for path <'.$req_path.'> already exist with NEW or PENDING status, skipping job creation', 3);
196 196
                     return false;
197 197
                 }
198 198
             }
@@ -209,33 +209,33 @@  discard block
 block discarded – undo
209 209
         $page_type = false;
210 210
 
211 211
         // Iterates over the array to match a type.
212
-        foreach ( $ao_ccss_types as $type ) {
213
-            if ( is_404() ) {
212
+        foreach ($ao_ccss_types as $type) {
213
+            if (is_404()) {
214 214
                 $page_type = 'is_404';
215 215
                 break;
216
-            } elseif ( is_front_page() ) {
216
+            } elseif (is_front_page()) {
217 217
                 // identify frontpage immediately to avoid it also matching a CPT or template.
218 218
                 $page_type = 'is_front_page';
219 219
                 break;
220
-            } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $ao_ccss_forcepath || ! is_page() ) ) {
220
+            } elseif (strpos($type, 'custom_post_') !== false && (!$ao_ccss_forcepath || !is_page())) {
221 221
                 // Match custom post types and not page or page not forced to path-based.
222
-                if ( get_post_type( get_the_ID() ) === substr( $type, 12 ) ) {
222
+                if (get_post_type(get_the_ID()) === substr($type, 12)) {
223 223
                     $page_type = $type;
224 224
                     break;
225 225
                 }
226
-            } elseif ( strpos( $type, 'template_' ) !== false && ( ! $ao_ccss_forcepath || ! is_page() ) ) {
226
+            } elseif (strpos($type, 'template_') !== false && (!$ao_ccss_forcepath || !is_page())) {
227 227
                 // Match templates if not page or if page is not forced to path-based.
228
-                if ( is_page_template( substr( $type, 9 ) ) ) {
228
+                if (is_page_template(substr($type, 9))) {
229 229
                     $page_type = $type;
230 230
                     break;
231 231
                 }
232 232
             } else {
233 233
                 // Match all other existing types
234 234
                 // but remove prefix to be able to check if the function exists & returns true.
235
-                $_type = str_replace( array( 'woo_', 'bp_', 'bbp_', 'edd_' ), '', $type );
236
-                if ( function_exists( $_type ) && call_user_func( $_type ) ) {
235
+                $_type = str_replace(array('woo_', 'bp_', 'bbp_', 'edd_'), '', $type);
236
+                if (function_exists($_type) && call_user_func($_type)) {
237 237
                     // Make sure we only return for one page, not for the "paged pages" (/page/2 ..).
238
-                    if ( ! is_page() || ! is_paged() ) {
238
+                    if (!is_page() || !is_paged()) {
239 239
                         $page_type = $type;
240 240
                         break;
241 241
                     }
@@ -247,44 +247,44 @@  discard block
 block discarded – undo
247 247
         return $page_type;
248 248
     }
249 249
 
250
-    public function ao_ccss_define_job( $path, $target, $type, $hash, $file, $jid, $jrstat, $jvstat, $create ) {
250
+    public function ao_ccss_define_job($path, $target, $type, $hash, $file, $jid, $jrstat, $jvstat, $create) {
251 251
         // Define a job entry to be created or updated
252 252
         // Define commom job properties.
253 253
         $path            = array();
254 254
         $path['ljid']    = $this->ao_ccss_job_id();
255 255
         $path['rtarget'] = $target;
256 256
         $path['ptype']   = $type;
257
-        $path['hashes']  = array( $hash );
257
+        $path['hashes']  = array($hash);
258 258
         $path['hash']    = $hash;
259 259
         $path['file']    = $file;
260 260
         $path['jid']     = $jid;
261 261
         $path['jqstat']  = 'NEW';
262 262
         $path['jrstat']  = $jrstat;
263 263
         $path['jvstat']  = $jvstat;
264
-        $path['jctime']  = microtime( true );
264
+        $path['jctime']  = microtime(true);
265 265
         $path['jftime']  = null;
266 266
 
267 267
         // Set operation requested.
268
-        if ( $create ) {
268
+        if ($create) {
269 269
             $operation = 'CREATED';
270 270
         } else {
271 271
             $operation = 'UPDATED';
272 272
         }
273 273
 
274 274
         // Log job creation.
275
-        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job ' . $operation . ' with local job id <' . $path['ljid'] . '> for target rule <' . $target . '>', 3 );
275
+        autoptimizeCriticalCSSCore::ao_ccss_log('Job '.$operation.' with local job id <'.$path['ljid'].'> for target rule <'.$target.'>', 3);
276 276
 
277 277
         return $path;
278 278
     }
279 279
 
280
-    public function ao_ccss_job_id( $length = 6 ) {
280
+    public function ao_ccss_job_id($length = 6) {
281 281
         // Generate random strings for the local job ID
282 282
         // Based on https://stackoverflow.com/a/4356295 .
283 283
         $characters        = '0123456789abcdefghijklmnopqrstuvwxyz';
284
-        $characters_length = strlen( $characters );
284
+        $characters_length = strlen($characters);
285 285
         $random_string     = 'j-';
286
-        for ( $i = 0; $i < $length; $i++ ) {
287
-            $random_string .= $characters[ rand( 0, $characters_length - 1 ) ];
286
+        for ($i = 0; $i < $length; $i++) {
287
+            $random_string .= $characters[rand(0, $characters_length - 1)];
288 288
         }
289 289
         return $random_string;
290 290
     }
@@ -292,17 +292,17 @@  discard block
 block discarded – undo
292 292
     public function ao_ccss_ua() {
293 293
         // Check for criticalcss.com user agent.
294 294
         $agent = '';
295
-        if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
295
+        if (isset($_SERVER['HTTP_USER_AGENT'])) {
296 296
             $agent = $_SERVER['HTTP_USER_AGENT'];
297 297
         }
298 298
 
299 299
         // Check for UA and return TRUE when criticalcss.com is the detected UA, false when not.
300
-        $rtn = strpos( $agent, AO_CCSS_URL );
301
-        if ( 0 === $rtn ) {
300
+        $rtn = strpos($agent, AO_CCSS_URL);
301
+        if (0 === $rtn) {
302 302
             $rtn = true;
303 303
         } else {
304 304
             $rtn = false;
305 305
         }
306
-        return ( $rtn );
306
+        return ($rtn);
307 307
     }
308 308
 }
Please login to merge, or discard this patch.
classes/autoptimizeMain.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
  * Wraps base plugin logic/hooks and handles activation/deactivation/uninstall.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
      * @param string $version Version.
34 34
      * @param string $filepath Filepath. Needed for activation/deactivation/uninstall hooks.
35 35
      */
36
-    public function __construct( $version, $filepath )
36
+    public function __construct($version, $filepath)
37 37
     {
38 38
         $this->version  = $version;
39 39
         $this->filepath = $filepath;
@@ -50,101 +50,101 @@  discard block
 block discarded – undo
50 50
 
51 51
     protected function add_hooks()
52 52
     {
53
-        if ( ! defined( 'AUTOPTIMIZE_SETUP_INITHOOK' ) ) {
54
-            define( 'AUTOPTIMIZE_SETUP_INITHOOK', 'plugins_loaded' );
53
+        if (!defined('AUTOPTIMIZE_SETUP_INITHOOK')) {
54
+            define('AUTOPTIMIZE_SETUP_INITHOOK', 'plugins_loaded');
55 55
         }
56 56
 
57
-        add_action( AUTOPTIMIZE_SETUP_INITHOOK, array( $this, 'setup' ) );
58
-        add_action( AUTOPTIMIZE_SETUP_INITHOOK, array( $this, 'hook_page_cache_purge' ) );
57
+        add_action(AUTOPTIMIZE_SETUP_INITHOOK, array($this, 'setup'));
58
+        add_action(AUTOPTIMIZE_SETUP_INITHOOK, array($this, 'hook_page_cache_purge'));
59 59
 
60
-        add_action( 'autoptimize_setup_done', array( $this, 'version_upgrades_check' ) );
61
-        add_action( 'autoptimize_setup_done', array( $this, 'check_cache_and_run' ) );
62
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_ao_extra' ), 15 );
63
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_partners_tab' ), 20 );
64
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_criticalcss' ), 11 );
65
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_notfound_fallback' ), 10 );
60
+        add_action('autoptimize_setup_done', array($this, 'version_upgrades_check'));
61
+        add_action('autoptimize_setup_done', array($this, 'check_cache_and_run'));
62
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_ao_extra'), 15);
63
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_partners_tab'), 20);
64
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_criticalcss'), 11);
65
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_notfound_fallback'), 10);
66 66
 
67
-        add_action( 'init', array( $this, 'load_textdomain' ) );
67
+        add_action('init', array($this, 'load_textdomain'));
68 68
 
69
-        if ( is_multisite() && is_admin() ) {
69
+        if (is_multisite() && is_admin()) {
70 70
             // Only if multisite and if in admin we want to check if we need to save options on network level.
71
-            add_action( 'init', 'autoptimizeOptionWrapper::check_multisite_on_saving_options' );
71
+            add_action('init', 'autoptimizeOptionWrapper::check_multisite_on_saving_options');
72 72
         }
73 73
 
74 74
         // register uninstall & deactivation hooks.
75
-        register_uninstall_hook( $this->filepath, 'autoptimizeMain::on_uninstall' );
76
-        register_deactivation_hook( $this->filepath, 'autoptimizeMain::on_deactivation' );
75
+        register_uninstall_hook($this->filepath, 'autoptimizeMain::on_uninstall');
76
+        register_deactivation_hook($this->filepath, 'autoptimizeMain::on_deactivation');
77 77
     }
78 78
 
79 79
     public function load_textdomain()
80 80
     {
81
-        load_plugin_textdomain( 'autoptimize' );
81
+        load_plugin_textdomain('autoptimize');
82 82
     }
83 83
 
84 84
     public function setup()
85 85
     {
86 86
         // Do we gzip in php when caching or is the webserver doing it?
87
-        define( 'AUTOPTIMIZE_CACHE_NOGZIP', (bool) autoptimizeOptionWrapper::get_option( 'autoptimize_cache_nogzip' ) );
87
+        define('AUTOPTIMIZE_CACHE_NOGZIP', (bool) autoptimizeOptionWrapper::get_option('autoptimize_cache_nogzip'));
88 88
 
89 89
         // These can be overridden by specifying them in wp-config.php or such.
90
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_NAME' ) ) {
91
-            define( 'AUTOPTIMIZE_WP_CONTENT_NAME', '/' . wp_basename( WP_CONTENT_DIR ) );
90
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_NAME')) {
91
+            define('AUTOPTIMIZE_WP_CONTENT_NAME', '/'.wp_basename(WP_CONTENT_DIR));
92 92
         }
93
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_CHILD_DIR' ) ) {
94
-            define( 'AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/' );
93
+        if (!defined('AUTOPTIMIZE_CACHE_CHILD_DIR')) {
94
+            define('AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/');
95 95
         }
96
-        if ( ! defined( 'AUTOPTIMIZE_CACHEFILE_PREFIX' ) ) {
97
-            define( 'AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_' );
96
+        if (!defined('AUTOPTIMIZE_CACHEFILE_PREFIX')) {
97
+            define('AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_');
98 98
         }
99 99
         // Note: trailing slash is not optional!
100
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
101
-            define( 'AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname() );
100
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
101
+            define('AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname());
102 102
         }
103 103
 
104
-        define( 'WP_ROOT_DIR', substr( WP_CONTENT_DIR, 0, strlen( WP_CONTENT_DIR ) - strlen( AUTOPTIMIZE_WP_CONTENT_NAME ) ) );
104
+        define('WP_ROOT_DIR', substr(WP_CONTENT_DIR, 0, strlen(WP_CONTENT_DIR) - strlen(AUTOPTIMIZE_WP_CONTENT_NAME)));
105 105
 
106
-        if ( ! defined( 'AUTOPTIMIZE_WP_SITE_URL' ) ) {
107
-            if ( function_exists( 'domain_mapping_siteurl' ) ) {
108
-                define( 'AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl( get_current_blog_id() ) );
106
+        if (!defined('AUTOPTIMIZE_WP_SITE_URL')) {
107
+            if (function_exists('domain_mapping_siteurl')) {
108
+                define('AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl(get_current_blog_id()));
109 109
             } else {
110
-                define( 'AUTOPTIMIZE_WP_SITE_URL', site_url() );
110
+                define('AUTOPTIMIZE_WP_SITE_URL', site_url());
111 111
             }
112 112
         }
113
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_URL' ) ) {
114
-            if ( function_exists( 'get_original_url' ) ) {
115
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', str_replace( get_original_url( AUTOPTIMIZE_WP_SITE_URL ), AUTOPTIMIZE_WP_SITE_URL, content_url() ) );
113
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_URL')) {
114
+            if (function_exists('get_original_url')) {
115
+                define('AUTOPTIMIZE_WP_CONTENT_URL', str_replace(get_original_url(AUTOPTIMIZE_WP_SITE_URL), AUTOPTIMIZE_WP_SITE_URL, content_url()));
116 116
             } else {
117
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', content_url() );
117
+                define('AUTOPTIMIZE_WP_CONTENT_URL', content_url());
118 118
             }
119 119
         }
120
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_URL' ) ) {
121
-            if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
120
+        if (!defined('AUTOPTIMIZE_CACHE_URL')) {
121
+            if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
122 122
                 $blog_id = get_current_blog_id();
123
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR . $blog_id . '/' );
123
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR.$blog_id.'/');
124 124
             } else {
125
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR );
125
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR);
126 126
             }
127 127
         }
128
-        if ( ! defined( 'AUTOPTIMIZE_WP_ROOT_URL' ) ) {
129
-            define( 'AUTOPTIMIZE_WP_ROOT_URL', str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL ) );
128
+        if (!defined('AUTOPTIMIZE_WP_ROOT_URL')) {
129
+            define('AUTOPTIMIZE_WP_ROOT_URL', str_replace(AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL));
130 130
         }
131
-        if ( ! defined( 'AUTOPTIMIZE_HASH' ) ) {
132
-            define( 'AUTOPTIMIZE_HASH', wp_hash( AUTOPTIMIZE_CACHE_URL ) );
131
+        if (!defined('AUTOPTIMIZE_HASH')) {
132
+            define('AUTOPTIMIZE_HASH', wp_hash(AUTOPTIMIZE_CACHE_URL));
133 133
         }
134
-        if ( ! defined( 'AUTOPTIMIZE_SITE_DOMAIN' ) ) {
135
-            define( 'AUTOPTIMIZE_SITE_DOMAIN', parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) );
134
+        if (!defined('AUTOPTIMIZE_SITE_DOMAIN')) {
135
+            define('AUTOPTIMIZE_SITE_DOMAIN', parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST));
136 136
         }
137 137
 
138 138
         // Multibyte-capable string replacements are available with a filter.
139 139
         // Also requires 'mbstring' extension.
140
-        $with_mbstring = apply_filters( 'autoptimize_filter_main_use_mbstring', false );
141
-        if ( $with_mbstring ) {
142
-            autoptimizeUtils::mbstring_available( \extension_loaded( 'mbstring' ) );
140
+        $with_mbstring = apply_filters('autoptimize_filter_main_use_mbstring', false);
141
+        if ($with_mbstring) {
142
+            autoptimizeUtils::mbstring_available(\extension_loaded('mbstring'));
143 143
         } else {
144
-            autoptimizeUtils::mbstring_available( false );
144
+            autoptimizeUtils::mbstring_available(false);
145 145
         }
146 146
 
147
-        do_action( 'autoptimize_setup_done' );
147
+        do_action('autoptimize_setup_done');
148 148
     }
149 149
 
150 150
     /**
@@ -154,61 +154,61 @@  discard block
 block discarded – undo
154 154
      */
155 155
     public function version_upgrades_check()
156 156
     {
157
-        autoptimizeVersionUpdatesHandler::check_installed_and_update( $this->version );
157
+        autoptimizeVersionUpdatesHandler::check_installed_and_update($this->version);
158 158
     }
159 159
 
160 160
     public function check_cache_and_run()
161 161
     {
162
-        if ( autoptimizeCache::cacheavail() ) {
162
+        if (autoptimizeCache::cacheavail()) {
163 163
             $conf = autoptimizeConfig::instance();
164
-            if ( $conf->get( 'autoptimize_html' ) || $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper() ) {
165
-                if ( ! defined( 'AUTOPTIMIZE_NOBUFFER_OPTIMIZE' ) ) {
164
+            if ($conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper()) {
165
+                if (!defined('AUTOPTIMIZE_NOBUFFER_OPTIMIZE')) {
166 166
                     // Hook into WordPress frontend.
167
-                    if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
167
+                    if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
168 168
                         add_action(
169 169
                             'init',
170
-                            array( $this, 'start_buffering' ),
170
+                            array($this, 'start_buffering'),
171 171
                             self::INIT_EARLIER_PRIORITY
172 172
                         );
173 173
                     } else {
174
-                        if ( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) ) {
175
-                            define( 'AUTOPTIMIZE_HOOK_INTO', 'template_redirect' );
174
+                        if (!defined('AUTOPTIMIZE_HOOK_INTO')) {
175
+                            define('AUTOPTIMIZE_HOOK_INTO', 'template_redirect');
176 176
                         }
177 177
                         add_action(
178
-                            constant( 'AUTOPTIMIZE_HOOK_INTO' ),
179
-                            array( $this, 'start_buffering' ),
178
+                            constant('AUTOPTIMIZE_HOOK_INTO'),
179
+                            array($this, 'start_buffering'),
180 180
                             self::DEFAULT_HOOK_PRIORITY
181 181
                         );
182 182
                     }
183 183
                 }
184 184
 
185 185
                 // And disable Jetpack's site accelerator if JS or CSS opt. are active.
186
-                if ( class_exists( 'Jetpack' ) && apply_filters( 'autoptimize_filter_main_disable_jetpack_cdn', true ) && ( $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) ) ) {
187
-                    add_filter( 'jetpack_force_disable_site_accelerator', '__return_true' );
186
+                if (class_exists('Jetpack') && apply_filters('autoptimize_filter_main_disable_jetpack_cdn', true) && ($conf->get('autoptimize_js') || $conf->get('autoptimize_css'))) {
187
+                    add_filter('jetpack_force_disable_site_accelerator', '__return_true');
188 188
                 }
189 189
             }
190 190
         } else {
191
-            add_action( 'admin_notices', 'autoptimizeMain::notice_cache_unavailable' );
191
+            add_action('admin_notices', 'autoptimizeMain::notice_cache_unavailable');
192 192
         }
193 193
     }
194 194
 
195 195
     public function maybe_run_ao_extra()
196 196
     {
197
-        if ( apply_filters( 'autoptimize_filter_extra_activate', true ) ) {
197
+        if (apply_filters('autoptimize_filter_extra_activate', true)) {
198 198
             $ao_imgopt = new autoptimizeImages();
199 199
             $ao_imgopt->run();
200 200
             $ao_extra = new autoptimizeExtra();
201 201
             $ao_extra->run();
202 202
 
203 203
             // And show the imgopt notice.
204
-            add_action( 'admin_notices', 'autoptimizeMain::notice_plug_imgopt' );
204
+            add_action('admin_notices', 'autoptimizeMain::notice_plug_imgopt');
205 205
         }
206 206
     }
207 207
 
208 208
     public function maybe_run_partners_tab()
209 209
     {
210 210
         // Loads partners tab code if in admin (and not in admin-ajax.php)!
211
-        if ( autoptimizeConfig::is_admin_and_not_ajax() ) {
211
+        if (autoptimizeConfig::is_admin_and_not_ajax()) {
212 212
             new autoptimizePartners();
213 213
         }
214 214
     }
@@ -216,22 +216,22 @@  discard block
 block discarded – undo
216 216
     public function maybe_run_criticalcss()
217 217
     {
218 218
         // Loads criticalcss if the power-up is not active and if the filter returns true.
219
-        if ( apply_filters( 'autoptimize_filter_criticalcss_active', true ) && ! autoptimizeUtils::is_plugin_active( 'autoptimize-criticalcss/ao_criticss_aas.php' ) ) {
219
+        if (apply_filters('autoptimize_filter_criticalcss_active', true) && !autoptimizeUtils::is_plugin_active('autoptimize-criticalcss/ao_criticss_aas.php')) {
220 220
             new autoptimizeCriticalCSSBase();
221 221
         }
222 222
     }
223 223
 
224 224
     public function maybe_run_notfound_fallback()
225 225
     {
226
-        if ( autoptimizeCache::do_fallback() ) {
227
-            add_action( 'template_redirect', array( 'autoptimizeCache', 'wordpress_notfound_fallback' ) );
226
+        if (autoptimizeCache::do_fallback()) {
227
+            add_action('template_redirect', array('autoptimizeCache', 'wordpress_notfound_fallback'));
228 228
         }
229 229
     }
230 230
 
231 231
     public function hook_page_cache_purge()
232 232
     {
233 233
         // hook into a collection of page cache purge actions if filter allows.
234
-        if ( apply_filters( 'autoptimize_filter_main_hookpagecachepurge', true ) ) {
234
+        if (apply_filters('autoptimize_filter_main_hookpagecachepurge', true)) {
235 235
             $page_cache_purge_actions = array(
236 236
                 'after_rocket_clean_domain', // exists.
237 237
                 'hyper_cache_purged', // Stefano confirmed this will be added.
@@ -246,9 +246,9 @@  discard block
 block discarded – undo
246 246
                 'wpo_cache_flush', // wp-optimize.
247 247
                 'rt_nginx_helper_after_fastcgi_purge_all', // nginx helper.
248 248
             );
249
-            $page_cache_purge_actions = apply_filters( 'autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions );
250
-            foreach ( $page_cache_purge_actions as $purge_action ) {
251
-                add_action( $purge_action, 'autoptimizeCache::clearall_actionless' );
249
+            $page_cache_purge_actions = apply_filters('autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions);
250
+            foreach ($page_cache_purge_actions as $purge_action) {
251
+                add_action($purge_action, 'autoptimizeCache::clearall_actionless');
252 252
             }
253 253
         }
254 254
     }
@@ -260,38 +260,38 @@  discard block
 block discarded – undo
260 260
      */
261 261
     public function start_buffering()
262 262
     {
263
-        if ( $this->should_buffer() ) {
263
+        if ($this->should_buffer()) {
264 264
 
265 265
             // Load speedupper conditionally (true by default).
266
-            if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
266
+            if (apply_filters('autoptimize_filter_speedupper', true)) {
267 267
                 $ao_speedupper = new autoptimizeSpeedupper();
268 268
             }
269 269
 
270 270
             $conf = autoptimizeConfig::instance();
271 271
 
272
-            if ( $conf->get( 'autoptimize_js' ) ) {
273
-                if ( ! defined( 'CONCATENATE_SCRIPTS' ) ) {
274
-                    define( 'CONCATENATE_SCRIPTS', false );
272
+            if ($conf->get('autoptimize_js')) {
273
+                if (!defined('CONCATENATE_SCRIPTS')) {
274
+                    define('CONCATENATE_SCRIPTS', false);
275 275
                 }
276
-                if ( ! defined( 'COMPRESS_SCRIPTS' ) ) {
277
-                    define( 'COMPRESS_SCRIPTS', false );
276
+                if (!defined('COMPRESS_SCRIPTS')) {
277
+                    define('COMPRESS_SCRIPTS', false);
278 278
                 }
279 279
             }
280 280
 
281
-            if ( $conf->get( 'autoptimize_css' ) ) {
282
-                if ( ! defined( 'COMPRESS_CSS' ) ) {
283
-                    define( 'COMPRESS_CSS', false );
281
+            if ($conf->get('autoptimize_css')) {
282
+                if (!defined('COMPRESS_CSS')) {
283
+                    define('COMPRESS_CSS', false);
284 284
                 }
285 285
             }
286 286
 
287
-            if ( apply_filters( 'autoptimize_filter_obkiller', false ) ) {
288
-                while ( ob_get_level() > 0 ) {
287
+            if (apply_filters('autoptimize_filter_obkiller', false)) {
288
+                while (ob_get_level() > 0) {
289 289
                     ob_end_clean();
290 290
                 }
291 291
             }
292 292
 
293 293
             // Now, start the real thing!
294
-            ob_start( array( $this, 'end_buffering' ) );
294
+            ob_start(array($this, 'end_buffering'));
295 295
         }
296 296
     }
297 297
 
@@ -302,31 +302,31 @@  discard block
 block discarded – undo
302 302
      *                          deciding once per request (for use in tests).
303 303
      * @return bool
304 304
      */
305
-    public static function should_buffer( $doing_tests = false )
305
+    public static function should_buffer($doing_tests = false)
306 306
     {
307 307
         static $do_buffering = null;
308 308
 
309 309
         // Only check once in case we're called multiple times by others but
310 310
         // still allows multiple calls when doing tests.
311
-        if ( null === $do_buffering || $doing_tests ) {
311
+        if (null === $do_buffering || $doing_tests) {
312 312
 
313 313
             $ao_noptimize = false;
314 314
 
315 315
             // Checking for DONOTMINIFY constant as used by e.g. WooCommerce POS.
316
-            if ( defined( 'DONOTMINIFY' ) && ( constant( 'DONOTMINIFY' ) === true || constant( 'DONOTMINIFY' ) === 'true' ) ) {
316
+            if (defined('DONOTMINIFY') && (constant('DONOTMINIFY') === true || constant('DONOTMINIFY') === 'true')) {
317 317
                 $ao_noptimize = true;
318 318
             }
319 319
 
320 320
             // Skip checking query strings if they're disabled.
321
-            if ( apply_filters( 'autoptimize_filter_honor_qs_noptimize', true ) ) {
321
+            if (apply_filters('autoptimize_filter_honor_qs_noptimize', true)) {
322 322
                 // Check for `ao_noptimize` (and other) keys in the query string
323 323
                 // to get non-optimized page for debugging.
324 324
                 $keys = array(
325 325
                     'ao_noptimize',
326 326
                     'ao_noptirocket',
327 327
                 );
328
-                foreach ( $keys as $key ) {
329
-                    if ( array_key_exists( $key, $_GET ) && '1' === $_GET[ $key ] ) {
328
+                foreach ($keys as $key) {
329
+                    if (array_key_exists($key, $_GET) && '1' === $_GET[$key]) {
330 330
                         $ao_noptimize = true;
331 331
                         break;
332 332
                     }
@@ -334,15 +334,15 @@  discard block
 block discarded – undo
334 334
             }
335 335
 
336 336
             // If setting says not to optimize logged in user and user is logged in...
337
-            if ( false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_optimize_logged', 'on' ) && is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
337
+            if (false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_optimize_logged', 'on') && is_user_logged_in() && current_user_can('edit_posts')) {
338 338
                 $ao_noptimize = true;
339 339
             }
340 340
 
341 341
             // If setting says not to optimize cart/checkout.
342
-            if ( false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_optimize_checkout', 'off' ) ) {
342
+            if (false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_optimize_checkout', 'off')) {
343 343
                 // Checking for woocommerce, easy digital downloads and wp ecommerce...
344
-                foreach ( array( 'is_checkout', 'is_cart', 'is_account_page', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout' ) as $func ) {
345
-                    if ( function_exists( $func ) && $func() ) {
344
+                foreach (array('is_checkout', 'is_cart', 'is_account_page', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout') as $func) {
345
+                    if (function_exists($func) && $func()) {
346 346
                         $ao_noptimize = true;
347 347
                         break;
348 348
                     }
@@ -350,10 +350,10 @@  discard block
 block discarded – undo
350 350
             }
351 351
 
352 352
             // And make sure pagebuilder previews don't get optimized HTML/ JS/ CSS/ ...
353
-            if ( false === $ao_noptimize ) {
354
-                $_qs_pagebuilders = array( 'tve', 'elementor-preview', 'fl_builder', 'vc_action', 'et_fb', 'bt-beaverbuildertheme', 'ct_builder', 'fb-edit', 'siteorigin_panels_live_editor' );
355
-                foreach ( $_qs_pagebuilders as $_pagebuilder ) {
356
-                    if ( array_key_exists( $_pagebuilder, $_GET ) ) {
353
+            if (false === $ao_noptimize) {
354
+                $_qs_pagebuilders = array('tve', 'elementor-preview', 'fl_builder', 'vc_action', 'et_fb', 'bt-beaverbuildertheme', 'ct_builder', 'fb-edit', 'siteorigin_panels_live_editor');
355
+                foreach ($_qs_pagebuilders as $_pagebuilder) {
356
+                    if (array_key_exists($_pagebuilder, $_GET)) {
357 357
                         $ao_noptimize = true;
358 358
                         break;
359 359
                     }
@@ -362,16 +362,16 @@  discard block
 block discarded – undo
362 362
 
363 363
             // Also honor PageSpeed=off parameter as used by mod_pagespeed, in use by some pagebuilders,
364 364
             // see https://www.modpagespeed.com/doc/experiment#ModPagespeed for info on that.
365
-            if ( false === $ao_noptimize && array_key_exists( 'PageSpeed', $_GET ) && 'off' === $_GET['PageSpeed'] ) {
365
+            if (false === $ao_noptimize && array_key_exists('PageSpeed', $_GET) && 'off' === $_GET['PageSpeed']) {
366 366
                 $ao_noptimize = true;
367 367
             }
368 368
 
369 369
             // And finally allows blocking of autoptimization on your own terms regardless of above decisions.
370
-            $ao_noptimize = (bool) apply_filters( 'autoptimize_filter_noptimize', $ao_noptimize );
370
+            $ao_noptimize = (bool) apply_filters('autoptimize_filter_noptimize', $ao_noptimize);
371 371
 
372 372
             // Check for site being previewed in the Customizer (available since WP 4.0).
373 373
             $is_customize_preview = false;
374
-            if ( function_exists( 'is_customize_preview' ) && is_customize_preview() ) {
374
+            if (function_exists('is_customize_preview') && is_customize_preview()) {
375 375
                 $is_customize_preview = is_customize_preview();
376 376
             }
377 377
 
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
              * while the main query hasn't been ran yet. Thats why we use
383 383
              * AUTOPTIMIZE_INIT_EARLIER in tests.
384 384
              */
385
-            $do_buffering = ( ! is_admin() && ! is_feed() && ! is_embed() && ! $ao_noptimize && ! $is_customize_preview );
385
+            $do_buffering = (!is_admin() && !is_feed() && !is_embed() && !$ao_noptimize && !$is_customize_preview);
386 386
         }
387 387
 
388 388
         return $do_buffering;
@@ -395,25 +395,25 @@  discard block
 block discarded – undo
395 395
      *
396 396
      * @return bool
397 397
      */
398
-    public function is_valid_buffer( $content )
398
+    public function is_valid_buffer($content)
399 399
     {
400 400
         // Defaults to true.
401 401
         $valid = true;
402 402
 
403
-        $has_no_html_tag    = ( false === stripos( $content, '<html' ) );
404
-        $has_xsl_stylesheet = ( false !== stripos( $content, '<xsl:stylesheet' ) || false !== stripos( $content, '<?xml-stylesheet' ) );
405
-        $has_html5_doctype  = ( preg_match( '/^<!DOCTYPE.+html>/i', ltrim( $content ) ) > 0 );
406
-        $has_noptimize_page = ( false !== stripos( $content, '<!-- noptimize-page -->' ) );
403
+        $has_no_html_tag    = (false === stripos($content, '<html'));
404
+        $has_xsl_stylesheet = (false !== stripos($content, '<xsl:stylesheet') || false !== stripos($content, '<?xml-stylesheet'));
405
+        $has_html5_doctype  = (preg_match('/^<!DOCTYPE.+html>/i', ltrim($content)) > 0);
406
+        $has_noptimize_page = (false !== stripos($content, '<!-- noptimize-page -->'));
407 407
 
408
-        if ( $has_no_html_tag ) {
408
+        if ($has_no_html_tag) {
409 409
             // Can't be valid amp markup without an html tag preceding it.
410 410
             $is_amp_markup = false;
411 411
         } else {
412
-            $is_amp_markup = self::is_amp_markup( $content );
412
+            $is_amp_markup = self::is_amp_markup($content);
413 413
         }
414 414
 
415 415
         // If it's not html, or if it's amp or contains xsl stylesheets we don't touch it.
416
-        if ( $has_no_html_tag && ! $has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet || $has_noptimize_page ) {
416
+        if ($has_no_html_tag && !$has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet || $has_noptimize_page) {
417 417
             $valid = false;
418 418
         }
419 419
 
@@ -428,7 +428,7 @@  discard block
 block discarded – undo
428 428
      *
429 429
      * @return bool
430 430
      */
431
-    public static function is_amp_markup( $content )
431
+    public static function is_amp_markup($content)
432 432
     {
433 433
         // Short-circuit if the page is already AMP from the start.
434 434
         if (
@@ -446,9 +446,9 @@  discard block
 block discarded – undo
446 446
         }
447 447
 
448 448
         // Or else short-circuit if the AMP plugin will be processing the output to be an AMP page.
449
-        if ( function_exists( 'amp_is_request' ) ) {
449
+        if (function_exists('amp_is_request')) {
450 450
             return amp_is_request(); // For AMP plugin v2.0+.
451
-        } elseif ( function_exists( 'is_amp_endpoint' ) ) {
451
+        } elseif (function_exists('is_amp_endpoint')) {
452 452
             return is_amp_endpoint(); // For older/other AMP plugins (still supported in 2.0 as an alias).
453 453
         }
454 454
 
@@ -463,10 +463,10 @@  discard block
 block discarded – undo
463 463
      *
464 464
      * @return string
465 465
      */
466
-    public function end_buffering( $content )
466
+    public function end_buffering($content)
467 467
     {
468 468
         // Bail early without modifying anything if we can't handle the content.
469
-        if ( ! $this->is_valid_buffer( $content ) ) {
469
+        if (!$this->is_valid_buffer($content)) {
470 470
             return $content;
471 471
         }
472 472
 
@@ -474,74 +474,74 @@  discard block
 block discarded – undo
474 474
 
475 475
         // Determine what needs to be ran.
476 476
         $classes = array();
477
-        if ( $conf->get( 'autoptimize_js' ) ) {
477
+        if ($conf->get('autoptimize_js')) {
478 478
             $classes[] = 'autoptimizeScripts';
479 479
         }
480
-        if ( $conf->get( 'autoptimize_css' ) ) {
480
+        if ($conf->get('autoptimize_css')) {
481 481
             $classes[] = 'autoptimizeStyles';
482 482
         }
483
-        if ( $conf->get( 'autoptimize_html' ) ) {
483
+        if ($conf->get('autoptimize_html')) {
484 484
             $classes[] = 'autoptimizeHTML';
485 485
         }
486 486
 
487 487
         $classoptions = array(
488 488
             'autoptimizeScripts' => array(
489
-                'aggregate'           => $conf->get( 'autoptimize_js_aggregate' ),
490
-                'defer_not_aggregate' => $conf->get( 'autoptimize_js_defer_not_aggregate' ),
491
-                'justhead'            => $conf->get( 'autoptimize_js_justhead' ),
492
-                'forcehead'           => $conf->get( 'autoptimize_js_forcehead' ),
493
-                'trycatch'            => $conf->get( 'autoptimize_js_trycatch' ),
494
-                'js_exclude'          => $conf->get( 'autoptimize_js_exclude' ),
495
-                'cdn_url'             => $conf->get( 'autoptimize_cdn_url' ),
496
-                'include_inline'      => $conf->get( 'autoptimize_js_include_inline' ),
497
-                'minify_excluded'     => $conf->get( 'autoptimize_minify_excluded' ),
489
+                'aggregate'           => $conf->get('autoptimize_js_aggregate'),
490
+                'defer_not_aggregate' => $conf->get('autoptimize_js_defer_not_aggregate'),
491
+                'justhead'            => $conf->get('autoptimize_js_justhead'),
492
+                'forcehead'           => $conf->get('autoptimize_js_forcehead'),
493
+                'trycatch'            => $conf->get('autoptimize_js_trycatch'),
494
+                'js_exclude'          => $conf->get('autoptimize_js_exclude'),
495
+                'cdn_url'             => $conf->get('autoptimize_cdn_url'),
496
+                'include_inline'      => $conf->get('autoptimize_js_include_inline'),
497
+                'minify_excluded'     => $conf->get('autoptimize_minify_excluded'),
498 498
             ),
499 499
             'autoptimizeStyles'  => array(
500
-                'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
501
-                'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
502
-                'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
503
-                'defer'           => $conf->get( 'autoptimize_css_defer' ),
504
-                'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
505
-                'inline'          => $conf->get( 'autoptimize_css_inline' ),
506
-                'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
507
-                'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
508
-                'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
509
-                'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
510
-                'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
500
+                'aggregate'       => $conf->get('autoptimize_css_aggregate'),
501
+                'justhead'        => $conf->get('autoptimize_css_justhead'),
502
+                'datauris'        => $conf->get('autoptimize_css_datauris'),
503
+                'defer'           => $conf->get('autoptimize_css_defer'),
504
+                'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
505
+                'inline'          => $conf->get('autoptimize_css_inline'),
506
+                'css_exclude'     => $conf->get('autoptimize_css_exclude'),
507
+                'cdn_url'         => $conf->get('autoptimize_cdn_url'),
508
+                'include_inline'  => $conf->get('autoptimize_css_include_inline'),
509
+                'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
510
+                'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
511 511
             ),
512 512
             'autoptimizeHTML'    => array(
513
-                'keepcomments' => $conf->get( 'autoptimize_html_keepcomments' ),
513
+                'keepcomments' => $conf->get('autoptimize_html_keepcomments'),
514 514
             ),
515 515
         );
516 516
 
517
-        $content = apply_filters( 'autoptimize_filter_html_before_minify', $content );
517
+        $content = apply_filters('autoptimize_filter_html_before_minify', $content);
518 518
 
519 519
         // Run the classes!
520
-        foreach ( $classes as $name ) {
521
-            $instance = new $name( $content );
522
-            if ( $instance->read( $classoptions[ $name ] ) ) {
520
+        foreach ($classes as $name) {
521
+            $instance = new $name($content);
522
+            if ($instance->read($classoptions[$name])) {
523 523
                 $instance->minify();
524 524
                 $instance->cache();
525 525
                 $content = $instance->getcontent();
526 526
             }
527
-            unset( $instance );
527
+            unset($instance);
528 528
         }
529 529
 
530
-        $content = apply_filters( 'autoptimize_html_after_minify', $content );
530
+        $content = apply_filters('autoptimize_html_after_minify', $content);
531 531
 
532 532
         return $content;
533 533
     }
534 534
 
535
-    public static function autoptimize_nobuffer_optimize( $html_in ) {
535
+    public static function autoptimize_nobuffer_optimize($html_in) {
536 536
         $html_out = $html_in;
537 537
 
538
-        if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
538
+        if (apply_filters('autoptimize_filter_speedupper', true)) {
539 539
             $ao_speedupper = new autoptimizeSpeedupper();
540 540
         }
541 541
 
542
-        $self = new self( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
543
-        if ( $self->should_buffer() ) {
544
-            $html_out = $self->end_buffering( $html_in );
542
+        $self = new self(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
543
+        if ($self->should_buffer()) {
544
+            $html_out = $self->end_buffering($html_in);
545 545
         }
546 546
         return $html_out;
547 547
     }
@@ -605,45 +605,45 @@  discard block
 block discarded – undo
605 605
             'autoptimize_ccss_unloadccss',
606 606
         );
607 607
 
608
-        if ( ! is_multisite() ) {
609
-            foreach ( $delete_options as $del_opt ) {
610
-                delete_option( $del_opt );
608
+        if (!is_multisite()) {
609
+            foreach ($delete_options as $del_opt) {
610
+                delete_option($del_opt);
611 611
             }
612 612
             autoptimizeMain::remove_cronjobs();
613 613
         } else {
614 614
             global $wpdb;
615
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
615
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
616 616
             $original_blog_id = get_current_blog_id();
617
-            foreach ( $blog_ids as $blog_id ) {
618
-                switch_to_blog( $blog_id );
619
-                foreach ( $delete_options as $del_opt ) {
620
-                    delete_option( $del_opt );
617
+            foreach ($blog_ids as $blog_id) {
618
+                switch_to_blog($blog_id);
619
+                foreach ($delete_options as $del_opt) {
620
+                    delete_option($del_opt);
621 621
                 }
622 622
                 autoptimizeMain::remove_cronjobs();
623 623
             }
624
-            switch_to_blog( $original_blog_id );
624
+            switch_to_blog($original_blog_id);
625 625
         }
626 626
 
627 627
         // Remove AO CCSS cached files and directory.
628
-        $ao_ccss_dir = WP_CONTENT_DIR . '/uploads/ao_ccss/';
629
-        if ( file_exists( $ao_ccss_dir ) && is_dir( $ao_ccss_dir ) ) {
628
+        $ao_ccss_dir = WP_CONTENT_DIR.'/uploads/ao_ccss/';
629
+        if (file_exists($ao_ccss_dir) && is_dir($ao_ccss_dir)) {
630 630
             // fixme: should check for subdirs when in multisite and remove contents of those as well.
631
-            array_map( 'unlink', glob( $ao_ccss_dir . '*.{css,html,json,log,zip,lock}', GLOB_BRACE ) );
632
-            rmdir( $ao_ccss_dir );
631
+            array_map('unlink', glob($ao_ccss_dir.'*.{css,html,json,log,zip,lock}', GLOB_BRACE));
632
+            rmdir($ao_ccss_dir);
633 633
         }
634 634
     }
635 635
 
636 636
     public static function on_deactivation()
637 637
     {
638
-        if ( is_multisite() && is_network_admin() ) {
638
+        if (is_multisite() && is_network_admin()) {
639 639
             global $wpdb;
640
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
640
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
641 641
             $original_blog_id = get_current_blog_id();
642
-            foreach ( $blog_ids as $blog_id ) {
643
-                switch_to_blog( $blog_id );
642
+            foreach ($blog_ids as $blog_id) {
643
+                switch_to_blog($blog_id);
644 644
                 autoptimizeMain::remove_cronjobs();
645 645
             }
646
-            switch_to_blog( $original_blog_id );
646
+            switch_to_blog($original_blog_id);
647 647
         } else {
648 648
             autoptimizeMain::remove_cronjobs();
649 649
         }
@@ -652,9 +652,9 @@  discard block
 block discarded – undo
652 652
 
653 653
     public static function remove_cronjobs() {
654 654
         // Remove scheduled events.
655
-        foreach ( array( 'ao_cachechecker', 'ao_ccss_queue', 'ao_ccss_maintenance' ) as $_event ) {
656
-            if ( wp_get_schedule( $_event ) ) {
657
-                wp_clear_scheduled_hook( $_event );
655
+        foreach (array('ao_cachechecker', 'ao_ccss_queue', 'ao_ccss_maintenance') as $_event) {
656
+            if (wp_get_schedule($_event)) {
657
+                wp_clear_scheduled_hook($_event);
658 658
             }
659 659
         }
660 660
     }
@@ -663,36 +663,36 @@  discard block
 block discarded – undo
663 663
     {
664 664
         echo '<div class="error"><p>';
665 665
         // Translators: %s is the cache directory location.
666
-        printf( __( 'Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize' ), AUTOPTIMIZE_CACHE_DIR );
666
+        printf(__('Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize'), AUTOPTIMIZE_CACHE_DIR);
667 667
         echo '</p></div>';
668 668
     }
669 669
 
670 670
     public static function notice_installed()
671 671
     {
672 672
         echo '<div class="updated"><p>';
673
-        _e( 'Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize' );
673
+        _e('Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize');
674 674
         echo '</p></div>';
675 675
     }
676 676
 
677 677
     public static function notice_updated()
678 678
     {
679 679
         echo '<div class="updated"><p>';
680
-        _e( 'Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize' );
680
+        _e('Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize');
681 681
         echo '</p></div>';
682 682
     }
683 683
 
684 684
     public static function notice_plug_imgopt()
685 685
     {
686 686
         // Translators: the URL added points to the Autopmize Extra settings.
687
-        $_ao_imgopt_plug_notice      = sprintf( __( 'Did you know Autoptimize includes on-the-fly image optimization (with support for WebP and AVIF) and CDN via ShortPixel? Check out the %1$sAutoptimize Image settings%2$s to activate this option.', 'autoptimize' ), '<a href="options-general.php?page=autoptimize_imgopt">', '</a>' );
688
-        $_ao_imgopt_plug_notice      = apply_filters( 'autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice );
687
+        $_ao_imgopt_plug_notice      = sprintf(__('Did you know Autoptimize includes on-the-fly image optimization (with support for WebP and AVIF) and CDN via ShortPixel? Check out the %1$sAutoptimize Image settings%2$s to activate this option.', 'autoptimize'), '<a href="options-general.php?page=autoptimize_imgopt">', '</a>');
688
+        $_ao_imgopt_plug_notice      = apply_filters('autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice);
689 689
         $_ao_imgopt_launch_ok        = autoptimizeImages::launch_ok_wrapper();
690 690
         $_ao_imgopt_plug_dismissible = 'ao-img-opt-plug-123';
691 691
         $_ao_imgopt_active           = autoptimizeImages::imgopt_active();
692
-        $_is_ao_settings_page        = ( str_replace( array( 'autoptimize', 'autoptimize_imgopt', 'ao_critcss', 'autoptimize_extra', 'ao_partners' ), '', $_SERVER['REQUEST_URI'] ) !== $_SERVER['REQUEST_URI'] ? true : false );
692
+        $_is_ao_settings_page        = (str_replace(array('autoptimize', 'autoptimize_imgopt', 'ao_critcss', 'autoptimize_extra', 'ao_partners'), '', $_SERVER['REQUEST_URI']) !== $_SERVER['REQUEST_URI'] ? true : false);
693 693
 
694
-        if ( current_user_can( 'manage_options' ) && $_is_ao_settings_page && '' !== $_ao_imgopt_plug_notice && ! $_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active( $_ao_imgopt_plug_dismissible ) ) {
695
-            echo '<div class="notice notice-info is-dismissible" data-dismissible="' . $_ao_imgopt_plug_dismissible . '"><p>';
694
+        if (current_user_can('manage_options') && $_is_ao_settings_page && '' !== $_ao_imgopt_plug_notice && !$_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active($_ao_imgopt_plug_dismissible)) {
695
+            echo '<div class="notice notice-info is-dismissible" data-dismissible="'.$_ao_imgopt_plug_dismissible.'"><p>';
696 696
             echo $_ao_imgopt_plug_notice;
697 697
             echo '</p></div>';
698 698
         }
Please login to merge, or discard this patch.