Completed
Push — master ( c92350...ab0c5b )
by frank
01:42
created
classes/external/php/jsmin.php 1 patch
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -70,7 +70,7 @@  discard block
 block discarded – undo
70 70
     protected $inputLength = 0;
71 71
     protected $lookAhead   = null;
72 72
     protected $output      = '';
73
-    protected $lastByteOut  = '';
73
+    protected $lastByteOut = '';
74 74
     protected $keptComment = '';
75 75
 
76 76
     /**
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
         }
107 107
 
108 108
         $mbIntEnc = null;
109
-        if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) {
109
+        if (function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload') & 2)) {
110 110
             $mbIntEnc = mb_internal_encoding();
111 111
             mb_internal_encoding('8bit');
112 112
         }
@@ -128,7 +128,7 @@  discard block
 block discarded – undo
128 128
                         && ($this->b === $this->lastByteOut)) {
129 129
                     // Don't delete this space. If we do, the addition/subtraction
130 130
                     // could be parsed as a post-increment
131
-                } elseif (! $this->isAlphaNum($this->b)) {
131
+                } elseif (!$this->isAlphaNum($this->b)) {
132 132
                     $command = self::ACTION_DELETE_A;
133 133
                 }
134 134
             } elseif ($this->a === "\n") {
@@ -139,10 +139,10 @@  discard block
 block discarded – undo
139 139
                     // otherwise mb_strpos will give WARNING
140 140
                 } elseif ($this->b === null
141 141
                           || (false === strpos('{[(+-!~', $this->b)
142
-                              && ! $this->isAlphaNum($this->b))) {
142
+                              && !$this->isAlphaNum($this->b))) {
143 143
                     $command = self::ACTION_DELETE_A;
144 144
                 }
145
-            } elseif (! $this->isAlphaNum($this->a)) {
145
+            } elseif (!$this->isAlphaNum($this->a)) {
146 146
                 if ($this->b === ' '
147 147
                     || ($this->b === "\n"
148 148
                         && (false === strpos('}])+-"\'', $this->a)))) {
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
                 if ($this->a === "'" || $this->a === '"' || $this->a === '`') { // string/template literal
200 200
                     $delimiter = $this->a;
201 201
                     $str = $this->a; // in case needed for exception
202
-                    for(;;) {
202
+                    for (;;) {
203 203
                         $this->output .= $this->a;
204 204
                         $this->lastByteOut = $this->a;
205 205
 
@@ -229,13 +229,13 @@  discard block
 block discarded – undo
229 229
             case self::ACTION_DELETE_A_B: // 3
230 230
                 $this->b = $this->next();
231 231
                 if ($this->b === '/' && $this->isRegexpLiteral()) {
232
-                    $this->output .= $this->a . $this->b;
232
+                    $this->output .= $this->a.$this->b;
233 233
                     $pattern = '/'; // keep entire pattern in case we need to report it in the exception
234
-                    for(;;) {
234
+                    for (;;) {
235 235
                         $this->a = $this->get();
236 236
                         $pattern .= $this->a;
237 237
                         if ($this->a === '[') {
238
-                            for(;;) {
238
+                            for (;;) {
239 239
                                 $this->output .= $this->a;
240 240
                                 $this->a = $this->get();
241 241
                                 $pattern .= $this->a;
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
                                 if ($this->isEOF($this->a)) {
251 251
                                     throw new JSMin_UnterminatedRegExpException(
252 252
                                         "JSMin: Unterminated set in RegExp at byte "
253
-                                            . $this->inputIndex .": {$pattern}");
253
+                                            . $this->inputIndex.": {$pattern}");
254 254
                                 }
255 255
                             }
256 256
                         }
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
 
296 296
         // if the "/" follows a keyword, it must be a regexp, otherwise it's best to assume division
297 297
 
298
-        $subject = $this->output . trim($this->a);
298
+        $subject = $this->output.trim($this->a);
299 299
         if (!preg_match('/(?:case|else|in|return|typeof)$/', $subject, $m)) {
300 300
             // not a keyword
301 301
             return false;
@@ -406,7 +406,7 @@  discard block
 block discarded – undo
406 406
     {
407 407
         $this->get();
408 408
         $comment = '';
409
-        for(;;) {
409
+        for (;;) {
410 410
             $get = $this->get();
411 411
             if ($get === '*') {
412 412
                 if ($this->peek() === '/') { // end of comment reached
@@ -417,7 +417,7 @@  discard block
 block discarded – undo
417 417
                             // don't prepend a newline if two comments right after one another
418 418
                             $this->keptComment = "\n";
419 419
                         }
420
-                        $this->keptComment .= "/*!" . substr($comment, 1) . "*/\n";
420
+                        $this->keptComment .= "/*!".substr($comment, 1)."*/\n";
421 421
                     } else if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
422 422
                         // IE conditional
423 423
                         $this->keptComment .= "/*{$comment}*/";
Please login to merge, or discard this patch.
tests/test-ao.php 1 patch
Spacing   +425 added lines, -425 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,14 +47,14 @@  discard block
 block discarded – undo
47 47
         $conf = autoptimizeConfig::instance();
48 48
 
49 49
         return [
50
-            'aggregate'       => $conf->get( 'autoptimize_js_aggregate' ),
51
-            'justhead'        => $conf->get( 'autoptimize_js_justhead' ),
52
-            'forcehead'       => $conf->get( 'autoptimize_js_forcehead' ),
53
-            'trycatch'        => $conf->get( 'autoptimize_js_trycatch' ),
54
-            'js_exclude'      => $conf->get( 'autoptimize_js_exclude' ),
55
-            'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
56
-            'include_inline'  => $conf->get( 'autoptimize_js_include_inline' ),
57
-            'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
50
+            'aggregate'       => $conf->get('autoptimize_js_aggregate'),
51
+            'justhead'        => $conf->get('autoptimize_js_justhead'),
52
+            'forcehead'       => $conf->get('autoptimize_js_forcehead'),
53
+            'trycatch'        => $conf->get('autoptimize_js_trycatch'),
54
+            'js_exclude'      => $conf->get('autoptimize_js_exclude'),
55
+            'cdn_url'         => $conf->get('autoptimize_cdn_url'),
56
+            'include_inline'  => $conf->get('autoptimize_js_include_inline'),
57
+            'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
58 58
         ];
59 59
     }
60 60
 
@@ -64,35 +64,35 @@  discard block
 block discarded – undo
64 64
     protected function get_urls()
65 65
     {
66 66
         static $site_url = null;
67
-        if ( null === $site_url ) {
67
+        if (null === $site_url) {
68 68
             $site_url = site_url();
69 69
         }
70 70
 
71 71
         static $cdn_url = null;
72
-        if ( null === $cdn_url ) {
73
-            $cdn_url = get_option( 'autoptimize_cdn_url' );
72
+        if (null === $cdn_url) {
73
+            $cdn_url = get_option('autoptimize_cdn_url');
74 74
         }
75 75
 
76 76
         static $imgopt_host = null;
77
-        if ( null === $imgopt_host ) {
77
+        if (null === $imgopt_host) {
78 78
             $optimizer   = new autoptimizeImages();
79
-            $imgopt_host = rtrim( $optimizer->get_imgopt_host(), '/' );
79
+            $imgopt_host = rtrim($optimizer->get_imgopt_host(), '/');
80 80
         }
81 81
 
82 82
         static $urls = [];
83 83
 
84
-        if ( empty( $urls ) ) {
84
+        if (empty($urls)) {
85 85
             $parts = autoptimizeUtils::get_ao_wp_site_url_parts();
86 86
             $urls  = [
87 87
                 'siteurl'    => $site_url,
88
-                'prsiteurl'  => '//' . str_replace( array( 'http://', 'https://' ), '', $site_url ),
89
-                'wwwsiteurl' => $parts['scheme'] . '://www.' . str_replace( 'www.', '', $parts['host'] ),
88
+                'prsiteurl'  => '//'.str_replace(array('http://', 'https://'), '', $site_url),
89
+                'wwwsiteurl' => $parts['scheme'].'://www.'.str_replace('www.', '', $parts['host']),
90 90
                 'cdnurl'     => $cdn_url,
91 91
                 'imgopthost' => $imgopt_host,
92 92
                 'subfolder'  => '',
93 93
             ];
94 94
 
95
-            if ( AO_TEST_SUBFOLDER_INSTALL ) {
95
+            if (AO_TEST_SUBFOLDER_INSTALL) {
96 96
                 $urls['subfolder'] = 'wordpress/';
97 97
             }
98 98
         }
@@ -105,7 +105,7 @@  discard block
 block discarded – undo
105 105
      */
106 106
     public function setUp()
107 107
     {
108
-        $this->ao = new autoptimizeMain( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
108
+        $this->ao = new autoptimizeMain(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
109 109
 
110 110
         parent::setUp();
111 111
     }
@@ -124,8 +124,8 @@  discard block
 block discarded – undo
124 124
             'autoptimize_filter_css_inlinesize',
125 125
             'autoptimize_filter_css_fonts_cdn',
126 126
         );
127
-        foreach ( $filter_tags as $filter_tag ) {
128
-            remove_all_filters( $filter_tag );
127
+        foreach ($filter_tags as $filter_tag) {
128
+            remove_all_filters($filter_tag);
129 129
         }
130 130
 
131 131
         parent::tearDown();
@@ -249,15 +249,15 @@  discard block
 block discarded – undo
249 249
     protected function get_test_markup_output()
250 250
     {
251 251
         $key = 'default';
252
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
252
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
253 253
             $key = 'custom';
254 254
         }
255 255
 
256
-        $csspart = self::$flexible_url_parts_css[ $key ];
257
-        $jspart  = self::$flexible_url_parts_js[ $key ];
256
+        $csspart = self::$flexible_url_parts_css[$key];
257
+        $jspart  = self::$flexible_url_parts_js[$key];
258 258
 
259 259
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
260
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
260
+        if (AO_TEST_SUBFOLDER_INSTALL) {
261 261
             $csshash = '56398de576d59887e88e3011715250e0';
262 262
         }
263 263
 
@@ -316,15 +316,15 @@  discard block
 block discarded – undo
316 316
     protected function get_test_markup_output_ms()
317 317
     {
318 318
         $key = 'multisite';
319
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
319
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
320 320
             $key = 'multisite_custom';
321 321
         }
322 322
 
323
-        $csspart = self::$flexible_url_parts_css[ $key ];
324
-        $jspart  = self::$flexible_url_parts_js[ $key ];
323
+        $csspart = self::$flexible_url_parts_css[$key];
324
+        $jspart  = self::$flexible_url_parts_js[$key];
325 325
 
326 326
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
327
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
327
+        if (AO_TEST_SUBFOLDER_INSTALL) {
328 328
             $csshash = '56398de576d59887e88e3011715250e0';
329 329
         }
330 330
 
@@ -383,15 +383,15 @@  discard block
 block discarded – undo
383 383
     protected function get_test_markup_output_inline_defer()
384 384
     {
385 385
         $key = 'default';
386
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
386
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
387 387
             $key = 'custom';
388 388
         }
389 389
 
390
-        $csspart = self::$flexible_url_parts_css[ $key ];
391
-        $jspart  = self::$flexible_url_parts_js[ $key ];
390
+        $csspart = self::$flexible_url_parts_css[$key];
391
+        $jspart  = self::$flexible_url_parts_js[$key];
392 392
 
393 393
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
394
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
394
+        if (AO_TEST_SUBFOLDER_INSTALL) {
395 395
             $csshash = '56398de576d59887e88e3011715250e0';
396 396
         }
397 397
 
@@ -450,15 +450,15 @@  discard block
 block discarded – undo
450 450
     protected function get_test_markup_output_inline_defer_ms()
451 451
     {
452 452
         $key = 'multisite';
453
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
453
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
454 454
             $key = 'multisite_custom';
455 455
         }
456 456
 
457
-        $csspart = self::$flexible_url_parts_css[ $key ];
458
-        $jspart  = self::$flexible_url_parts_js[ $key ];
457
+        $csspart = self::$flexible_url_parts_css[$key];
458
+        $jspart  = self::$flexible_url_parts_js[$key];
459 459
 
460 460
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
461
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
461
+        if (AO_TEST_SUBFOLDER_INSTALL) {
462 462
             $csshash = '56398de576d59887e88e3011715250e0';
463 463
         }
464 464
 
@@ -517,11 +517,11 @@  discard block
 block discarded – undo
517 517
     /**
518 518
      * @dataProvider provider_test_rewrite_markup_with_cdn
519 519
      */
520
-    function test_rewrite_markup_with_cdn( $input, $expected )
520
+    function test_rewrite_markup_with_cdn($input, $expected)
521 521
     {
522
-        $actual = $this->ao->end_buffering( $input );
522
+        $actual = $this->ao->end_buffering($input);
523 523
 
524
-        $this->assertEquals( $expected, $actual );
524
+        $this->assertEquals($expected, $actual);
525 525
     }
526 526
 
527 527
     public function provider_test_rewrite_markup_with_cdn()
@@ -533,7 +533,7 @@  discard block
 block discarded – undo
533 533
                 $this->get_test_markup(),
534 534
                 // Expected output.
535 535
                 // TODO/FIXME: This seemed like the fastest way to get MS crude test to pass...
536
-                ( is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output() ),
536
+                (is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output()),
537 537
             ),
538 538
 
539 539
         );
@@ -593,12 +593,12 @@  discard block
 block discarded – undo
593 593
 }
594 594
 CSS;
595 595
 
596
-        $instance = new autoptimizeStyles( $css_in );
597
-        $instance->setOption( 'cdn_url', $cdnurl );
596
+        $instance = new autoptimizeStyles($css_in);
597
+        $instance->setOption('cdn_url', $cdnurl);
598 598
 
599
-        $css_actual = $instance->rewrite_assets( $css_in );
599
+        $css_actual = $instance->rewrite_assets($css_in);
600 600
 
601
-        $this->assertEquals( $css_expected, $css_actual );
601
+        $this->assertEquals($css_expected, $css_actual);
602 602
     }
603 603
 
604 604
     public function test_default_cssmin_minifier()
@@ -632,21 +632,21 @@  discard block
 block discarded – undo
632 632
 .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')}
633 633
 CSS;
634 634
 
635
-        $instance = new autoptimizeStyles( $css );
636
-        $minified = $instance->run_minifier_on( $css );
635
+        $instance = new autoptimizeStyles($css);
636
+        $minified = $instance->run_minifier_on($css);
637 637
 
638
-        $this->assertEquals( $expected, $minified );
638
+        $this->assertEquals($expected, $minified);
639 639
     }
640 640
 
641 641
     /**
642 642
      * @dataProvider provider_test_should_aggregate_script_types
643 643
      */
644
-    public function test_should_aggregate_script_types( $input, $expected )
644
+    public function test_should_aggregate_script_types($input, $expected)
645 645
     {
646
-        $instance = new autoptimizeScripts( '' );
647
-        $actual   = $instance->should_aggregate( $input );
646
+        $instance = new autoptimizeScripts('');
647
+        $actual   = $instance->should_aggregate($input);
648 648
 
649
-        $this->assertEquals( $expected, $actual );
649
+        $this->assertEquals($expected, $actual);
650 650
     }
651 651
 
652 652
     public function provider_test_should_aggregate_script_types()
@@ -708,11 +708,11 @@  discard block
 block discarded – undo
708 708
     /**
709 709
      * @dataProvider provider_is_valid_buffer
710 710
      */
711
-    public function test_valid_buffers( $input, $expected )
711
+    public function test_valid_buffers($input, $expected)
712 712
     {
713
-        $actual = $this->ao->is_valid_buffer( $input );
713
+        $actual = $this->ao->is_valid_buffer($input);
714 714
 
715
-        $this->assertEquals( $expected, $actual );
715
+        $this->assertEquals($expected, $actual);
716 716
     }
717 717
 
718 718
     public function provider_is_valid_buffer()
@@ -774,11 +774,11 @@  discard block
 block discarded – undo
774 774
     /**
775 775
      * @dataProvider provider_is_amp_markup
776 776
      */
777
-    public function test_autoptimize_is_amp_markup( $input, $expected )
777
+    public function test_autoptimize_is_amp_markup($input, $expected)
778 778
     {
779
-        $actual = autoptimizeMain::is_amp_markup( $input );
779
+        $actual = autoptimizeMain::is_amp_markup($input);
780 780
 
781
-        $this->assertEquals( $expected, $actual );
781
+        $this->assertEquals($expected, $actual);
782 782
     }
783 783
 
784 784
     public function provider_is_amp_markup()
@@ -809,31 +809,31 @@  discard block
 block discarded – undo
809 809
     public function test_skips_buffering_when_ao_noptimize_filter_is_true()
810 810
     {
811 811
         // True => disable autoptimize.
812
-        add_filter( 'autoptimize_filter_noptimize', '__return_true' );
812
+        add_filter('autoptimize_filter_noptimize', '__return_true');
813 813
 
814 814
         // Buffering should not run due to the above filter.
815 815
         $expected = false;
816
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
816
+        $actual   = $this->ao->should_buffer($doing_tests = true);
817 817
 
818
-        $this->assertEquals( $expected, $actual );
818
+        $this->assertEquals($expected, $actual);
819 819
     }
820 820
 
821 821
     public function test_does_buffering_when_ao_noptimize_filter_is_false()
822 822
     {
823 823
         // False => disable noptimize, aka, run normally (weird, yes...).
824
-        add_filter( 'autoptimize_filter_noptimize', '__return_false' );
824
+        add_filter('autoptimize_filter_noptimize', '__return_false');
825 825
 
826 826
         // Buffering should run because of above.
827 827
         $expected = true;
828
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
828
+        $actual   = $this->ao->should_buffer($doing_tests = true);
829 829
 
830
-        $this->assertEquals( $expected, $actual );
830
+        $this->assertEquals($expected, $actual);
831 831
     }
832 832
 
833 833
     public function test_ignores_ao_noptimize_qs_when_instructed()
834 834
     {
835 835
         // Should skip checking for the qs completely due to filter.
836
-        add_filter( 'autoptimize_filter_honor_qs_noptimize', '__return_false' );
836
+        add_filter('autoptimize_filter_honor_qs_noptimize', '__return_false');
837 837
 
838 838
         /**
839 839
          * The above should then result in the "current" value being `false`
@@ -844,23 +844,23 @@  discard block
 block discarded – undo
844 844
          */
845 845
 
846 846
         $that = $this; // Makes it work on php 5.3!
847
-        add_filter( 'autoptimize_filter_noptimize', function ( $current_value ) use ( $that ) {
847
+        add_filter('autoptimize_filter_noptimize', function($current_value) use ($that) {
848 848
             $expected = false;
849
-            if ( defined( 'DONOTMINIFY' ) && DONOTMINIFY ) {
849
+            if (defined('DONOTMINIFY') && DONOTMINIFY) {
850 850
                 $expected = true;
851 851
             }
852 852
 
853
-            $that->assertEquals( $expected, $current_value );
853
+            $that->assertEquals($expected, $current_value);
854 854
         });
855 855
 
856
-        $this->ao->should_buffer( $doing_tests = true );
856
+        $this->ao->should_buffer($doing_tests = true);
857 857
     }
858 858
 
859 859
     public function test_wpengine_cache_flush()
860 860
     {
861 861
         // Creating a mock so that we can get past class_exists() and method_exists() checks present
862 862
         // in `autoptimizeCache::flushPageCache()`...
863
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
863
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
864 864
                 ->disableOriginalConstructor()->setMethods(
865 865
                     array(
866 866
                         'purge_varnish_cache',
@@ -869,9 +869,9 @@  discard block
 block discarded – undo
869 869
                 ->getMock();
870 870
 
871 871
         $that = $this;
872
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
873
-            $expected_methods = array( 'purge_varnish_cache' );
874
-            $that->assertEquals( $methods, $expected_methods );
872
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
873
+            $expected_methods = array('purge_varnish_cache');
874
+            $that->assertEquals($methods, $expected_methods);
875 875
 
876 876
             return $methods;
877 877
         });
@@ -885,7 +885,7 @@  discard block
 block discarded – undo
885 885
     public function test_wpengine_cache_flush_agressive()
886 886
     {
887 887
         // Creating a mock so that we can get past class_exists() and method_exists() checks `autoptimize_flush_pagecache()`...
888
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
888
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
889 889
                 ->disableOriginalConstructor()->setMethods(
890 890
                     array(
891 891
                         'purge_varnish_cache',
@@ -895,19 +895,19 @@  discard block
 block discarded – undo
895 895
                 )
896 896
                 ->getMock();
897 897
 
898
-        add_filter( 'autoptimize_flush_wpengine_aggressive', function() {
898
+        add_filter('autoptimize_flush_wpengine_aggressive', function() {
899 899
             return true;
900 900
         });
901 901
 
902 902
         $that = $this;
903
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
903
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
904 904
             $expected_methods = array(
905 905
                 'purge_varnish_cache',
906 906
                 'purge_memcached',
907 907
                 'clear_maxcdn_cache',
908 908
             );
909 909
 
910
-            $that->assertEquals( $methods, $expected_methods );
910
+            $that->assertEquals($methods, $expected_methods);
911 911
 
912 912
             return $methods;
913 913
         });
@@ -918,15 +918,15 @@  discard block
 block discarded – undo
918 918
     /**
919 919
      * @dataProvider provider_test_url_replace_cdn
920 920
      */
921
-    public function test_url_replace_cdn( $cdn_url, $input, $expected )
921
+    public function test_url_replace_cdn($cdn_url, $input, $expected)
922 922
     {
923
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
923
+        $mock = $this->getMockBuilder('autoptimizeBase')
924 924
                 ->disableOriginalConstructor()
925 925
                 ->getMockForAbstractClass();
926 926
 
927 927
         $mock->cdn_url = $cdn_url;
928
-        $actual        = $mock->url_replace_cdn( $input );
929
-        $this->assertEquals( $expected, $actual );
928
+        $actual        = $mock->url_replace_cdn($input);
929
+        $this->assertEquals($expected, $actual);
930 930
     }
931 931
 
932 932
     public function provider_test_url_replace_cdn()
@@ -943,13 +943,13 @@  discard block
 block discarded – undo
943 943
                 // CDN base url, url, expected result...
944 944
                 'http://cdn-test.example.org',
945 945
                 '/a.jpg',
946
-                'http://cdn-test.example.org/' . $subfolder . 'a.jpg',
946
+                'http://cdn-test.example.org/'.$subfolder.'a.jpg',
947 947
             ),
948 948
             // Full link with a matching AUTOPTIMIZE_WP_SITE_URL gets properly replaced...
949 949
             array(
950 950
                 'http://cdn-test.example.org',
951
-                $siteurl . '/wp-content/themes/something/example.svg',
952
-                'http://cdn-test.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
951
+                $siteurl.'/wp-content/themes/something/example.svg',
952
+                'http://cdn-test.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
953 953
             ),
954 954
             // Protocol-relative url with a "local" hostname that doesn't match example.org (AUTOPTIMIZE_WP_SITE_URL)...
955 955
             array(
@@ -960,59 +960,59 @@  discard block
 block discarded – undo
960 960
             // www.example.org does not match example.org (AUTOPTIMIZE_WP_SITE_URL) so it's left alone...
961 961
             array(
962 962
                 'http://cdn-test.example.org',
963
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
964
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
963
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
964
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
965 965
             ),
966 966
             // SSL cdn url + host-relative link...
967 967
             array(
968 968
                 'https://cdn.example.org',
969 969
                 '/a.jpg',
970
-                'https://cdn.example.org/' . $subfolder . 'a.jpg',
970
+                'https://cdn.example.org/'.$subfolder.'a.jpg',
971 971
             ),
972 972
             // SSL cdn url + http site url that matches AUTOPTIMIZE_WP_SITE_URL is properly replaced...
973 973
             array(
974 974
                 'https://cdn.example.org',
975
-                $siteurl . '/wp-content/themes/something/example.svg',
976
-                'https://cdn.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
975
+                $siteurl.'/wp-content/themes/something/example.svg',
976
+                'https://cdn.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
977 977
             ),
978 978
             // Protocol-relative cdn url given with protocol relative link that matches AUTOPTIMIZE_WP_SITE_URL host...
979 979
             array(
980 980
                 '//cdn.example.org',
981
-                $protorelativesiteurl . '/something.jpg',
982
-                '//cdn.example.org/' . $subfolder . 'something.jpg',
981
+                $protorelativesiteurl.'/something.jpg',
982
+                '//cdn.example.org/'.$subfolder.'something.jpg',
983 983
             ),
984 984
             // Protocol-relative cdn url given a http link that matches AUTOPTIMIZE_WP_SITE_URL host...
985 985
             array(
986 986
                 '//cdn.example.org',
987
-                $siteurl . '/something.png',
988
-                '//cdn.example.org/' . $subfolder . 'something.png',
987
+                $siteurl.'/something.png',
988
+                '//cdn.example.org/'.$subfolder.'something.png',
989 989
             ),
990 990
             // Protocol-relative cdn url with a host-relative link...
991 991
             array(
992 992
                 '//cdn.example.org',
993 993
                 '/a.jpg',
994
-                '//cdn.example.org/' . $subfolder . 'a.jpg',
994
+                '//cdn.example.org/'.$subfolder.'a.jpg',
995 995
             ),
996 996
             // Testing cdn urls with an explicit port number...
997 997
             array(
998 998
                 'http://cdn.com:8080',
999 999
                 '/a.jpg',
1000
-                'http://cdn.com:8080/' . $subfolder . 'a.jpg',
1000
+                'http://cdn.com:8080/'.$subfolder.'a.jpg',
1001 1001
             ),
1002 1002
             array(
1003 1003
                 '//cdn.com:4433',
1004 1004
                 '/a.jpg',
1005
-                '//cdn.com:4433/' . $subfolder . 'a.jpg',
1005
+                '//cdn.com:4433/'.$subfolder.'a.jpg',
1006 1006
             ),
1007 1007
             array(
1008 1008
                 '//cdn.com:4433',
1009
-                $siteurl . '/something.jpg',
1010
-                '//cdn.com:4433/' . $subfolder . 'something.jpg',
1009
+                $siteurl.'/something.jpg',
1010
+                '//cdn.com:4433/'.$subfolder.'something.jpg',
1011 1011
             ),
1012 1012
             array(
1013 1013
                 '//cdn.com:1234',
1014
-                $protorelativesiteurl . '/something.jpg',
1015
-                '//cdn.com:1234/' . $subfolder . 'something.jpg',
1014
+                $protorelativesiteurl.'/something.jpg',
1015
+                '//cdn.com:1234/'.$subfolder.'something.jpg',
1016 1016
             ),
1017 1017
             // Relative links should not be touched by url_replace_cdn()...
1018 1018
             array(
@@ -1037,8 +1037,8 @@  discard block
 block discarded – undo
1037 1037
             // even though they are really strange...
1038 1038
             array(
1039 1039
                 $siteurl, // example.org or http://localhost or http://localhost/wordpress
1040
-                $siteurl . '/something.jpg',
1041
-                $siteurl . '/something.jpg',
1040
+                $siteurl.'/something.jpg',
1041
+                $siteurl.'/something.jpg',
1042 1042
             ),
1043 1043
             // These shouldn't really be changed, or even if replacements do
1044 1044
             // happen, they shouldn't be destructive...
@@ -1077,31 +1077,31 @@  discard block
 block discarded – undo
1077 1077
         $test_link = '/a.jpg';
1078 1078
         $cdn_url   = '//cdn.example.org';
1079 1079
 
1080
-        $with_ssl = function( $cdn ) {
1080
+        $with_ssl = function($cdn) {
1081 1081
             return '';
1082 1082
         };
1083 1083
         $expected_with_ssl = '/a.jpg';
1084 1084
 
1085
-        $without_ssl = function( $cdn ) {
1085
+        $without_ssl = function($cdn) {
1086 1086
             return $cdn;
1087 1087
         };
1088
-        $expected_without_ssl = '//cdn.example.org/' . $sub . 'a.jpg';
1088
+        $expected_without_ssl = '//cdn.example.org/'.$sub.'a.jpg';
1089 1089
 
1090 1090
         // With a filter that returns something considered "empty", cdn replacement shouldn't occur...
1091
-        add_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1092
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
1091
+        add_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1092
+        $mock = $this->getMockBuilder('autoptimizeBase')
1093 1093
                 ->disableOriginalConstructor()
1094 1094
                 ->getMockForAbstractClass();
1095 1095
 
1096 1096
         $mock->cdn_url   = $cdn_url;
1097
-        $actual_with_ssl = $mock->url_replace_cdn( $test_link );
1098
-        $this->assertEquals( $expected_with_ssl, $actual_with_ssl );
1099
-        remove_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1097
+        $actual_with_ssl = $mock->url_replace_cdn($test_link);
1098
+        $this->assertEquals($expected_with_ssl, $actual_with_ssl);
1099
+        remove_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1100 1100
 
1101 1101
         // With a filter that returns an actual cdn url, cdn replacement should occur.
1102
-        add_filter( 'autoptimize_filter_base_cdnurl', $without_ssl );
1103
-        $actual_without_ssl = $mock->url_replace_cdn( $test_link );
1104
-        $this->assertEquals( $expected_without_ssl, $actual_without_ssl );
1102
+        add_filter('autoptimize_filter_base_cdnurl', $without_ssl);
1103
+        $actual_without_ssl = $mock->url_replace_cdn($test_link);
1104
+        $this->assertEquals($expected_without_ssl, $actual_without_ssl);
1105 1105
     }
1106 1106
 
1107 1107
     public function provider_cssmin_issues()
@@ -1140,11 +1140,11 @@  discard block
 block discarded – undo
1140 1140
     /**
1141 1141
      * @dataProvider provider_cssmin_issues
1142 1142
      */
1143
-    public function test_cssmin_issues( $input, $expected )
1143
+    public function test_cssmin_issues($input, $expected)
1144 1144
     {
1145
-        $minifier = new autoptimizeCSSmin( false ); // No need to raise limits for now.
1146
-        $actual   = $minifier->run( $input );
1147
-        $this->assertEquals( $expected, $actual );
1145
+        $minifier = new autoptimizeCSSmin(false); // No need to raise limits for now.
1146
+        $actual   = $minifier->run($input);
1147
+        $this->assertEquals($expected, $actual);
1148 1148
     }
1149 1149
 
1150 1150
     public function provider_getpath()
@@ -1169,7 +1169,7 @@  discard block
 block discarded – undo
1169 1169
             // This file comes with core, so should exist...
1170 1170
             array(
1171 1171
                 '/wp-includes/js/jquery/jquery.js',
1172
-                WP_ROOT_DIR . '/wp-includes/js/jquery/jquery.js',
1172
+                WP_ROOT_DIR.'/wp-includes/js/jquery/jquery.js',
1173 1173
             ),
1174 1174
             // Empty $url should return false.
1175 1175
             array(
@@ -1194,12 +1194,12 @@  discard block
 block discarded – undo
1194 1194
     /**
1195 1195
      * @dataProvider provider_getpath
1196 1196
      */
1197
-    public function test_getpath( $input, $expected )
1197
+    public function test_getpath($input, $expected)
1198 1198
     {
1199
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )->disableOriginalConstructor()->getMockForAbstractClass();
1199
+        $mock = $this->getMockBuilder('autoptimizeBase')->disableOriginalConstructor()->getMockForAbstractClass();
1200 1200
 
1201
-        $actual = $mock->getpath( $input );
1202
-        $this->assertEquals( $expected, $actual );
1201
+        $actual = $mock->getpath($input);
1202
+        $this->assertEquals($expected, $actual);
1203 1203
     }
1204 1204
 
1205 1205
     /**
@@ -1213,7 +1213,7 @@  discard block
 block discarded – undo
1213 1213
 
1214 1214
         $protorelativesiteurl = $urls['prsiteurl'];
1215 1215
 
1216
-        $css_orig     = <<<CSS
1216
+        $css_orig = <<<CSS
1217 1217
 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")}
1218 1218
 section.clipped.clippedTop {clip-path:url("#clipPolygonTop")}
1219 1219
 section.clipped.clippedBottom {clip-path:url("#clipPolygonBottom")}
@@ -1226,13 +1226,13 @@  discard block
 block discarded – undo
1226 1226
 .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);}
1227 1227
 CSS;
1228 1228
 
1229
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1230
-        $this->assertEquals( $css_expected, $fixurls_result );
1229
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1230
+        $this->assertEquals($css_expected, $fixurls_result);
1231 1231
     }
1232 1232
 
1233 1233
     public function test_background_datauri_sprites_with_fixurls()
1234 1234
     {
1235
-        $css_orig     = <<<CSS
1235
+        $css_orig = <<<CSS
1236 1236
 .shadow { background:url(img/1x1.png) top center; }
1237 1237
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1238 1238
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1284,27 +1284,27 @@  discard block
 block discarded – undo
1284 1284
 CSS;
1285 1285
 
1286 1286
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1287
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1287
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1288 1288
             return true;
1289
-        }, 10, 2 );
1289
+        }, 10, 2);
1290 1290
 
1291 1291
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1292
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1292
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1293 1293
             $head = 'data:image/png;base64,';
1294 1294
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1295 1295
 
1296
-            $result['full']       = $head . $data;
1296
+            $result['full']       = $head.$data;
1297 1297
             $result['base64data'] = $data;
1298 1298
             return $result;
1299
-        }, 10, 2 );
1299
+        }, 10, 2);
1300 1300
 
1301
-        $instance = new autoptimizeStyles( $css_orig );
1302
-        $instance->setOption( 'datauris', true );
1301
+        $instance = new autoptimizeStyles($css_orig);
1302
+        $instance->setOption('datauris', true);
1303 1303
 
1304
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1305
-        $css_actual     = $instance->rewrite_assets( $fixurls_result );
1304
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1305
+        $css_actual     = $instance->rewrite_assets($fixurls_result);
1306 1306
 
1307
-        $this->assertEquals( $css_expected, $css_actual );
1307
+        $this->assertEquals($css_expected, $css_actual);
1308 1308
     }
1309 1309
 
1310 1310
     /**
@@ -1324,7 +1324,7 @@  discard block
 block discarded – undo
1324 1324
      */
1325 1325
     public function test_background_datauri_sprites_without_fixurls()
1326 1326
     {
1327
-        $css_orig     = <<<CSS
1327
+        $css_orig = <<<CSS
1328 1328
 .shadow { background:url(img/1x1.png) top center; }
1329 1329
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1330 1330
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1368,24 +1368,24 @@  discard block
 block discarded – undo
1368 1368
 CSS;
1369 1369
 
1370 1370
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1371
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1371
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1372 1372
             return true;
1373
-        }, 10, 2 );
1373
+        }, 10, 2);
1374 1374
 
1375 1375
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1376
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1376
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1377 1377
             $head = 'data:image/png;base64,';
1378 1378
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1379 1379
 
1380
-            $result['full']       = $head . $data;
1380
+            $result['full']       = $head.$data;
1381 1381
             $result['base64data'] = $data;
1382 1382
             return $result;
1383
-        }, 10, 2 );
1383
+        }, 10, 2);
1384 1384
 
1385
-        $instance = new autoptimizeStyles( $css_orig );
1386
-        $instance->setOption( 'datauris', true );
1387
-        $css_actual = $instance->rewrite_assets( $css_orig );
1388
-        $this->assertEquals( $css_expected, $css_actual );
1385
+        $instance = new autoptimizeStyles($css_orig);
1386
+        $instance->setOption('datauris', true);
1387
+        $css_actual = $instance->rewrite_assets($css_orig);
1388
+        $this->assertEquals($css_expected, $css_actual);
1389 1389
     }
1390 1390
 
1391 1391
     /**
@@ -1505,12 +1505,12 @@  discard block
 block discarded – undo
1505 1505
 CSS;
1506 1506
 
1507 1507
         // Test with fonts pointed to the CDN + cdn option is set.
1508
-        add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );
1509
-        $instance = new autoptimizeStyles( $css_in );
1510
-        $instance->setOption( 'cdn_url', $cdnurl );
1511
-        $css_actual_fonts_cdn = $instance->rewrite_assets( $css_in );
1508
+        add_filter('autoptimize_filter_css_fonts_cdn', '__return_true');
1509
+        $instance = new autoptimizeStyles($css_in);
1510
+        $instance->setOption('cdn_url', $cdnurl);
1511
+        $css_actual_fonts_cdn = $instance->rewrite_assets($css_in);
1512 1512
 
1513
-        $this->assertEquals( $css_expected_fonts_cdn, $css_actual_fonts_cdn );
1513
+        $this->assertEquals($css_expected_fonts_cdn, $css_actual_fonts_cdn);
1514 1514
     }
1515 1515
 
1516 1516
     /**
@@ -1626,10 +1626,10 @@  discard block
 block discarded – undo
1626 1626
 }
1627 1627
 CSS;
1628 1628
         // Test without moving fonts to CDN, but cdn option is set.
1629
-        $instance = new autoptimizeStyles( $css_in );
1630
-        $instance->setOption( 'cdn_url', $urls['cdnurl'] );
1631
-        $css_actual = $instance->rewrite_assets( $css_in );
1632
-        $this->assertEquals( $css_expected, $css_actual );
1629
+        $instance = new autoptimizeStyles($css_in);
1630
+        $instance->setOption('cdn_url', $urls['cdnurl']);
1631
+        $css_actual = $instance->rewrite_assets($css_in);
1632
+        $this->assertEquals($css_expected, $css_actual);
1633 1633
     }
1634 1634
 
1635 1635
     public function test_assets_regex_replaces_multi_bg_images()
@@ -1650,16 +1650,16 @@  discard block
 block discarded – undo
1650 1650
 }
1651 1651
 CSS;
1652 1652
 
1653
-        $instance = new autoptimizeStyles( $in );
1654
-        $instance->setOption( 'cdn_url', $cdnurl );
1655
-        $actual = $instance->rewrite_assets( $in );
1653
+        $instance = new autoptimizeStyles($in);
1654
+        $instance->setOption('cdn_url', $cdnurl);
1655
+        $actual = $instance->rewrite_assets($in);
1656 1656
 
1657
-        $this->assertEquals( $expected, $actual );
1657
+        $this->assertEquals($expected, $actual);
1658 1658
     }
1659 1659
 
1660 1660
     public function test_at_supports_spacing_issue_110()
1661 1661
     {
1662
-        $in       = <<<CSS
1662
+        $in = <<<CSS
1663 1663
 @supports (-webkit-filter: blur(3px)) or (filter: blur(3px)) {
1664 1664
     .blur {
1665 1665
         filter:blur(3px);
@@ -1673,10 +1673,10 @@  discard block
 block discarded – undo
1673 1673
 @supports (-webkit-filter:blur(3px)) or (filter:blur(3px)){.blur{filter:blur(3px)}}@supports((position:-webkit-sticky) or (position:sticky)){.sticky{position:sticky}}
1674 1674
 CSS;
1675 1675
 
1676
-        $instance = new autoptimizeStyles( $in );
1677
-        $actual   = $instance->run_minifier_on( $in );
1676
+        $instance = new autoptimizeStyles($in);
1677
+        $actual   = $instance->run_minifier_on($in);
1678 1678
 
1679
-        $this->assertEquals( $expected, $actual );
1679
+        $this->assertEquals($expected, $actual);
1680 1680
     }
1681 1681
 
1682 1682
     public function test_css_import_semicolon_url_issue_122()
@@ -1692,18 +1692,18 @@  discard block
 block discarded – undo
1692 1692
 </style>
1693 1693
 HTML;
1694 1694
 
1695
-        $expected = '<style type="text/css" 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-->';
1695
+        $expected = '<style type="text/css" 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-->';
1696 1696
 
1697 1697
         $options = [
1698 1698
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1699 1699
         ];
1700 1700
 
1701
-        $instance = new autoptimizeStyles( $in );
1702
-        $instance->read( $options['autoptimizeStyles'] );
1701
+        $instance = new autoptimizeStyles($in);
1702
+        $instance->read($options['autoptimizeStyles']);
1703 1703
         $instance->minify();
1704 1704
         $instance->cache();
1705 1705
         $actual = $instance->getcontent();
1706
-        $this->assertEquals( $expected, $actual );
1706
+        $this->assertEquals($expected, $actual);
1707 1707
     }
1708 1708
 
1709 1709
     public function test_fixurls_with_at_imports_and_media_queries()
@@ -1713,10 +1713,10 @@  discard block
 block discarded – undo
1713 1713
         $subfolder = $urls['subfolder'];
1714 1714
 
1715 1715
         $in  = '@import "foo.css"; @import "bar.css" (orientation:landscape);';
1716
-        $exp = '@import url(' . $prsiteurl . '/wp-content/themes/my-theme/foo.css); @import url(' . $prsiteurl . '/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1716
+        $exp = '@import url('.$prsiteurl.'/wp-content/themes/my-theme/foo.css); @import url('.$prsiteurl.'/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1717 1717
 
1718
-        $actual = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $in );
1719
-        $this->assertEquals( $exp, $actual );
1718
+        $actual = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $in);
1719
+        $this->assertEquals($exp, $actual);
1720 1720
     }
1721 1721
 
1722 1722
     public function test_aostyles_at_imports_with_media_queries()
@@ -1731,43 +1731,43 @@  discard block
 block discarded – undo
1731 1731
 </style>
1732 1732
 HTML;
1733 1733
 
1734
-        $expected = '<style type="text/css" 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-->';
1734
+        $expected = '<style type="text/css" 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-->';
1735 1735
 
1736 1736
         $options = [
1737 1737
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1738 1738
         ];
1739 1739
 
1740
-        $instance = new autoptimizeStyles( $in );
1741
-        $instance->read( $options['autoptimizeStyles'] );
1740
+        $instance = new autoptimizeStyles($in);
1741
+        $instance->read($options['autoptimizeStyles']);
1742 1742
         $instance->minify();
1743 1743
         $instance->cache();
1744 1744
 
1745 1745
         $actual = $instance->getcontent();
1746
-        $this->assertEquals( $expected, $actual );
1746
+        $this->assertEquals($expected, $actual);
1747 1747
     }
1748 1748
 
1749 1749
     public function test_cache_size_checker_hooked_by_default()
1750 1750
     {
1751
-        $this->assertNotEmpty( autoptimizeCacheChecker::SCHEDULE_HOOK );
1751
+        $this->assertNotEmpty(autoptimizeCacheChecker::SCHEDULE_HOOK);
1752 1752
 
1753 1753
         // No schedule, because it's only added when is_admin() is true.
1754
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1754
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1755 1755
 
1756 1756
         // Proving that setup() sets the schedule as needed.
1757 1757
         $checker = new autoptimizeCacheChecker();
1758 1758
         $checker->setup();
1759
-        $this->assertEquals( 'twicedaily', wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1759
+        $this->assertEquals('twicedaily', wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1760 1760
     }
1761 1761
 
1762 1762
     public function test_cache_size_checker_disabled_with_filter()
1763 1763
     {
1764
-        add_filter( 'autoptimize_filter_cachecheck_do', '__return_false' );
1764
+        add_filter('autoptimize_filter_cachecheck_do', '__return_false');
1765 1765
 
1766 1766
         $checker = new autoptimizeCacheChecker();
1767 1767
         $checker->setup();
1768
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1768
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1769 1769
 
1770
-        remove_all_filters( 'autoptimize_filter_cachecheck_do' );
1770
+        remove_all_filters('autoptimize_filter_cachecheck_do');
1771 1771
     }
1772 1772
 
1773 1773
     public function test_is_start_buffering_hooked_properly()
@@ -1780,12 +1780,12 @@  discard block
 block discarded – undo
1780 1780
          * https://www.theaveragedev.com/mocking-constants-in-tests/.
1781 1781
          */
1782 1782
 
1783
-        if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
1783
+        if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
1784 1784
             $this->assertEquals(
1785 1785
                 autoptimizeMain::INIT_EARLIER_PRIORITY,
1786
-                has_action( 'init', array( $instance, 'start_buffering' ) )
1786
+                has_action('init', array($instance, 'start_buffering'))
1787 1787
             );
1788
-            $this->assertTrue( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) );
1788
+            $this->assertTrue(!defined('AUTOPTIMIZE_HOOK_INTO'));
1789 1789
         }
1790 1790
 
1791 1791
         /*
@@ -1802,18 +1802,18 @@  discard block
 block discarded – undo
1802 1802
 
1803 1803
     public function test_inline_and_defer_markup()
1804 1804
     {
1805
-        add_filter( 'autoptimize_filter_css_defer', '__return_true' );
1806
-        add_filter( 'autoptimize_filter_css_defer_inline', '__return_true' );
1805
+        add_filter('autoptimize_filter_css_defer', '__return_true');
1806
+        add_filter('autoptimize_filter_css_defer_inline', '__return_true');
1807 1807
 
1808
-        $actual = $this->ao->end_buffering( $this->get_test_markup() );
1809
-        if ( is_multisite() ) {
1810
-            $this->assertEquals( $this->get_test_markup_output_inline_defer_ms(), $actual );
1808
+        $actual = $this->ao->end_buffering($this->get_test_markup());
1809
+        if (is_multisite()) {
1810
+            $this->assertEquals($this->get_test_markup_output_inline_defer_ms(), $actual);
1811 1811
         } else {
1812
-            $this->assertEquals( $this->get_test_markup_output_inline_defer(), $actual );
1812
+            $this->assertEquals($this->get_test_markup_output_inline_defer(), $actual);
1813 1813
         }
1814 1814
 
1815
-        remove_all_filters( 'autoptimize_filter_css_defer' );
1816
-        remove_all_filters( 'autoptimize_filter_css_defer_inline' );
1815
+        remove_all_filters('autoptimize_filter_css_defer');
1816
+        remove_all_filters('autoptimize_filter_css_defer_inline');
1817 1817
     }
1818 1818
 
1819 1819
     public function test_js_aggregation_decision_and_dontaggregate_filter()
@@ -1821,47 +1821,47 @@  discard block
 block discarded – undo
1821 1821
         $opts = $this->getAoScriptsDefaultOptions();
1822 1822
 
1823 1823
         // Aggregating: true by default.
1824
-        $scripts = new autoptimizeScripts( '' );
1825
-        $scripts->read( $opts );
1826
-        $this->assertTrue( $scripts->aggregating() );
1824
+        $scripts = new autoptimizeScripts('');
1825
+        $scripts->read($opts);
1826
+        $this->assertTrue($scripts->aggregating());
1827 1827
 
1828 1828
         // Aggregating: option=true (dontaggregate=false by default).
1829 1829
         $opts['aggregate'] = true;
1830
-        $scripts           = new autoptimizeScripts( '' );
1831
-        $scripts->read( $opts );
1832
-        $this->assertTrue( $scripts->aggregating() );
1830
+        $scripts           = new autoptimizeScripts('');
1831
+        $scripts->read($opts);
1832
+        $this->assertTrue($scripts->aggregating());
1833 1833
 
1834 1834
         // Aggregating: option=true, dontaggregate=false explicit.
1835 1835
         $opts['aggregate'] = true;
1836
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1837
-        $scripts = new autoptimizeScripts( '' );
1838
-        $scripts->read( $opts );
1839
-        $this->assertTrue( $scripts->aggregating() );
1840
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1836
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1837
+        $scripts = new autoptimizeScripts('');
1838
+        $scripts->read($opts);
1839
+        $this->assertTrue($scripts->aggregating());
1840
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1841 1841
 
1842 1842
         // Not aggregating: option=true, dontaggregate=true.
1843 1843
         $opts['aggregate'] = true;
1844
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1845
-        $scripts = new autoptimizeScripts( '' );
1846
-        $scripts->read( $opts );
1847
-        $this->assertFalse( $scripts->aggregating() );
1848
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1844
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1845
+        $scripts = new autoptimizeScripts('');
1846
+        $scripts->read($opts);
1847
+        $this->assertFalse($scripts->aggregating());
1848
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1849 1849
 
1850 1850
         // Not aggregating: option=false, dontaggregate=false.
1851 1851
         $opts['aggregate'] = false;
1852
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1853
-        $scripts = new autoptimizeScripts( '' );
1854
-        $scripts->read( $opts );
1855
-        $this->assertFalse( $scripts->aggregating() );
1856
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1852
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1853
+        $scripts = new autoptimizeScripts('');
1854
+        $scripts->read($opts);
1855
+        $this->assertFalse($scripts->aggregating());
1856
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1857 1857
 
1858 1858
         // Not aggregating: option=false, dontaggregate=true.
1859 1859
         $opts['aggregate'] = false;
1860
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1861
-        $scripts = new autoptimizeScripts( '' );
1862
-        $scripts->read( $opts );
1863
-        $this->assertFalse( $scripts->aggregating() );
1864
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1860
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1861
+        $scripts = new autoptimizeScripts('');
1862
+        $scripts->read($opts);
1863
+        $this->assertFalse($scripts->aggregating());
1864
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1865 1865
     }
1866 1866
 
1867 1867
     public function test_css_aggregation_decision_and_dontaggregate_filter()
@@ -1869,78 +1869,78 @@  discard block
 block discarded – undo
1869 1869
         $opts = $this->getAoStylesDefaultOptions();
1870 1870
 
1871 1871
         // Aggregating: true by default.
1872
-        $styles = new autoptimizeStyles( '' );
1873
-        $this->assertTrue( $styles->aggregating() );
1872
+        $styles = new autoptimizeStyles('');
1873
+        $this->assertTrue($styles->aggregating());
1874 1874
 
1875 1875
         // Aggregating: option=true (dontaggregate=false by default).
1876 1876
         $opts['aggregate'] = true;
1877
-        $styles            = new autoptimizeStyles( '' );
1878
-        $styles->read( $opts );
1879
-        $this->assertTrue( $styles->aggregating() );
1877
+        $styles            = new autoptimizeStyles('');
1878
+        $styles->read($opts);
1879
+        $this->assertTrue($styles->aggregating());
1880 1880
 
1881 1881
         // Aggregating: option=true, dontaggregate=false explicit.
1882 1882
         $opts['aggregate'] = true;
1883
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1884
-        $styles = new autoptimizeStyles( '' );
1885
-        $styles->read( $opts );
1886
-        $this->assertTrue( $styles->aggregating() );
1887
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1883
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1884
+        $styles = new autoptimizeStyles('');
1885
+        $styles->read($opts);
1886
+        $this->assertTrue($styles->aggregating());
1887
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1888 1888
 
1889 1889
         // Not aggregating: option=true, dontaggregate=true.
1890 1890
         $opts['aggregate'] = true;
1891
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1892
-        $styles = new autoptimizeStyles( '' );
1893
-        $styles->read( $opts );
1894
-        $this->assertFalse( $styles->aggregating() );
1895
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1891
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1892
+        $styles = new autoptimizeStyles('');
1893
+        $styles->read($opts);
1894
+        $this->assertFalse($styles->aggregating());
1895
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1896 1896
 
1897 1897
         // Not aggregating: option=false, dontaggregate=false.
1898 1898
         $opts['aggregate'] = false;
1899
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1900
-        $styles = new autoptimizeStyles( '' );
1901
-        $styles->read( $opts );
1902
-        $this->assertFalse( $styles->aggregating() );
1903
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1899
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1900
+        $styles = new autoptimizeStyles('');
1901
+        $styles->read($opts);
1902
+        $this->assertFalse($styles->aggregating());
1903
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1904 1904
 
1905 1905
         // Not aggregating: option=false, dontaggregate=true.
1906 1906
         $opts['aggregate'] = false;
1907
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1908
-        $styles = new autoptimizeStyles( '' );
1909
-        $styles->read( $opts );
1910
-        $this->assertFalse( $styles->aggregating() );
1911
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1907
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1908
+        $styles = new autoptimizeStyles('');
1909
+        $styles->read($opts);
1910
+        $this->assertFalse($styles->aggregating());
1911
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1912 1912
     }
1913 1913
 
1914 1914
     public function test_css_minify_single_with_cdning()
1915 1915
     {
1916
-        $pathname = dirname( __FILE__ ) . '/fixtures/minify-single.css';
1916
+        $pathname = dirname(__FILE__).'/fixtures/minify-single.css';
1917 1917
         $opts     = $this->getAoStylesDefaultOptions();
1918
-        $styles   = new autoptimizeStyles( '' );
1919
-        $styles->read( $opts );
1918
+        $styles   = new autoptimizeStyles('');
1919
+        $styles->read($opts);
1920 1920
 
1921
-        $url = $styles->minify_single( $pathname, $cache_miss = true );
1921
+        $url = $styles->minify_single($pathname, $cache_miss = true);
1922 1922
 
1923 1923
         // Minified url filename + its pointed to cdn.
1924
-        $this->assertContains( AUTOPTIMIZE_CACHE_CHILD_DIR, $url );
1925
-        $this->assertContains( '/autoptimize_single_', $url );
1926
-        $this->assertContains( $styles->cdn_url, $url );
1924
+        $this->assertContains(AUTOPTIMIZE_CACHE_CHILD_DIR, $url);
1925
+        $this->assertContains('/autoptimize_single_', $url);
1926
+        $this->assertContains($styles->cdn_url, $url);
1927 1927
 
1928 1928
         // Actual minified css contents are minified and cdn-ed.
1929
-        $path     = $styles->getpath( $url );
1930
-        $contents = file_get_contents( $path );
1931
-        $this->assertContains( $styles->cdn_url, $contents );
1932
-        $this->assertContains( '.bg{background:url(' . $styles->cdn_url, $contents );
1929
+        $path     = $styles->getpath($url);
1930
+        $contents = file_get_contents($path);
1931
+        $this->assertContains($styles->cdn_url, $contents);
1932
+        $this->assertContains('.bg{background:url('.$styles->cdn_url, $contents);
1933 1933
     }
1934 1934
 
1935 1935
     public function test_ao_partners_instantiation_without_explicit_include()
1936 1936
     {
1937 1937
         $partners = new autoptimizePartners();
1938
-        $this->assertTrue( $partners instanceof autoptimizePartners );
1938
+        $this->assertTrue($partners instanceof autoptimizePartners);
1939 1939
     }
1940 1940
 
1941 1941
     public function test_html_minify_keep_html_comments_inside_script_blocks()
1942 1942
     {
1943
-        $markup   = <<<MARKUP
1943
+        $markup = <<<MARKUP
1944 1944
 <script>
1945 1945
 <!-- End Support AJAX add to cart -->
1946 1946
 var a = "b";
@@ -1970,23 +1970,23 @@  discard block
 block discarded – undo
1970 1970
             ],
1971 1971
         ];
1972 1972
 
1973
-        $instance = new autoptimizeHTML( $markup );
1974
-        $instance->read( $options['autoptimizeHTML'] );
1973
+        $instance = new autoptimizeHTML($markup);
1974
+        $instance->read($options['autoptimizeHTML']);
1975 1975
         $instance->minify();
1976 1976
         $actual = $instance->getcontent();
1977
-        $this->assertEquals( $expected, $actual );
1977
+        $this->assertEquals($expected, $actual);
1978 1978
 
1979
-        $instance = new autoptimizeHTML( $markup2 );
1980
-        $instance->read( $options['autoptimizeHTML'] );
1979
+        $instance = new autoptimizeHTML($markup2);
1980
+        $instance->read($options['autoptimizeHTML']);
1981 1981
         $instance->minify();
1982 1982
         $actual2 = $instance->getcontent();
1983
-        $this->assertEquals( $expected2, $actual2 );
1983
+        $this->assertEquals($expected2, $actual2);
1984 1984
     }
1985 1985
 
1986 1986
     public function test_html_minify_remove_html_comments_inside_script_blocks()
1987 1987
     {
1988 1988
         // Default case, html comments removed (keepcomments = false).
1989
-        $markup1   = <<<MARKUP
1989
+        $markup1 = <<<MARKUP
1990 1990
 <script>
1991 1991
 var a = "b";
1992 1992
 <!-- End Support AJAX add to cart -->
@@ -1997,7 +1997,7 @@  discard block
 block discarded – undo
1997 1997
 <!-- End Support AJAX add to cart</script>
1998 1998
 MARKUP;
1999 1999
 
2000
-        $markup2   = <<<MARKUP
2000
+        $markup2 = <<<MARKUP
2001 2001
 <script>
2002 2002
 <!-- End Support AJAX add to cart -->
2003 2003
 var a = "b";
@@ -2014,17 +2014,17 @@  discard block
 block discarded – undo
2014 2014
             ],
2015 2015
         ];
2016 2016
 
2017
-        $instance = new autoptimizeHTML( $markup1 );
2018
-        $instance->read( $options['autoptimizeHTML'] );
2017
+        $instance = new autoptimizeHTML($markup1);
2018
+        $instance->read($options['autoptimizeHTML']);
2019 2019
         $instance->minify();
2020 2020
         $actual = $instance->getcontent();
2021
-        $this->assertEquals( $expected1, $actual );
2021
+        $this->assertEquals($expected1, $actual);
2022 2022
 
2023
-        $instance = new autoptimizeHTML( $markup2 );
2024
-        $instance->read( $options['autoptimizeHTML'] );
2023
+        $instance = new autoptimizeHTML($markup2);
2024
+        $instance->read($options['autoptimizeHTML']);
2025 2025
         $instance->minify();
2026 2026
         $actual2 = $instance->getcontent();
2027
-        $this->assertEquals( $expected2, $actual2 );
2027
+        $this->assertEquals($expected2, $actual2);
2028 2028
     }
2029 2029
 
2030 2030
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern()
@@ -2048,11 +2048,11 @@  discard block
 block discarded – undo
2048 2048
             ],
2049 2049
         ];
2050 2050
 
2051
-        $instance = new autoptimizeHTML( $markup );
2052
-        $instance->read( $options['autoptimizeHTML'] );
2051
+        $instance = new autoptimizeHTML($markup);
2052
+        $instance->read($options['autoptimizeHTML']);
2053 2053
         $instance->minify();
2054 2054
         $actual = $instance->getcontent();
2055
-        $this->assertEquals( $expected, $actual );
2055
+        $this->assertEquals($expected, $actual);
2056 2056
     }
2057 2057
 
2058 2058
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern_untouched()
@@ -2077,49 +2077,49 @@  discard block
 block discarded – undo
2077 2077
             ],
2078 2078
         ];
2079 2079
 
2080
-        $instance = new autoptimizeHTML( $markup );
2081
-        $instance->read( $options['autoptimizeHTML'] );
2080
+        $instance = new autoptimizeHTML($markup);
2081
+        $instance->read($options['autoptimizeHTML']);
2082 2082
         $instance->minify();
2083 2083
         $actual = $instance->getcontent();
2084
-        $this->assertEquals( $expected, $actual );
2084
+        $this->assertEquals($expected, $actual);
2085 2085
     }
2086 2086
 
2087 2087
     public function test_utils_mbstring_availabilty_overriding()
2088 2088
     {
2089 2089
         $orig     = autoptimizeUtils::mbstring_available();
2090
-        $opposite = ! $orig;
2090
+        $opposite = !$orig;
2091 2091
 
2092
-        $this->assertSame( $orig, autoptimizeUtils::mbstring_available() );
2092
+        $this->assertSame($orig, autoptimizeUtils::mbstring_available());
2093 2093
         // Override works...
2094
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available( $opposite ) );
2094
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available($opposite));
2095 2095
         // And override remains cached as the last version.
2096
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available() );
2096
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available());
2097 2097
     }
2098 2098
 
2099 2099
     public function test_utils_mbstring_basics()
2100 2100
     {
2101 2101
         // Turn on mbstring usage.
2102
-        autoptimizeUtils::mbstring_available( true );
2102
+        autoptimizeUtils::mbstring_available(true);
2103 2103
 
2104
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'ASCII' ) );
2105
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'CP850' ) );
2106
-        $this->assertSame( 3, autoptimizeUtils::strlen( '한국어' ) );
2104
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'ASCII'));
2105
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'CP850'));
2106
+        $this->assertSame(3, autoptimizeUtils::strlen('한국어'));
2107 2107
 
2108
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', '' ) );
2109
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', 'a', -1 ) );
2110
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'd' ) );
2111
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'a', 3 ) );
2112
-        $this->assertSame( 1, autoptimizeUtils::strpos( '한국어', '국' ) );
2108
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', ''));
2109
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', 'a', -1));
2110
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'd'));
2111
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'a', 3));
2112
+        $this->assertSame(1, autoptimizeUtils::strpos('한국어', '국'));
2113 2113
     }
2114 2114
 
2115 2115
     /**
2116 2116
      * @dataProvider provider_utils_substr_replace
2117 2117
      */
2118
-    function test_utils_substr_replace_basics_mbstring( $s, $repl, $start, $len, $expected )
2118
+    function test_utils_substr_replace_basics_mbstring($s, $repl, $start, $len, $expected)
2119 2119
     {
2120 2120
         // Force mbstring code path...
2121
-        autoptimizeUtils::mbstring_available( true );
2122
-        $this->assertEquals( $expected, autoptimizeUtils::substr_replace( $s, $repl, $start, $len ) );
2121
+        autoptimizeUtils::mbstring_available(true);
2122
+        $this->assertEquals($expected, autoptimizeUtils::substr_replace($s, $repl, $start, $len));
2123 2123
     }
2124 2124
 
2125 2125
     public function provider_utils_substr_replace()
@@ -2161,48 +2161,48 @@  discard block
 block discarded – undo
2161 2161
 
2162 2162
     function test_mb_substr_replace_with_ascii_input_string()
2163 2163
     {
2164
-        autoptimizeUtils::mbstring_available( false );
2164
+        autoptimizeUtils::mbstring_available(false);
2165 2165
 
2166 2166
         $str = 'Ascii';
2167 2167
 
2168
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2169
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2170
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2171
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2172
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2168
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2169
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2170
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2171
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2172
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2173 2173
     }
2174 2174
 
2175 2175
     function test_mb_substr_replace_with_utf8_input_string()
2176 2176
     {
2177
-        autoptimizeUtils::mbstring_available( true );
2177
+        autoptimizeUtils::mbstring_available(true);
2178 2178
 
2179 2179
         $str = 'âønæë';
2180 2180
 
2181
-        $this->assertSame( 'âñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2182
-        $this->assertSame( 'ñnæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2183
-        $this->assertSame( 'âøñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2184
-        $this->assertSame( 'âøz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2185
-        $this->assertSame( 'âñæë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2181
+        $this->assertSame('âñ', autoptimizeUtils::substr_replace($str, 'ñ', 1)); // No length.
2182
+        $this->assertSame('ñnæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2183
+        $this->assertSame('âøñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2184
+        $this->assertSame('âøz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2185
+        $this->assertSame('âñæë', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2186 2186
     }
2187 2187
 
2188 2188
     function test_default_substr_replace_with_ascii_input_string()
2189 2189
     {
2190 2190
         // Disable mbstring which should fall ack to substr_replace...
2191
-        autoptimizeUtils::mbstring_available( false );
2191
+        autoptimizeUtils::mbstring_available(false);
2192 2192
 
2193 2193
         $str = 'Ascii';
2194 2194
 
2195
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2196
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2197
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2198
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2199
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2195
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2196
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2197
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2198
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2199
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2200 2200
     }
2201 2201
 
2202 2202
     function test_default_substr_replace_with_utf8_input_string()
2203 2203
     {
2204 2204
         // Disabling mbstring, falling back to substr_replace...
2205
-        autoptimizeUtils::mbstring_available( false );
2205
+        autoptimizeUtils::mbstring_available(false);
2206 2206
 
2207 2207
         // This is really impossible to make work properly, since
2208 2208
         // any start/len parameters we give are working with bytes instead
@@ -2211,55 +2211,55 @@  discard block
 block discarded – undo
2211 2211
 
2212 2212
         // $this->assertSame( '�ñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2213 2213
         // $this->assertSame( 'ñ�næë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2214
-        $this->assertSame( 'ñønæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2215
-        $this->assertSame( 'âñxæë', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2216
-        $this->assertSame( 'âz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2214
+        $this->assertSame('ñønæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2215
+        $this->assertSame('âñxæë', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2216
+        $this->assertSame('âz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2217 2217
     }
2218 2218
 
2219 2219
     public function test_cache_fast_delete()
2220 2220
     {
2221
-        add_filter( 'autoptimize_filter_cache_clear_advanced', '__return_true' );
2221
+        add_filter('autoptimize_filter_cache_clear_advanced', '__return_true');
2222 2222
 
2223 2223
         autoptimizeCache::clearall_actionless();
2224 2224
 
2225
-        remove_all_filters( 'autoptimize_filter_cache_clear_advanced' );
2225
+        remove_all_filters('autoptimize_filter_cache_clear_advanced');
2226 2226
     }
2227 2227
 
2228 2228
     public function test_delete_advanced_cache_clear_artifacts()
2229 2229
     {
2230
-        $this->assertTrue( autoptimizeCache::delete_advanced_cache_clear_artifacts() );
2230
+        $this->assertTrue(autoptimizeCache::delete_advanced_cache_clear_artifacts());
2231 2231
     }
2232 2232
 
2233 2233
     public function provider_canonicalization()
2234 2234
     {
2235 2235
         return array(
2236
-            array( '../common', 'common' ),
2237
-            array( '../what-does-this-mean/really?/', 'what-does-this-mean/really?/' ),
2238
-            array( '../../what/where/how', 'what/where/how' ),
2239
-            array( '/../more.dots.please/', '/more.dots.please/' ),
2240
-            array( '/../../what/where/how', '/what/where/how' ),
2241
-            array( '/a/b/c/../../../d/e/file.txt', '/d/e/file.txt' ),
2242
-            array( 'a/b/../c', 'a/c' ),
2243
-            array( './../../etc/passwd', './etc/passwd' ),
2244
-            array( '/var/.////./user/./././..//.//../////../././.././test/////', '/test/' ),
2245
-            array( '/var/user/./././.././../.././././test/', '/test/' ),
2246
-            array( '/hello/0//how/../are/../you', '/hello/0/you' ),
2247
-            array( '', '' ),
2248
-            array( '.', '.' ),
2249
-            array( '..', '..' ),
2250
-            array( './..', './..' ),
2251
-            array( '../.', '.' ),
2236
+            array('../common', 'common'),
2237
+            array('../what-does-this-mean/really?/', 'what-does-this-mean/really?/'),
2238
+            array('../../what/where/how', 'what/where/how'),
2239
+            array('/../more.dots.please/', '/more.dots.please/'),
2240
+            array('/../../what/where/how', '/what/where/how'),
2241
+            array('/a/b/c/../../../d/e/file.txt', '/d/e/file.txt'),
2242
+            array('a/b/../c', 'a/c'),
2243
+            array('./../../etc/passwd', './etc/passwd'),
2244
+            array('/var/.////./user/./././..//.//../////../././.././test/////', '/test/'),
2245
+            array('/var/user/./././.././../.././././test/', '/test/'),
2246
+            array('/hello/0//how/../are/../you', '/hello/0/you'),
2247
+            array('', ''),
2248
+            array('.', '.'),
2249
+            array('..', '..'),
2250
+            array('./..', './..'),
2251
+            array('../.', '.'),
2252 2252
             // This might be debatable...
2253
-            array( '../..', '..' ),
2253
+            array('../..', '..'),
2254 2254
         );
2255 2255
     }
2256 2256
 
2257 2257
     /**
2258 2258
      * @dataProvider provider_canonicalization
2259 2259
      */
2260
-    public function test_path_canonicalize( $path, $canonicalized )
2260
+    public function test_path_canonicalize($path, $canonicalized)
2261 2261
     {
2262
-        $this->assertSame( $canonicalized, autoptimizeUtils::path_canonicalize( $path ) );
2262
+        $this->assertSame($canonicalized, autoptimizeUtils::path_canonicalize($path));
2263 2263
     }
2264 2264
 
2265 2265
     /**
@@ -2273,16 +2273,16 @@  discard block
 block discarded – undo
2273 2273
     public function test_autoptimize_filter_cdn_magic_path_check()
2274 2274
     {
2275 2275
         $cdnurl = 'http://cdn.example.org';
2276
-        add_filter( 'autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2 );
2276
+        add_filter('autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2);
2277 2277
 
2278 2278
         // Even when site is in a subfolder, the resulting cdn-rewritten url
2279 2279
         // should not magically include it, due to the above filter.
2280 2280
         // The second parameter is here to force a cache miss and re-run
2281 2281
         // the filter since we're using the same cdn url all over the place,
2282 2282
         // but want to prove different things with it.
2283
-        $this->assertSame( $cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed( $cdnurl, true ) );
2283
+        $this->assertSame($cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed($cdnurl, true));
2284 2284
 
2285
-        remove_all_filters( 'autoptimize_filter_cdn_magic_path_check' );
2285
+        remove_all_filters('autoptimize_filter_cdn_magic_path_check');
2286 2286
     }
2287 2287
 
2288 2288
     /**
@@ -2307,9 +2307,9 @@  discard block
 block discarded – undo
2307 2307
 <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" />
2308 2308
 MARKUP;
2309 2309
         $instance = autoptimizeImages::instance();
2310
-        $instance->set_options( $opts );
2311
-        $actual = $instance->filter_optimize_images( $markup );
2312
-        $this->assertEquals( $expected, $actual );
2310
+        $instance->set_options($opts);
2311
+        $actual = $instance->filter_optimize_images($markup);
2312
+        $this->assertEquals($expected, $actual);
2313 2313
     }
2314 2314
 
2315 2315
     /**
@@ -2334,9 +2334,9 @@  discard block
 block discarded – undo
2334 2334
 <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>
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
     /**
@@ -2361,9 +2361,9 @@  discard block
 block discarded – undo
2361 2361
 <picture><source data-srcset="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg" media="(min-width: 800px)"><noscript><img src="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></noscript><img class="lazyload" src='$imgopthost/client/q_lqip,ret_wait/$siteurl/wp-content/image.jpg' data-src="https://cdn.shortpixel.ai/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></picture>
2362 2362
 MARKUP;
2363 2363
         $instance = autoptimizeImages::instance();
2364
-        $instance->set_options( $opts );
2365
-        $actual = $instance->filter_optimize_images( $markup );
2366
-        $this->assertEquals( $expected, $actual );
2364
+        $instance->set_options($opts);
2365
+        $actual = $instance->filter_optimize_images($markup);
2366
+        $this->assertEquals($expected, $actual);
2367 2367
     }
2368 2368
 
2369 2369
     /**
@@ -2389,9 +2389,9 @@  discard block
 block discarded – undo
2389 2389
 MARKUP;
2390 2390
 
2391 2391
         $instance = autoptimizeImages::instance();
2392
-        $instance->set_options( $opts );
2393
-        $actual = $instance->filter_optimize_images( $markup );
2394
-        $this->assertEquals( $expected, $actual );
2392
+        $instance->set_options($opts);
2393
+        $actual = $instance->filter_optimize_images($markup);
2394
+        $this->assertEquals($expected, $actual);
2395 2395
     }
2396 2396
 
2397 2397
     /**
@@ -2417,9 +2417,9 @@  discard block
 block discarded – undo
2417 2417
 MARKUP;
2418 2418
 
2419 2419
         $instance = autoptimizeImages::instance();
2420
-        $instance->set_options( $opts );
2421
-        $actual = $instance->filter_optimize_images( $markup );
2422
-        $this->assertEquals( $expected, $actual );
2420
+        $instance->set_options($opts);
2421
+        $actual = $instance->filter_optimize_images($markup);
2422
+        $this->assertEquals($expected, $actual);
2423 2423
     }
2424 2424
 
2425 2425
     /**
@@ -2444,9 +2444,9 @@  discard block
 block discarded – undo
2444 2444
 MARKUP;
2445 2445
 
2446 2446
         $instance = autoptimizeImages::instance();
2447
-        $instance->set_options( $opts );
2448
-        $actual = $instance->filter_lazyload_images( $markup );
2449
-        $this->assertEquals( $expected, $actual );
2447
+        $instance->set_options($opts);
2448
+        $actual = $instance->filter_lazyload_images($markup);
2449
+        $this->assertEquals($expected, $actual);
2450 2450
     }
2451 2451
 
2452 2452
     /**
@@ -2471,9 +2471,9 @@  discard block
 block discarded – undo
2471 2471
 MARKUP;
2472 2472
 
2473 2473
         $instance = autoptimizeImages::instance();
2474
-        $instance->set_options( $opts );
2475
-        $actual = $instance->filter_lazyload_images( $markup );
2476
-        $this->assertEquals( $expected, $actual );
2474
+        $instance->set_options($opts);
2475
+        $actual = $instance->filter_lazyload_images($markup);
2476
+        $this->assertEquals($expected, $actual);
2477 2477
     }
2478 2478
 
2479 2479
     /**
@@ -2492,11 +2492,11 @@  discard block
 block discarded – undo
2492 2492
 MARKUP;
2493 2493
 
2494 2494
         $instance = autoptimizeImages::instance();
2495
-        $instance->set_options( $opts );
2496
-        $actual = $instance->filter_optimize_images( $markup );
2495
+        $instance->set_options($opts);
2496
+        $actual = $instance->filter_optimize_images($markup);
2497 2497
 
2498 2498
         // Expecting $markup since replacement should not happen.
2499
-        $this->assertEquals( $markup, $actual );
2499
+        $this->assertEquals($markup, $actual);
2500 2500
     }
2501 2501
 
2502 2502
     /**
@@ -2522,10 +2522,10 @@  discard block
 block discarded – undo
2522 2522
 MARKUP;
2523 2523
 
2524 2524
         $instance = autoptimizeImages::instance();
2525
-        $instance->set_options( $opts );
2526
-        $actual = $instance->filter_optimize_images( $markup );
2525
+        $instance->set_options($opts);
2526
+        $actual = $instance->filter_optimize_images($markup);
2527 2527
 
2528
-        $this->assertEquals( $expected, $actual );
2528
+        $this->assertEquals($expected, $actual);
2529 2529
     }
2530 2530
 
2531 2531
     /**
@@ -2535,8 +2535,8 @@  discard block
 block discarded – undo
2535 2535
     {
2536 2536
         $urls                                        = $this->get_urls();
2537 2537
         $siteurl                                     = $urls['siteurl'];
2538
-        $siteurlparsed                               = parse_url( $siteurl );
2539
-        $sitedomain                                  = $siteurlparsed['scheme'] . '://' . $siteurlparsed['host'];
2538
+        $siteurlparsed                               = parse_url($siteurl);
2539
+        $sitedomain                                  = $siteurlparsed['scheme'].'://'.$siteurlparsed['host'];
2540 2540
         $imgopthost                                  = $urls['imgopthost'];
2541 2541
         $opts                                        = autoptimizeImages::fetch_options();
2542 2542
         $opts['autoptimize_imgopt_checkbox_field_1'] = '1';
@@ -2551,10 +2551,10 @@  discard block
 block discarded – undo
2551 2551
 MARKUP;
2552 2552
 
2553 2553
         $instance = autoptimizeImages::instance();
2554
-        $instance->set_options( $opts );
2555
-        $actual = $instance->filter_optimize_images( $markup );
2554
+        $instance->set_options($opts);
2555
+        $actual = $instance->filter_optimize_images($markup);
2556 2556
 
2557
-        $this->assertEquals( $expected, $actual );
2557
+        $this->assertEquals($expected, $actual);
2558 2558
     }
2559 2559
 
2560 2560
     /**
@@ -2579,53 +2579,53 @@  discard block
 block discarded – undo
2579 2579
 MARKUP;
2580 2580
 
2581 2581
         $instance = autoptimizeImages::instance();
2582
-        $instance->set_options( $opts );
2583
-        $actual = $instance->filter_optimize_images( $markup );
2582
+        $instance->set_options($opts);
2583
+        $actual = $instance->filter_optimize_images($markup);
2584 2584
 
2585
-        $this->assertEquals( $expected, $actual );
2585
+        $this->assertEquals($expected, $actual);
2586 2586
     }
2587 2587
 
2588 2588
     /**
2589 2589
      * @dataProvider provider_str_is_valid_regex
2590 2590
      */
2591
-    public function test_str_is_valid_regex( $str, $expected )
2591
+    public function test_str_is_valid_regex($str, $expected)
2592 2592
     {
2593
-        $actual = autoptimizeUtils::str_is_valid_regex( $str );
2593
+        $actual = autoptimizeUtils::str_is_valid_regex($str);
2594 2594
 
2595
-        $this->assertEquals( $expected, $actual );
2595
+        $this->assertEquals($expected, $actual);
2596 2596
     }
2597 2597
 
2598 2598
     public function provider_str_is_valid_regex()
2599 2599
     {
2600 2600
         return [
2601
-            [ '<!--[if', false ],
2602
-            [ '&lt;--[if', false ],
2603
-            [ '/booya/i', true ],
2604
-            [ '~Valid(Regular)Expression~', true ],
2601
+            ['<!--[if', false],
2602
+            ['&lt;--[if', false],
2603
+            ['/booya/i', true],
2604
+            ['~Valid(Regular)Expression~', true],
2605 2605
         ];
2606 2606
     }
2607 2607
 
2608 2608
     /**
2609 2609
      * @dataProvider provider_protocol_relative_tests
2610 2610
      */
2611
-    public function test_is_protocol_relative( $str, $expected )
2611
+    public function test_is_protocol_relative($str, $expected)
2612 2612
     {
2613
-        $actual = autoptimizeUtils::is_protocol_relative( $str );
2613
+        $actual = autoptimizeUtils::is_protocol_relative($str);
2614 2614
 
2615
-        $this->assertEquals( $expected, $actual );
2615
+        $this->assertEquals($expected, $actual);
2616 2616
     }
2617 2617
 
2618 2618
     public function provider_protocol_relative_tests()
2619 2619
     {
2620 2620
         return [
2621
-            [ '//something-that-might-be-an-url-but-isnt-really', true ],
2622
-            [ '', false ],
2623
-            [ null, false ],
2624
-            [ 'booya/i', false ],
2625
-            [ '/root-relative', false ],
2626
-            [ 'http://what.ever/', false ],
2627
-            [ 'https://booya.kasha', false ],
2628
-            [ '1/', false ],
2621
+            ['//something-that-might-be-an-url-but-isnt-really', true],
2622
+            ['', false],
2623
+            [null, false],
2624
+            ['booya/i', false],
2625
+            ['/root-relative', false],
2626
+            ['http://what.ever/', false],
2627
+            ['https://booya.kasha', false],
2628
+            ['1/', false],
2629 2629
         ];
2630 2630
     }
2631 2631
 
@@ -2640,38 +2640,38 @@  discard block
 block discarded – undo
2640 2640
 
2641 2641
         $expected = 'img.centered,.aligncenter{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}';
2642 2642
 
2643
-        $instance = new autoptimizeStyles( $css );
2644
-        $minified = $instance->run_minifier_on( $css );
2643
+        $instance = new autoptimizeStyles($css);
2644
+        $minified = $instance->run_minifier_on($css);
2645 2645
 
2646
-        $this->assertEquals( $expected, $minified );
2646
+        $this->assertEquals($expected, $minified);
2647 2647
     }
2648 2648
 
2649 2649
     public function test_css_font_names_mangling()
2650 2650
     {
2651 2651
         // Properly quoted font names dont get mangled.
2652 2652
         $css      = 'h2{font-family:"Archivo Black"}';
2653
-        $instance = new autoptimizeStyles( $css );
2654
-        $actual   = $instance->run_minifier_on( $css );
2655
-        $this->assertEquals( $css, $actual );
2653
+        $instance = new autoptimizeStyles($css);
2654
+        $actual   = $instance->run_minifier_on($css);
2655
+        $this->assertEquals($css, $actual);
2656 2656
 
2657 2657
         // When not quoted, 'Black' used to become '#000', but not anymore... :)
2658 2658
         $css_unquoted = 'h2{font-family:Archivo Black;}';
2659 2659
         $expected     = 'h2{font-family:Archivo Black}';
2660
-        $instance     = new autoptimizeStyles( $css_unquoted );
2661
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2662
-        $this->assertEquals( $expected, $actual );
2660
+        $instance     = new autoptimizeStyles($css_unquoted);
2661
+        $actual       = $instance->run_minifier_on($css_unquoted);
2662
+        $this->assertEquals($expected, $actual);
2663 2663
 
2664 2664
         $css_unquoted = 'h1{font:italic 1.2em Fira White,serif}';
2665
-        $instance     = new autoptimizeStyles( $css_unquoted );
2666
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2667
-        $this->assertEquals( $css_unquoted, $actual );
2665
+        $instance     = new autoptimizeStyles($css_unquoted);
2666
+        $actual       = $instance->run_minifier_on($css_unquoted);
2667
+        $this->assertEquals($css_unquoted, $actual);
2668 2668
     }
2669 2669
 
2670 2670
     public function test_is_plugin_active_utils_wrapper()
2671 2671
     {
2672 2672
         // Our plugin is loaded via "muplugins_loaded" filter in tests/bootstrap.php
2673
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'autoptimize/autoptimize.php' ) );
2674
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) );
2673
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('autoptimize/autoptimize.php'));
2674
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php'));
2675 2675
     }
2676 2676
 
2677 2677
     public function test_jsminphp_string_literal_minification()
@@ -2685,7 +2685,7 @@  discard block
 block discarded – undo
2685 2685
         $expected = '`line
2686 2686
 break`+`he  llo`;foo`hel( \'\');lo`;`he\nl\`lo`;(`he${one + two}`)';
2687 2687
 
2688
-        $actual = JSMin::minify( $js );
2689
-        $this->assertEquals( $expected, $actual );
2688
+        $actual = JSMin::minify($js);
2689
+        $this->assertEquals($expected, $actual);
2690 2690
     }
2691 2691
 }
Please login to merge, or discard this patch.
classes/autoptimizeToolbar.php 1 patch
Spacing   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles toolbar-related stuff.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -12,32 +12,32 @@  discard block
 block discarded – undo
12 12
     public function __construct()
13 13
     {
14 14
         // If Cache is not available we don't add the toolbar.
15
-        if ( ! autoptimizeCache::cacheavail() ) {
15
+        if (!autoptimizeCache::cacheavail()) {
16 16
             return;
17 17
         }
18 18
 
19 19
         // Load admin toolbar feature once WordPress, all plugins, and the theme are fully loaded and instantiated.
20
-        add_action( 'wp_loaded', array( $this, 'load_toolbar' ) );
20
+        add_action('wp_loaded', array($this, 'load_toolbar'));
21 21
     }
22 22
 
23 23
     public function load_toolbar()
24 24
     {
25 25
         // Check permissions and that toolbar is not hidden via filter.
26
-        if ( current_user_can( 'manage_options' ) && apply_filters( 'autoptimize_filter_toolbar_show', true ) ) {
26
+        if (current_user_can('manage_options') && apply_filters('autoptimize_filter_toolbar_show', true)) {
27 27
 
28 28
             // Create a handler for the AJAX toolbar requests.
29
-            add_action( 'wp_ajax_autoptimize_delete_cache', array( $this, 'delete_cache' ) );
29
+            add_action('wp_ajax_autoptimize_delete_cache', array($this, 'delete_cache'));
30 30
 
31 31
             // Load custom styles, scripts and menu only when needed.
32
-            if ( is_admin_bar_showing() ) {
33
-                if ( is_admin() ) {
34
-                    add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
32
+            if (is_admin_bar_showing()) {
33
+                if (is_admin()) {
34
+                    add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
35 35
                 } else {
36
-                    add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
36
+                    add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
37 37
                 }
38 38
 
39 39
                 // Add the Autoptimize Toolbar to the Admin bar.
40
-                add_action( 'admin_bar_menu', array( $this, 'add_toolbar' ), 100 );
40
+                add_action('admin_bar_menu', array($this, 'add_toolbar'), 100);
41 41
             }
42 42
         }
43 43
     }
@@ -50,17 +50,17 @@  discard block
 block discarded – undo
50 50
         $stats = autoptimizeCache::stats();
51 51
 
52 52
         // Set the Max Size recommended for cache files.
53
-        $max_size = apply_filters( 'autoptimize_filter_cachecheck_maxsize', 512 * 1024 * 1024 );
53
+        $max_size = apply_filters('autoptimize_filter_cachecheck_maxsize', 512*1024*1024);
54 54
 
55 55
         // Retrieve the current Total Files in cache.
56 56
         $files = $stats[0];
57 57
         // Retrieve the current Total Size of the cache.
58 58
         $bytes = $stats[1];
59
-        $size  = $this->format_filesize( $bytes );
59
+        $size  = $this->format_filesize($bytes);
60 60
 
61 61
         // Calculate the percentage of cache used.
62
-        $percentage = ceil( $bytes / $max_size * 100 );
63
-        if ( $percentage > 100 ) {
62
+        $percentage = ceil($bytes/$max_size*100);
63
+        if ($percentage > 100) {
64 64
             $percentage = 100;
65 65
         }
66 66
 
@@ -70,82 +70,82 @@  discard block
 block discarded – undo
70 70
          * - "orange" if over 80%.
71 71
          * - "red" if over 100%.
72 72
          */
73
-        $color = ( 100 == $percentage ) ? 'red' : ( ( $percentage > 80 ) ? 'orange' : 'green' );
73
+        $color = (100 == $percentage) ? 'red' : (($percentage > 80) ? 'orange' : 'green');
74 74
 
75 75
         // Create or add new items into the Admin Toolbar.
76 76
         // Main "Autoptimize" node.
77
-        $wp_admin_bar->add_node( array(
77
+        $wp_admin_bar->add_node(array(
78 78
             'id'    => 'autoptimize',
79
-            'title' => '<span class="ab-icon"></span><span class="ab-label">' . __( 'Autoptimize', 'autoptimize' ) . '</span>',
80
-            'href'  => admin_url( 'options-general.php?page=autoptimize' ),
81
-            'meta'  => array( 'class' => 'bullet-' . $color ),
79
+            'title' => '<span class="ab-icon"></span><span class="ab-label">'.__('Autoptimize', 'autoptimize').'</span>',
80
+            'href'  => admin_url('options-general.php?page=autoptimize'),
81
+            'meta'  => array('class' => 'bullet-'.$color),
82 82
         ));
83 83
 
84 84
         // "Cache Info" node.
85
-        $wp_admin_bar->add_node( array(
85
+        $wp_admin_bar->add_node(array(
86 86
             'id'     => 'autoptimize-cache-info',
87
-            'title'  => '<p>' . __( 'Cache Info', 'autoptimize' ) . '</p>' .
88
-                        '<div class="autoptimize-radial-bar" percentage="' . $percentage . '">' .
89
-                        '<div class="autoptimize-circle">' .
90
-                        '<div class="mask full"><div class="fill bg-' . $color . '"></div></div>' .
91
-                        '<div class="mask half"><div class="fill bg-' . $color . '"></div></div>' .
92
-                        '<div class="shadow"></div>' .
93
-                        '</div>' .
94
-                        '<div class="inset"><div class="percentage"><div class="numbers ' . $color . '">' . $percentage . '%</div></div></div>' .
95
-                        '</div>' .
96
-                        '<table>' .
97
-                        '<tr><td>' . __( 'Size', 'autoptimize' ) . ':</td><td class="size ' . $color . '">' . $size . '</td></tr>' .
98
-                        '<tr><td>' . __( 'Files', 'autoptimize' ) . ':</td><td class="files white">' . $files . '</td></tr>' .
87
+            'title'  => '<p>'.__('Cache Info', 'autoptimize').'</p>'.
88
+                        '<div class="autoptimize-radial-bar" percentage="'.$percentage.'">'.
89
+                        '<div class="autoptimize-circle">'.
90
+                        '<div class="mask full"><div class="fill bg-'.$color.'"></div></div>'.
91
+                        '<div class="mask half"><div class="fill bg-'.$color.'"></div></div>'.
92
+                        '<div class="shadow"></div>'.
93
+                        '</div>'.
94
+                        '<div class="inset"><div class="percentage"><div class="numbers '.$color.'">'.$percentage.'%</div></div></div>'.
95
+                        '</div>'.
96
+                        '<table>'.
97
+                        '<tr><td>'.__('Size', 'autoptimize').':</td><td class="size '.$color.'">'.$size.'</td></tr>'.
98
+                        '<tr><td>'.__('Files', 'autoptimize').':</td><td class="files white">'.$files.'</td></tr>'.
99 99
                         '</table>',
100 100
             'parent' => 'autoptimize',
101 101
         ));
102 102
 
103 103
         // "Delete Cache" node.
104
-        $wp_admin_bar->add_node( array(
104
+        $wp_admin_bar->add_node(array(
105 105
             'id'     => 'autoptimize-delete-cache',
106
-            'title'  => __( 'Delete Cache', 'autoptimize' ),
106
+            'title'  => __('Delete Cache', 'autoptimize'),
107 107
             'parent' => 'autoptimize',
108 108
         ));
109 109
     }
110 110
 
111 111
     public function delete_cache()
112 112
     {
113
-        check_ajax_referer( 'ao_delcache_nonce', 'nonce' );
113
+        check_ajax_referer('ao_delcache_nonce', 'nonce');
114 114
 
115 115
         $result = false;
116
-        if ( current_user_can( 'manage_options' ) ) {
116
+        if (current_user_can('manage_options')) {
117 117
             // We call the function for cleaning the Autoptimize cache.
118 118
             $result = autoptimizeCache::clearall();
119 119
         }
120 120
 
121
-        wp_send_json( $result );
121
+        wp_send_json($result);
122 122
     }
123 123
 
124 124
     public function enqueue_scripts()
125 125
     {
126 126
         // Autoptimize Toolbar Styles.
127
-        wp_enqueue_style( 'autoptimize-toolbar', plugins_url( '/static/toolbar.css', __FILE__ ), array(), AUTOPTIMIZE_PLUGIN_VERSION, 'all' );
127
+        wp_enqueue_style('autoptimize-toolbar', plugins_url('/static/toolbar.css', __FILE__), array(), AUTOPTIMIZE_PLUGIN_VERSION, 'all');
128 128
 
129 129
         // Autoptimize Toolbar Javascript.
130
-        wp_enqueue_script( 'autoptimize-toolbar', plugins_url( '/static/toolbar.js', __FILE__ ), array( 'jquery' ), AUTOPTIMIZE_PLUGIN_VERSION, true );
130
+        wp_enqueue_script('autoptimize-toolbar', plugins_url('/static/toolbar.js', __FILE__), array('jquery'), AUTOPTIMIZE_PLUGIN_VERSION, true);
131 131
 
132 132
         // Localizes a registered script with data for a JavaScript variable.
133 133
         // Needed for the AJAX to work properly on the frontend.
134
-        wp_localize_script( 'autoptimize-toolbar', 'autoptimize_ajax_object', array(
135
-            'ajaxurl'     => admin_url( 'admin-ajax.php' ),
134
+        wp_localize_script('autoptimize-toolbar', 'autoptimize_ajax_object', array(
135
+            'ajaxurl'     => admin_url('admin-ajax.php'),
136 136
             // translators: links to the Autoptimize settings page.
137
-            'error_msg'   => sprintf( __( 'Your Autoptimize cache might not have been purged successfully, please check on the <a href=%s>Autoptimize settings page</a>.', 'autoptimize' ), admin_url( 'options-general.php?page=autoptimize' ) . ' style="white-space:nowrap;"' ),
138
-            'dismiss_msg' => __( 'Dismiss this notice.' ),
139
-            'nonce'       => wp_create_nonce( 'ao_delcache_nonce' ),
140
-        ) );
137
+            'error_msg'   => sprintf(__('Your Autoptimize cache might not have been purged successfully, please check on the <a href=%s>Autoptimize settings page</a>.', 'autoptimize'), admin_url('options-general.php?page=autoptimize').' style="white-space:nowrap;"'),
138
+            'dismiss_msg' => __('Dismiss this notice.'),
139
+            'nonce'       => wp_create_nonce('ao_delcache_nonce'),
140
+        ));
141 141
     }
142 142
 
143
-    public function format_filesize( $bytes, $decimals = 2 )
143
+    public function format_filesize($bytes, $decimals = 2)
144 144
     {
145
-        $units = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB' );
145
+        $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
146 146
 
147
-        for ( $i = 0; ( $bytes / 1024) > 0.9; $i++, $bytes /= 1024 ) {} // @codingStandardsIgnoreLine
147
+        for ($i = 0; ($bytes/1024) > 0.9; $i++, $bytes /= 1024) {} // @codingStandardsIgnoreLine
148 148
 
149
-        return sprintf( "%1.{$decimals}f %s", round( $bytes, $decimals ), $units[ $i ] );
149
+        return sprintf("%1.{$decimals}f %s", round($bytes, $decimals), $units[$i]);
150 150
     }
151 151
 }
Please login to merge, or discard this patch.
classes/autoptimizeStyles.php 1 patch
Spacing   +319 added lines, -319 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Class for CSS optimization.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -51,53 +51,53 @@  discard block
 block discarded – undo
51 51
     // public $cdn_url; // Used all over the place implicitly, so will have to be either public or protected :/ .
52 52
 
53 53
     // Reads the page and collects style tags.
54
-    public function read( $options )
54
+    public function read($options)
55 55
     {
56
-        $noptimizeCSS = apply_filters( 'autoptimize_filter_css_noptimize', false, $this->content );
57
-        if ( $noptimizeCSS ) {
56
+        $noptimizeCSS = apply_filters('autoptimize_filter_css_noptimize', false, $this->content);
57
+        if ($noptimizeCSS) {
58 58
             return false;
59 59
         }
60 60
 
61
-        $whitelistCSS = apply_filters( 'autoptimize_filter_css_whitelist', '', $this->content );
62
-        if ( ! empty( $whitelistCSS ) ) {
63
-            $this->whitelist = array_filter( array_map( 'trim', explode( ',', $whitelistCSS ) ) );
61
+        $whitelistCSS = apply_filters('autoptimize_filter_css_whitelist', '', $this->content);
62
+        if (!empty($whitelistCSS)) {
63
+            $this->whitelist = array_filter(array_map('trim', explode(',', $whitelistCSS)));
64 64
         }
65 65
 
66
-        $removableCSS = apply_filters( 'autoptimize_filter_css_removables', '' );
67
-        if ( ! empty( $removableCSS ) ) {
68
-            $this->cssremovables = array_filter( array_map( 'trim', explode( ',', $removableCSS ) ) );
66
+        $removableCSS = apply_filters('autoptimize_filter_css_removables', '');
67
+        if (!empty($removableCSS)) {
68
+            $this->cssremovables = array_filter(array_map('trim', explode(',', $removableCSS)));
69 69
         }
70 70
 
71
-        $this->cssinlinesize = apply_filters( 'autoptimize_filter_css_inlinesize', 256 );
71
+        $this->cssinlinesize = apply_filters('autoptimize_filter_css_inlinesize', 256);
72 72
 
73 73
         // filter to "late inject minified CSS", default to true for now (it is faster).
74
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_css_inject_min_late', true );
74
+        $this->inject_min_late = apply_filters('autoptimize_filter_css_inject_min_late', true);
75 75
 
76 76
         // Remove everything that's not the header.
77
-        if ( apply_filters( 'autoptimize_filter_css_justhead', $options['justhead'] ) ) {
78
-            $content             = explode( '</head>', $this->content, 2 );
79
-            $this->content       = $content[0] . '</head>';
77
+        if (apply_filters('autoptimize_filter_css_justhead', $options['justhead'])) {
78
+            $content             = explode('</head>', $this->content, 2);
79
+            $this->content       = $content[0].'</head>';
80 80
             $this->restofcontent = $content[1];
81 81
         }
82 82
 
83 83
         // Determine whether we're doing CSS-files aggregation or not.
84
-        if ( isset( $options['aggregate'] ) && ! $options['aggregate'] ) {
84
+        if (isset($options['aggregate']) && !$options['aggregate']) {
85 85
             $this->aggregate = false;
86 86
         }
87 87
         // Returning true for "dontaggregate" turns off aggregation.
88
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_css_dontaggregate', false ) ) {
88
+        if ($this->aggregate && apply_filters('autoptimize_filter_css_dontaggregate', false)) {
89 89
             $this->aggregate = false;
90 90
         }
91 91
 
92 92
         // include inline?
93
-        if ( apply_filters( 'autoptimize_css_include_inline', $options['include_inline'] ) ) {
93
+        if (apply_filters('autoptimize_css_include_inline', $options['include_inline'])) {
94 94
             $this->include_inline = true;
95 95
         }
96 96
 
97 97
         // List of CSS strings which are excluded from autoptimization.
98
-        $excludeCSS = apply_filters( 'autoptimize_filter_css_exclude', $options['css_exclude'], $this->content );
99
-        if ( '' !== $excludeCSS ) {
100
-            $this->dontmove = array_filter( array_map( 'trim', explode( ',', $excludeCSS ) ) );
98
+        $excludeCSS = apply_filters('autoptimize_filter_css_exclude', $options['css_exclude'], $this->content);
99
+        if ('' !== $excludeCSS) {
100
+            $this->dontmove = array_filter(array_map('trim', explode(',', $excludeCSS)));
101 101
         } else {
102 102
             $this->dontmove = array();
103 103
         }
@@ -108,16 +108,16 @@  discard block
 block discarded – undo
108 108
         // Should we defer css?
109 109
         // value: true / false.
110 110
         $this->defer = $options['defer'];
111
-        $this->defer = apply_filters( 'autoptimize_filter_css_defer', $this->defer, $this->content );
111
+        $this->defer = apply_filters('autoptimize_filter_css_defer', $this->defer, $this->content);
112 112
 
113 113
         // Should we inline while deferring?
114 114
         // value: inlined CSS.
115
-        $this->defer_inline = apply_filters( 'autoptimize_filter_css_defer_inline', $options['defer_inline'], $this->content );
115
+        $this->defer_inline = apply_filters('autoptimize_filter_css_defer_inline', $options['defer_inline'], $this->content);
116 116
 
117 117
         // Should we inline?
118 118
         // value: true / false.
119 119
         $this->inline = $options['inline'];
120
-        $this->inline = apply_filters( 'autoptimize_filter_css_inline', $this->inline, $this->content );
120
+        $this->inline = apply_filters('autoptimize_filter_css_inline', $this->inline, $this->content);
121 121
 
122 122
         // Store cdn url.
123 123
         $this->cdn_url = $options['cdn_url'];
@@ -126,13 +126,13 @@  discard block
 block discarded – undo
126 126
         $this->datauris = $options['datauris'];
127 127
 
128 128
         // Determine whether excluded files should be minified if not yet so.
129
-        if ( ! $options['minify_excluded'] && $options['aggregate'] ) {
129
+        if (!$options['minify_excluded'] && $options['aggregate']) {
130 130
             $this->minify_excluded = false;
131 131
         }
132
-        $this->minify_excluded = apply_filters( 'autoptimize_filter_css_minify_excluded', $this->minify_excluded );
132
+        $this->minify_excluded = apply_filters('autoptimize_filter_css_minify_excluded', $this->minify_excluded);
133 133
 
134 134
         // noptimize me.
135
-        $this->content = $this->hide_noptimize( $this->content );
135
+        $this->content = $this->hide_noptimize($this->content);
136 136
 
137 137
         // Exclude (no)script, as those may contain CSS which should be left as is.
138 138
         $this->content = $this->replace_contents_with_marker_if_exists(
@@ -143,26 +143,26 @@  discard block
 block discarded – undo
143 143
         );
144 144
 
145 145
         // Save IE hacks.
146
-        $this->content = $this->hide_iehacks( $this->content );
146
+        $this->content = $this->hide_iehacks($this->content);
147 147
 
148 148
         // Hide HTML comments.
149
-        $this->content = $this->hide_comments( $this->content );
149
+        $this->content = $this->hide_comments($this->content);
150 150
 
151 151
         // Get <style> and <link>.
152
-        if ( preg_match_all( '#(<style[^>]*>.*</style>)|(<link[^>]*stylesheet[^>]*>)#Usmi', $this->content, $matches ) ) {
152
+        if (preg_match_all('#(<style[^>]*>.*</style>)|(<link[^>]*stylesheet[^>]*>)#Usmi', $this->content, $matches)) {
153 153
 
154
-            foreach ( $matches[0] as $tag ) {
155
-                if ( $this->isremovable( $tag, $this->cssremovables ) ) {
156
-                    $this->content = str_replace( $tag, '', $this->content );
157
-                } elseif ( $this->ismovable( $tag ) ) {
154
+            foreach ($matches[0] as $tag) {
155
+                if ($this->isremovable($tag, $this->cssremovables)) {
156
+                    $this->content = str_replace($tag, '', $this->content);
157
+                } elseif ($this->ismovable($tag)) {
158 158
                     // Get the media.
159
-                    if ( false !== strpos( $tag, 'media=' ) ) {
160
-                        preg_match( '#media=(?:"|\')([^>]*)(?:"|\')#Ui', $tag, $medias );
161
-                        $medias = explode( ',', $medias[1] );
159
+                    if (false !== strpos($tag, 'media=')) {
160
+                        preg_match('#media=(?:"|\')([^>]*)(?:"|\')#Ui', $tag, $medias);
161
+                        $medias = explode(',', $medias[1]);
162 162
                         $media = array();
163
-                        foreach ( $medias as $elem ) {
163
+                        foreach ($medias as $elem) {
164 164
                             /* $media[] = current(explode(' ',trim($elem),2)); */
165
-                            if ( empty( $elem ) ) {
165
+                            if (empty($elem)) {
166 166
                                 $elem = 'all';
167 167
                             }
168 168
 
@@ -170,72 +170,72 @@  discard block
 block discarded – undo
170 170
                         }
171 171
                     } else {
172 172
                         // No media specified - applies to all.
173
-                        $media = array( 'all' );
173
+                        $media = array('all');
174 174
                     }
175 175
 
176
-                    $media = apply_filters( 'autoptimize_filter_css_tagmedia', $media, $tag );
176
+                    $media = apply_filters('autoptimize_filter_css_tagmedia', $media, $tag);
177 177
 
178
-                    if ( preg_match( '#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source ) ) {
178
+                    if (preg_match('#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source)) {
179 179
                         // <link>.
180
-                        $url  = current( explode( '?', $source[2], 2 ) );
181
-                        $path = $this->getpath( $url );
180
+                        $url  = current(explode('?', $source[2], 2));
181
+                        $path = $this->getpath($url);
182 182
 
183
-                        if ( false !== $path && preg_match( '#\.css$#', $path ) ) {
183
+                        if (false !== $path && preg_match('#\.css$#', $path)) {
184 184
                             // Good link.
185
-                            $this->css[] = array( $media, $path );
185
+                            $this->css[] = array($media, $path);
186 186
                         } else {
187 187
                             // Link is dynamic (.php etc).
188
-                            $new_tag = $this->optionally_defer_excluded( $tag, 'none' );
189
-                            if ( $new_tag !== '' && $new_tag !== $tag ) {
190
-                                $this->content = str_replace( $tag, $new_tag, $this->content );
188
+                            $new_tag = $this->optionally_defer_excluded($tag, 'none');
189
+                            if ($new_tag !== '' && $new_tag !== $tag) {
190
+                                $this->content = str_replace($tag, $new_tag, $this->content);
191 191
                             }
192 192
                             $tag = '';
193 193
                         }
194 194
                     } else {
195 195
                         // Inline css in style tags can be wrapped in comment tags, so restore comments.
196
-                        $tag = $this->restore_comments( $tag );
197
-                        preg_match( '#<style.*>(.*)</style>#Usmi', $tag, $code );
196
+                        $tag = $this->restore_comments($tag);
197
+                        preg_match('#<style.*>(.*)</style>#Usmi', $tag, $code);
198 198
 
199 199
                         // And re-hide them to be able to to the removal based on tag.
200
-                        $tag = $this->hide_comments( $tag );
200
+                        $tag = $this->hide_comments($tag);
201 201
 
202
-                        if ( $this->include_inline ) {
203
-                            $code = preg_replace( '#^.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*$#sm', '$1', $code[1] );
204
-                            $this->css[] = array( $media, 'INLINE;' . $code );
202
+                        if ($this->include_inline) {
203
+                            $code = preg_replace('#^.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*$#sm', '$1', $code[1]);
204
+                            $this->css[] = array($media, 'INLINE;'.$code);
205 205
                         } else {
206 206
                             $tag = '';
207 207
                         }
208 208
                     }
209 209
 
210 210
                     // Remove the original style tag.
211
-                    $this->content = str_replace( $tag, '', $this->content );
211
+                    $this->content = str_replace($tag, '', $this->content);
212 212
                 } else {
213
-                    if ( preg_match( '#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source ) ) {
214
-                        $exploded_url = explode( '?', $source[2], 2 );
213
+                    if (preg_match('#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source)) {
214
+                        $exploded_url = explode('?', $source[2], 2);
215 215
                         $url          = $exploded_url[0];
216
-                        $path         = $this->getpath( $url );
216
+                        $path         = $this->getpath($url);
217 217
                         $new_tag      = $tag;
218 218
 
219 219
                         // Excluded CSS, minify that file:
220 220
                         // -> if aggregate is on and exclude minify is on
221 221
                         // -> if aggregate is off and the file is not in dontmove.
222
-                        if ( $path && $this->minify_excluded ) {
223
-                            $consider_minified_array = apply_filters( 'autoptimize_filter_css_consider_minified', false );
224
-                            if ( ( false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path ) || ( true === $this->aggregate && ( false === $consider_minified_array || str_replace( $consider_minified_array, '', $path ) === $path ) ) ) {
225
-                                $minified_url = $this->minify_single( $path );
226
-                                if ( ! empty( $minified_url ) ) {
222
+                        if ($path && $this->minify_excluded) {
223
+                            $consider_minified_array = apply_filters('autoptimize_filter_css_consider_minified', false);
224
+                            if ((false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path) || (true === $this->aggregate && (false === $consider_minified_array || str_replace($consider_minified_array, '', $path) === $path))) {
225
+                                $minified_url = $this->minify_single($path);
226
+                                if (!empty($minified_url)) {
227 227
                                     // Replace orig URL with cached minified URL.
228
-                                    $new_tag = str_replace( $url, $minified_url, $tag );
228
+                                    $new_tag = str_replace($url, $minified_url, $tag);
229 229
                                 }
230 230
                             }
231 231
                         }
232 232
 
233 233
                         // Optionally defer (preload) non-aggregated CSS.
234
-                        $new_tag = $this->optionally_defer_excluded( $new_tag, $url );
234
+                        $new_tag = $this->optionally_defer_excluded($new_tag, $url);
235 235
 
236 236
                         // And replace!
237
-                        if ( $new_tag !== '' && $new_tag !== $tag ) {
238
-                            $this->content = str_replace( $tag, $new_tag, $this->content );
237
+                        if ($new_tag !== '' && $new_tag !== $tag) {
238
+                            $this->content = str_replace($tag, $new_tag, $this->content);
239 239
                         }
240 240
                     }
241 241
                 }
@@ -256,10 +256,10 @@  discard block
 block discarded – undo
256 256
      *
257 257
      * @return string $new_tag
258 258
      */
259
-    private function optionally_defer_excluded( $tag, $url = '' )
259
+    private function optionally_defer_excluded($tag, $url = '')
260 260
     {
261 261
         // Defer single CSS if "inline & defer" is ON and there is inline CSS.
262
-        if ( $this->defer && ! empty( $this->defer_inline ) ) {
262
+        if ($this->defer && !empty($this->defer_inline)) {
263 263
             // Get/ set (via filter) the JS to be triggers onload of the preloaded CSS.
264 264
             $_preload_onload = apply_filters(
265 265
                 'autoptimize_filter_css_preload_onload',
@@ -267,12 +267,12 @@  discard block
 block discarded – undo
267 267
                 $url
268 268
             );
269 269
             // Adapt original <link> element for CSS to be preloaded and add <noscript>-version for fallback.
270
-            $new_tag = '<noscript>' . autoptimizeUtils::remove_id_from_node( $tag ) . '</noscript>' . str_replace(
270
+            $new_tag = '<noscript>'.autoptimizeUtils::remove_id_from_node($tag).'</noscript>'.str_replace(
271 271
                 array(
272 272
                     "rel='stylesheet'",
273 273
                     'rel="stylesheet"',
274 274
                 ),
275
-                "rel='preload' as='style' onload=\"" . $_preload_onload . "\"",
275
+                "rel='preload' as='style' onload=\"".$_preload_onload."\"",
276 276
                 $tag
277 277
             );
278 278
         } else {
@@ -289,22 +289,22 @@  discard block
 block discarded – undo
289 289
      * @param string $path
290 290
      * @return boolean
291 291
      */
292
-    private function is_datauri_candidate( $path )
292
+    private function is_datauri_candidate($path)
293 293
     {
294 294
         // Call only once since it's called from a loop.
295 295
         static $max_size = null;
296
-        if ( null === $max_size ) {
296
+        if (null === $max_size) {
297 297
             $max_size = $this->get_datauri_maxsize();
298 298
         }
299 299
 
300
-        if ( $path && preg_match( '#\.(jpe?g|png|gif|webp|bmp)$#i', $path ) &&
301
-            file_exists( $path ) && is_readable( $path ) && filesize( $path ) <= $max_size ) {
300
+        if ($path && preg_match('#\.(jpe?g|png|gif|webp|bmp)$#i', $path) &&
301
+            file_exists($path) && is_readable($path) && filesize($path) <= $max_size) {
302 302
 
303 303
             // Seems we have a candidate.
304 304
             $is_candidate = true;
305 305
         } else {
306 306
             // Filter allows overriding default decision (which checks for local file existence).
307
-            $is_candidate = apply_filters( 'autoptimize_filter_css_is_datauri_candidate', false, $path );
307
+            $is_candidate = apply_filters('autoptimize_filter_css_is_datauri_candidate', false, $path);
308 308
         }
309 309
 
310 310
         return $is_candidate;
@@ -329,29 +329,29 @@  discard block
 block discarded – undo
329 329
          * of thing you're probably better of building assets completely
330 330
          * outside of WordPress anyway.
331 331
          */
332
-        if ( null === $max_size ) {
333
-            $max_size = (int) apply_filters( 'autoptimize_filter_css_datauri_maxsize', 4096 );
332
+        if (null === $max_size) {
333
+            $max_size = (int) apply_filters('autoptimize_filter_css_datauri_maxsize', 4096);
334 334
         }
335 335
 
336 336
         return $max_size;
337 337
     }
338 338
 
339
-    private function check_datauri_exclude_list( $url )
339
+    private function check_datauri_exclude_list($url)
340 340
     {
341 341
         static $exclude_list = null;
342 342
         $no_datauris         = array();
343 343
 
344 344
         // Again, skip doing certain stuff repeatedly when loop-called.
345
-        if ( null === $exclude_list ) {
346
-            $exclude_list = apply_filters( 'autoptimize_filter_css_datauri_exclude', '' );
347
-            $no_datauris = array_filter( array_map( 'trim', explode( ',', $exclude_list ) ) );
345
+        if (null === $exclude_list) {
346
+            $exclude_list = apply_filters('autoptimize_filter_css_datauri_exclude', '');
347
+            $no_datauris = array_filter(array_map('trim', explode(',', $exclude_list)));
348 348
         }
349 349
 
350 350
         $matched = false;
351 351
 
352
-        if ( ! empty( $exclude_list ) ) {
353
-            foreach ( $no_datauris as $no_datauri ) {
354
-                if ( false !== strpos( $url, $no_datauri ) ) {
352
+        if (!empty($exclude_list)) {
353
+            foreach ($no_datauris as $no_datauri) {
354
+                if (false !== strpos($url, $no_datauri)) {
355 355
                     $matched = true;
356 356
                     break;
357 357
                 }
@@ -361,7 +361,7 @@  discard block
 block discarded – undo
361 361
         return $matched;
362 362
     }
363 363
 
364
-    private function build_or_get_datauri_image( $path )
364
+    private function build_or_get_datauri_image($path)
365 365
     {
366 366
         /**
367 367
          * TODO/FIXME: document the required return array format, or better yet,
@@ -370,27 +370,27 @@  discard block
 block discarded – undo
370 370
          */
371 371
 
372 372
         // Allows short-circuiting datauri generation for an image.
373
-        $result = apply_filters( 'autoptimize_filter_css_datauri_image', array(), $path );
374
-        if ( ! empty( $result ) ) {
375
-            if ( is_array( $result ) && isset( $result['full'] ) && isset( $result['base64data'] ) ) {
373
+        $result = apply_filters('autoptimize_filter_css_datauri_image', array(), $path);
374
+        if (!empty($result)) {
375
+            if (is_array($result) && isset($result['full']) && isset($result['base64data'])) {
376 376
                 return $result;
377 377
             }
378 378
         }
379 379
 
380
-        $hash = md5( $path );
381
-        $check = new autoptimizeCache( $hash, 'img' );
382
-        if ( $check->check() ) {
380
+        $hash = md5($path);
381
+        $check = new autoptimizeCache($hash, 'img');
382
+        if ($check->check()) {
383 383
             // we have the base64 image in cache.
384 384
             $headAndData = $check->retrieve();
385
-            $_base64data = explode( ';base64,', $headAndData );
385
+            $_base64data = explode(';base64,', $headAndData);
386 386
             $base64data  = $_base64data[1];
387
-            unset( $_base64data );
387
+            unset($_base64data);
388 388
         } else {
389 389
             // It's an image and we don't have it in cache, get the type by extension.
390
-            $exploded_path = explode( '.', $path );
391
-            $type = end( $exploded_path );
390
+            $exploded_path = explode('.', $path);
391
+            $type = end($exploded_path);
392 392
 
393
-            switch ( $type ) {
393
+            switch ($type) {
394 394
                 case 'jpg':
395 395
                 case 'jpeg':
396 396
                     $dataurihead = 'data:image/jpeg;base64,';
@@ -412,15 +412,15 @@  discard block
 block discarded – undo
412 412
             }
413 413
 
414 414
             // Encode the data.
415
-            $base64data  = base64_encode( file_get_contents( $path ) );
416
-            $headAndData = $dataurihead . $base64data;
415
+            $base64data  = base64_encode(file_get_contents($path));
416
+            $headAndData = $dataurihead.$base64data;
417 417
 
418 418
             // Save in cache.
419
-            $check->cache( $headAndData, 'text/plain' );
419
+            $check->cache($headAndData, 'text/plain');
420 420
         }
421
-        unset( $check );
421
+        unset($check);
422 422
 
423
-        return array( 'full' => $headAndData, 'base64data' => $base64data );
423
+        return array('full' => $headAndData, 'base64data' => $base64data);
424 424
     }
425 425
 
426 426
     /**
@@ -432,13 +432,13 @@  discard block
 block discarded – undo
432 432
      *
433 433
      * @return string
434 434
      */
435
-    protected static function replace_longest_matches_first( $string, $replacements = array() )
435
+    protected static function replace_longest_matches_first($string, $replacements = array())
436 436
     {
437
-        if ( ! empty( $replacements ) ) {
437
+        if (!empty($replacements)) {
438 438
             // Sort the replacements array by key length in desc order (so that the longest strings are replaced first).
439
-            $keys = array_map( 'strlen', array_keys( $replacements ) );
440
-            array_multisort( $keys, SORT_DESC, $replacements );
441
-            $string = str_replace( array_keys( $replacements ), array_values( $replacements ), $string );
439
+            $keys = array_map('strlen', array_keys($replacements));
440
+            array_multisort($keys, SORT_DESC, $replacements);
441
+            $string = str_replace(array_keys($replacements), array_values($replacements), $string);
442 442
         }
443 443
 
444 444
         return $string;
@@ -454,15 +454,15 @@  discard block
 block discarded – undo
454 454
      *
455 455
      * @return string
456 456
      */
457
-    public function replace_urls( $code = '' )
457
+    public function replace_urls($code = '')
458 458
     {
459 459
         $replacements = array();
460 460
 
461
-        preg_match_all( self::ASSETS_REGEX, $code, $url_src_matches );
462
-        if ( is_array( $url_src_matches ) && ! empty( $url_src_matches ) ) {
463
-            foreach ( $url_src_matches[1] as $count => $original_url ) {
461
+        preg_match_all(self::ASSETS_REGEX, $code, $url_src_matches);
462
+        if (is_array($url_src_matches) && !empty($url_src_matches)) {
463
+            foreach ($url_src_matches[1] as $count => $original_url) {
464 464
                 // Removes quotes and other cruft.
465
-                $url = trim( $original_url, " \t\n\r\0\x0B\"'" );
465
+                $url = trim($original_url, " \t\n\r\0\x0B\"'");
466 466
 
467 467
                 /**
468 468
                  * TODO/FIXME: Add a way for other code / callable to be called here
@@ -480,17 +480,17 @@  discard block
 block discarded – undo
480 480
                  */
481 481
 
482 482
                 // Do CDN replacement if needed.
483
-                if ( ! empty( $this->cdn_url ) ) {
484
-                    $replacement_url = $this->url_replace_cdn( $url );
483
+                if (!empty($this->cdn_url)) {
484
+                    $replacement_url = $this->url_replace_cdn($url);
485 485
                     // Prepare replacements array.
486
-                    $replacements[ $url_src_matches[1][ $count ] ] = str_replace(
486
+                    $replacements[$url_src_matches[1][$count]] = str_replace(
487 487
                         $original_url, $replacement_url, $url_src_matches[1][$count]
488 488
                     );
489 489
                 }
490 490
             }
491 491
         }
492 492
 
493
-        $code = self::replace_longest_matches_first( $code, $replacements );
493
+        $code = self::replace_longest_matches_first($code, $replacements);
494 494
 
495 495
         return $code;
496 496
     }
@@ -503,26 +503,26 @@  discard block
 block discarded – undo
503 503
      * @param string $code
504 504
      * @return string
505 505
      */
506
-    public function hide_fontface_and_maybe_cdn( $code )
506
+    public function hide_fontface_and_maybe_cdn($code)
507 507
     {
508 508
         // Proceed only if @font-face declarations exist within $code.
509
-        preg_match_all( self::FONT_FACE_REGEX, $code, $fontfaces );
510
-        if ( isset( $fontfaces[0] ) ) {
509
+        preg_match_all(self::FONT_FACE_REGEX, $code, $fontfaces);
510
+        if (isset($fontfaces[0])) {
511 511
             // Check if we need to cdn fonts or not.
512
-            $do_font_cdn = apply_filters( 'autoptimize_filter_css_fonts_cdn', false );
512
+            $do_font_cdn = apply_filters('autoptimize_filter_css_fonts_cdn', false);
513 513
 
514
-            foreach ( $fontfaces[0] as $full_match ) {
514
+            foreach ($fontfaces[0] as $full_match) {
515 515
                 // Keep original match so we can search/replace it.
516 516
                 $match_search = $full_match;
517 517
 
518 518
                 // Do font cdn if needed.
519
-                if ( $do_font_cdn ) {
520
-                    $full_match = $this->replace_urls( $full_match );
519
+                if ($do_font_cdn) {
520
+                    $full_match = $this->replace_urls($full_match);
521 521
                 }
522 522
 
523 523
                 // Replace declaration with its base64 encoded string.
524
-                $replacement = self::build_marker( 'FONTFACE', $full_match );
525
-                $code = str_replace( $match_search, $replacement, $code );
524
+                $replacement = self::build_marker('FONTFACE', $full_match);
525
+                $code = str_replace($match_search, $replacement, $code);
526 526
             }
527 527
         }
528 528
 
@@ -536,16 +536,16 @@  discard block
 block discarded – undo
536 536
      * @param string $code
537 537
      * @return string
538 538
      */
539
-    public function restore_fontface( $code )
539
+    public function restore_fontface($code)
540 540
     {
541
-        return $this->restore_marked_content( 'FONTFACE', $code );
541
+        return $this->restore_marked_content('FONTFACE', $code);
542 542
     }
543 543
 
544 544
     // Re-write (and/or inline) referenced assets.
545
-    public function rewrite_assets( $code )
545
+    public function rewrite_assets($code)
546 546
     {
547 547
         // Handle @font-face rules by hiding and processing them separately.
548
-        $code = $this->hide_fontface_and_maybe_cdn( $code );
548
+        $code = $this->hide_fontface_and_maybe_cdn($code);
549 549
 
550 550
         /**
551 551
          * TODO/FIXME:
@@ -561,30 +561,30 @@  discard block
 block discarded – undo
561 561
         $url_src_matches = array();
562 562
         $imgreplace = array();
563 563
         // Matches and captures anything specified within the literal `url()` and excludes those containing data: URIs.
564
-        preg_match_all( self::ASSETS_REGEX, $code, $url_src_matches );
565
-        if ( is_array( $url_src_matches ) && ! empty( $url_src_matches ) ) {
566
-            foreach ( $url_src_matches[1] as $count => $original_url ) {
564
+        preg_match_all(self::ASSETS_REGEX, $code, $url_src_matches);
565
+        if (is_array($url_src_matches) && !empty($url_src_matches)) {
566
+            foreach ($url_src_matches[1] as $count => $original_url) {
567 567
                 // Removes quotes and other cruft.
568
-                $url = trim( $original_url, " \t\n\r\0\x0B\"'" );
568
+                $url = trim($original_url, " \t\n\r\0\x0B\"'");
569 569
 
570 570
                 // If datauri inlining is turned on, do it.
571 571
                 $inlined = false;
572
-                if ( $this->datauris ) {
572
+                if ($this->datauris) {
573 573
                     $iurl = $url;
574
-                    if ( false !== strpos( $iurl, '?' ) ) {
575
-                        $iurl = strtok( $iurl, '?' );
574
+                    if (false !== strpos($iurl, '?')) {
575
+                        $iurl = strtok($iurl, '?');
576 576
                     }
577 577
 
578
-                    $ipath = $this->getpath( $iurl );
578
+                    $ipath = $this->getpath($iurl);
579 579
 
580
-                    $excluded = $this->check_datauri_exclude_list( $ipath );
581
-                    if ( ! $excluded ) {
582
-                        $is_datauri_candidate = $this->is_datauri_candidate( $ipath );
583
-                        if ( $is_datauri_candidate ) {
584
-                            $datauri     = $this->build_or_get_datauri_image( $ipath );
580
+                    $excluded = $this->check_datauri_exclude_list($ipath);
581
+                    if (!$excluded) {
582
+                        $is_datauri_candidate = $this->is_datauri_candidate($ipath);
583
+                        if ($is_datauri_candidate) {
584
+                            $datauri     = $this->build_or_get_datauri_image($ipath);
585 585
                             $base64data  = $datauri['base64data'];
586 586
                             // Add it to the list for replacement.
587
-                            $imgreplace[ $url_src_matches[1][ $count ] ] = str_replace(
587
+                            $imgreplace[$url_src_matches[1][$count]] = str_replace(
588 588
                                     $original_url,
589 589
                                     $datauri['full'],
590 590
                                     $url_src_matches[1][$count]
@@ -600,20 +600,20 @@  discard block
 block discarded – undo
600 600
                  * inlining isn't turned on, or if a resource is skipped from
601 601
                  * being inlined for whatever reason above.
602 602
                  */
603
-                if ( ! $inlined && ( ! empty( $this->cdn_url ) || has_filter( 'autoptimize_filter_base_replace_cdn' ) ) ) {
603
+                if (!$inlined && (!empty($this->cdn_url) || has_filter('autoptimize_filter_base_replace_cdn'))) {
604 604
                     // Just do the "simple" CDN replacement.
605
-                    $replacement_url = $this->url_replace_cdn( $url );
606
-                    $imgreplace[ $url_src_matches[1][ $count ] ] = str_replace(
605
+                    $replacement_url = $this->url_replace_cdn($url);
606
+                    $imgreplace[$url_src_matches[1][$count]] = str_replace(
607 607
                         $original_url, $replacement_url, $url_src_matches[1][$count]
608 608
                     );
609 609
                 }
610 610
             }
611 611
         }
612 612
 
613
-        $code = self::replace_longest_matches_first( $code, $imgreplace );
613
+        $code = self::replace_longest_matches_first($code, $imgreplace);
614 614
 
615 615
         // Replace back font-face markers with actual font-face declarations.
616
-        $code = $this->restore_fontface( $code );
616
+        $code = $this->restore_fontface($code);
617 617
 
618 618
         return $code;
619 619
     }
@@ -621,29 +621,29 @@  discard block
 block discarded – undo
621 621
     // Joins and optimizes CSS.
622 622
     public function minify()
623 623
     {
624
-        foreach ( $this->css as $group ) {
625
-            list( $media, $css ) = $group;
626
-            if ( preg_match( '#^INLINE;#', $css ) ) {
624
+        foreach ($this->css as $group) {
625
+            list($media, $css) = $group;
626
+            if (preg_match('#^INLINE;#', $css)) {
627 627
                 // <style>.
628
-                $css = preg_replace( '#^INLINE;#', '', $css );
629
-                $css = self::fixurls( ABSPATH . 'index.php', $css ); // ABSPATH already contains a trailing slash.
630
-                $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $css, '' );
631
-                if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
628
+                $css = preg_replace('#^INLINE;#', '', $css);
629
+                $css = self::fixurls(ABSPATH.'index.php', $css); // ABSPATH already contains a trailing slash.
630
+                $tmpstyle = apply_filters('autoptimize_css_individual_style', $css, '');
631
+                if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
632 632
                     $css = $tmpstyle;
633 633
                     $this->alreadyminified = true;
634 634
                 }
635 635
             } else {
636 636
                 // <link>
637
-                if ( false !== $css && file_exists( $css ) && is_readable( $css ) ) {
637
+                if (false !== $css && file_exists($css) && is_readable($css)) {
638 638
                     $cssPath = $css;
639
-                    $css = self::fixurls( $cssPath, file_get_contents( $cssPath ) );
640
-                    $css = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $css );
641
-                    $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $css, $cssPath );
642
-                    if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
639
+                    $css = self::fixurls($cssPath, file_get_contents($cssPath));
640
+                    $css = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $css);
641
+                    $tmpstyle = apply_filters('autoptimize_css_individual_style', $css, $cssPath);
642
+                    if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
643 643
                         $css = $tmpstyle;
644 644
                         $this->alreadyminified = true;
645
-                    } elseif ( $this->can_inject_late( $cssPath, $css ) ) {
646
-                        $css = self::build_injectlater_marker( $cssPath, md5( $css ) );
645
+                    } elseif ($this->can_inject_late($cssPath, $css)) {
646
+                        $css = self::build_injectlater_marker($cssPath, md5($css));
647 647
                     }
648 648
                 } else {
649 649
                     // Couldn't read CSS. Maybe getpath isn't working?
@@ -651,12 +651,12 @@  discard block
 block discarded – undo
651 651
                 }
652 652
             }
653 653
 
654
-            foreach ( $media as $elem ) {
655
-                if ( ! empty( $css ) ) {
656
-                    if ( ! isset( $this->csscode[$elem] ) ) {
654
+            foreach ($media as $elem) {
655
+                if (!empty($css)) {
656
+                    if (!isset($this->csscode[$elem])) {
657 657
                         $this->csscode[$elem] = '';
658 658
                     }
659
-                    $this->csscode[$elem] .= "\n/*FILESTART*/" . $css;
659
+                    $this->csscode[$elem] .= "\n/*FILESTART*/".$css;
660 660
                 }
661 661
             }
662 662
         }
@@ -664,133 +664,133 @@  discard block
 block discarded – undo
664 664
         // Check for duplicate code.
665 665
         $md5list = array();
666 666
         $tmpcss  = $this->csscode;
667
-        foreach ( $tmpcss as $media => $code ) {
668
-            $md5sum    = md5( $code );
667
+        foreach ($tmpcss as $media => $code) {
668
+            $md5sum    = md5($code);
669 669
             $medianame = $media;
670
-            foreach ( $md5list as $med => $sum ) {
670
+            foreach ($md5list as $med => $sum) {
671 671
                 // If same code.
672
-                if ( $sum === $md5sum ) {
672
+                if ($sum === $md5sum) {
673 673
                     // Add the merged code.
674
-                    $medianame                 = $med . ', ' . $media;
674
+                    $medianame                 = $med.', '.$media;
675 675
                     $this->csscode[$medianame] = $code;
676 676
                     $md5list[$medianame]       = $md5list[$med];
677
-                    unset( $this->csscode[$med], $this->csscode[$media], $md5list[$med] );
677
+                    unset($this->csscode[$med], $this->csscode[$media], $md5list[$med]);
678 678
                 }
679 679
             }
680 680
             $md5list[$medianame] = $md5sum;
681 681
         }
682
-        unset( $tmpcss );
682
+        unset($tmpcss);
683 683
 
684 684
         // Manage @imports, while is for recursive import management.
685
-        foreach ( $this->csscode as &$thiscss ) {
685
+        foreach ($this->csscode as &$thiscss) {
686 686
             // Flag to trigger import reconstitution and var to hold external imports.
687 687
             $fiximports       = false;
688 688
             $external_imports = '';
689 689
 
690 690
             // remove comments to avoid importing commented-out imports.
691
-            $thiscss_nocomments = preg_replace( '#/\*.*\*/#Us', '', $thiscss );
692
-            while ( preg_match_all( '#@import +(?:url)?(?:(?:\((["\']?)(?:[^"\')]+)\1\)|(["\'])(?:[^"\']+)\2)(?:[^,;"\']+(?:,[^,;"\']+)*)?)(?:;)#mi', $thiscss_nocomments, $matches ) ) {
693
-                foreach ( $matches[0] as $import ) {
694
-                    if ( $this->isremovable( $import, $this->cssremovables ) ) {
695
-                        $thiscss = str_replace( $import, '', $thiscss );
691
+            $thiscss_nocomments = preg_replace('#/\*.*\*/#Us', '', $thiscss);
692
+            while (preg_match_all('#@import +(?:url)?(?:(?:\((["\']?)(?:[^"\')]+)\1\)|(["\'])(?:[^"\']+)\2)(?:[^,;"\']+(?:,[^,;"\']+)*)?)(?:;)#mi', $thiscss_nocomments, $matches)) {
693
+                foreach ($matches[0] as $import) {
694
+                    if ($this->isremovable($import, $this->cssremovables)) {
695
+                        $thiscss = str_replace($import, '', $thiscss);
696 696
                         $import_ok = true;
697 697
                     } else {
698
-                        $url = trim( preg_replace( '#^.*((?:https?:|ftp:)?//.*\.css).*$#', '$1', trim( $import ) ), " \t\n\r\0\x0B\"'" );
699
-                        $path = $this->getpath( $url );
698
+                        $url = trim(preg_replace('#^.*((?:https?:|ftp:)?//.*\.css).*$#', '$1', trim($import)), " \t\n\r\0\x0B\"'");
699
+                        $path = $this->getpath($url);
700 700
                         $import_ok = false;
701
-                        if ( file_exists( $path ) && is_readable( $path ) ) {
702
-                            $code = addcslashes( self::fixurls( $path, file_get_contents( $path ) ), "\\" );
703
-                            $code = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $code );
704
-                            $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $code, '' );
705
-                            if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
701
+                        if (file_exists($path) && is_readable($path)) {
702
+                            $code = addcslashes(self::fixurls($path, file_get_contents($path)), "\\");
703
+                            $code = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $code);
704
+                            $tmpstyle = apply_filters('autoptimize_css_individual_style', $code, '');
705
+                            if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
706 706
                                 $code = $tmpstyle;
707 707
                                 $this->alreadyminified = true;
708
-                            } elseif ( $this->can_inject_late( $path, $code ) ) {
709
-                                $code = self::build_injectlater_marker( $path, md5( $code ) );
708
+                            } elseif ($this->can_inject_late($path, $code)) {
709
+                                $code = self::build_injectlater_marker($path, md5($code));
710 710
                             }
711 711
 
712
-                            if ( ! empty( $code ) ) {
713
-                                $tmp_thiscss = preg_replace( '#(/\*FILESTART\*/.*)' . preg_quote( $import, '#' ) . '#Us', '/*FILESTART2*/' . $code . '$1', $thiscss );
714
-                                if ( ! empty( $tmp_thiscss ) ) {
712
+                            if (!empty($code)) {
713
+                                $tmp_thiscss = preg_replace('#(/\*FILESTART\*/.*)'.preg_quote($import, '#').'#Us', '/*FILESTART2*/'.$code.'$1', $thiscss);
714
+                                if (!empty($tmp_thiscss)) {
715 715
                                     $thiscss = $tmp_thiscss;
716 716
                                     $import_ok = true;
717
-                                    unset( $tmp_thiscss );
717
+                                    unset($tmp_thiscss);
718 718
                                 }
719 719
                             }
720
-                            unset( $code );
720
+                            unset($code);
721 721
                         }
722 722
                     }
723
-                    if ( ! $import_ok ) {
723
+                    if (!$import_ok) {
724 724
                         // External imports and general fall-back.
725 725
                         $external_imports .= $import;
726 726
 
727
-                        $thiscss    = str_replace( $import, '', $thiscss );
727
+                        $thiscss    = str_replace($import, '', $thiscss);
728 728
                         $fiximports = true;
729 729
                     }
730 730
                 }
731
-                $thiscss = preg_replace( '#/\*FILESTART\*/#', '', $thiscss );
732
-                $thiscss = preg_replace( '#/\*FILESTART2\*/#', '/*FILESTART*/', $thiscss );
731
+                $thiscss = preg_replace('#/\*FILESTART\*/#', '', $thiscss);
732
+                $thiscss = preg_replace('#/\*FILESTART2\*/#', '/*FILESTART*/', $thiscss);
733 733
 
734 734
                 // and update $thiscss_nocomments before going into next iteration in while loop.
735
-                $thiscss_nocomments = preg_replace( '#/\*.*\*/#Us', '', $thiscss );
735
+                $thiscss_nocomments = preg_replace('#/\*.*\*/#Us', '', $thiscss);
736 736
             }
737
-            unset( $thiscss_nocomments );
737
+            unset($thiscss_nocomments);
738 738
 
739 739
             // Add external imports to top of aggregated CSS.
740
-            if ( $fiximports ) {
741
-                $thiscss = $external_imports . $thiscss;
740
+            if ($fiximports) {
741
+                $thiscss = $external_imports.$thiscss;
742 742
             }
743 743
         }
744
-        unset( $thiscss );
744
+        unset($thiscss);
745 745
 
746 746
         // $this->csscode has all the uncompressed code now.
747
-        foreach ( $this->csscode as &$code ) {
747
+        foreach ($this->csscode as &$code) {
748 748
             // Check for already-minified code.
749
-            $hash = md5( $code );
750
-            do_action( 'autoptimize_action_css_hash', $hash );
751
-            $ccheck = new autoptimizeCache( $hash, 'css' );
752
-            if ( $ccheck->check() ) {
749
+            $hash = md5($code);
750
+            do_action('autoptimize_action_css_hash', $hash);
751
+            $ccheck = new autoptimizeCache($hash, 'css');
752
+            if ($ccheck->check()) {
753 753
                 $code = $ccheck->retrieve();
754
-                $this->hashmap[md5( $code )] = $hash;
754
+                $this->hashmap[md5($code)] = $hash;
755 755
                 continue;
756 756
             }
757
-            unset( $ccheck );
757
+            unset($ccheck);
758 758
 
759 759
             // Rewrite and/or inline referenced assets.
760
-            $code = $this->rewrite_assets( $code );
760
+            $code = $this->rewrite_assets($code);
761 761
 
762 762
             // Minify.
763
-            $code = $this->run_minifier_on( $code );
763
+            $code = $this->run_minifier_on($code);
764 764
 
765 765
             // Bring back INJECTLATER stuff.
766
-            $code = $this->inject_minified( $code );
766
+            $code = $this->inject_minified($code);
767 767
 
768 768
             // Filter results.
769
-            $tmp_code = apply_filters( 'autoptimize_css_after_minify', $code );
770
-            if ( ! empty( $tmp_code ) ) {
769
+            $tmp_code = apply_filters('autoptimize_css_after_minify', $code);
770
+            if (!empty($tmp_code)) {
771 771
                 $code = $tmp_code;
772
-                unset( $tmp_code );
772
+                unset($tmp_code);
773 773
             }
774 774
 
775
-            $this->hashmap[md5( $code )] = $hash;
775
+            $this->hashmap[md5($code)] = $hash;
776 776
         }
777 777
 
778
-        unset( $code );
778
+        unset($code);
779 779
         return true;
780 780
     }
781 781
 
782
-    public function run_minifier_on( $code )
782
+    public function run_minifier_on($code)
783 783
     {
784
-        if ( ! $this->alreadyminified ) {
785
-            $do_minify = apply_filters( 'autoptimize_css_do_minify', true );
784
+        if (!$this->alreadyminified) {
785
+            $do_minify = apply_filters('autoptimize_css_do_minify', true);
786 786
 
787
-            if ( $do_minify ) {
787
+            if ($do_minify) {
788 788
                 $cssmin   = new autoptimizeCSSmin();
789
-                $tmp_code = trim( $cssmin->run( $code ) );
789
+                $tmp_code = trim($cssmin->run($code));
790 790
 
791
-                if ( ! empty( $tmp_code ) ) {
791
+                if (!empty($tmp_code)) {
792 792
                     $code = $tmp_code;
793
-                    unset( $tmp_code );
793
+                    unset($tmp_code);
794 794
                 }
795 795
             }
796 796
         }
@@ -802,14 +802,14 @@  discard block
 block discarded – undo
802 802
     public function cache()
803 803
     {
804 804
         // CSS cache.
805
-        foreach ( $this->csscode as $media => $code ) {
806
-            $md5 = $this->hashmap[md5( $code )];
807
-            $cache = new autoptimizeCache( $md5, 'css' );
808
-            if ( ! $cache->check() ) {
805
+        foreach ($this->csscode as $media => $code) {
806
+            $md5 = $this->hashmap[md5($code)];
807
+            $cache = new autoptimizeCache($md5, 'css');
808
+            if (!$cache->check()) {
809 809
                 // Cache our code.
810
-                $cache->cache( $code, 'text/css' );
810
+                $cache->cache($code, 'text/css');
811 811
             }
812
-            $this->url[$media] = AUTOPTIMIZE_CACHE_URL . $cache->getname();
812
+            $this->url[$media] = AUTOPTIMIZE_CACHE_URL.$cache->getname();
813 813
         }
814 814
     }
815 815
 
@@ -817,142 +817,142 @@  discard block
 block discarded – undo
817 817
     public function getcontent()
818 818
     {
819 819
         // Restore the full content (only applies when "autoptimize_filter_css_justhead" filter is true).
820
-        if ( ! empty( $this->restofcontent ) ) {
820
+        if (!empty($this->restofcontent)) {
821 821
             $this->content .= $this->restofcontent;
822 822
             $this->restofcontent = '';
823 823
         }
824 824
 
825 825
         // type is not added by default.
826 826
         $type_css = '';
827
-        if ( apply_filters( 'autoptimize_filter_cssjs_addtype', false ) ) {
827
+        if (apply_filters('autoptimize_filter_cssjs_addtype', false)) {
828 828
             $type_css = 'type="text/css" ';
829 829
         }
830 830
 
831 831
         // Inject the new stylesheets.
832
-        $replaceTag = array( '<title', 'before' );
833
-        $replaceTag = apply_filters( 'autoptimize_filter_css_replacetag', $replaceTag, $this->content );
832
+        $replaceTag = array('<title', 'before');
833
+        $replaceTag = apply_filters('autoptimize_filter_css_replacetag', $replaceTag, $this->content);
834 834
 
835
-        if ( $this->inline ) {
836
-            foreach ( $this->csscode as $media => $code ) {
837
-                $this->inject_in_html( '<style ' . $type_css . 'media="' . $media . '">' . $code . '</style>', $replaceTag );
835
+        if ($this->inline) {
836
+            foreach ($this->csscode as $media => $code) {
837
+                $this->inject_in_html('<style '.$type_css.'media="'.$media.'">'.$code.'</style>', $replaceTag);
838 838
             }
839 839
         } else {
840
-            if ( $this->defer ) {
840
+            if ($this->defer) {
841 841
                 $preloadCssBlock    = '';
842 842
                 $inlined_ccss_block = '';
843 843
                 $noScriptCssBlock   = "<noscript id=\"aonoscrcss\">";
844 844
 
845 845
                 $defer_inline_code = $this->defer_inline;
846
-                if ( ! empty( $defer_inline_code ) ) {
847
-                    if ( apply_filters( 'autoptimize_filter_css_critcss_minify', true ) ) {
848
-                        $iCssHash = md5( $defer_inline_code );
849
-                        $iCssCache = new autoptimizeCache( $iCssHash, 'css' );
850
-                        if ( $iCssCache->check() ) {
846
+                if (!empty($defer_inline_code)) {
847
+                    if (apply_filters('autoptimize_filter_css_critcss_minify', true)) {
848
+                        $iCssHash = md5($defer_inline_code);
849
+                        $iCssCache = new autoptimizeCache($iCssHash, 'css');
850
+                        if ($iCssCache->check()) {
851 851
                             // we have the optimized inline CSS in cache.
852 852
                             $defer_inline_code = $iCssCache->retrieve();
853 853
                         } else {
854 854
                             $cssmin   = new autoptimizeCSSmin();
855
-                            $tmp_code = trim( $cssmin->run( $defer_inline_code ) );
855
+                            $tmp_code = trim($cssmin->run($defer_inline_code));
856 856
 
857
-                            if ( ! empty( $tmp_code ) ) {
857
+                            if (!empty($tmp_code)) {
858 858
                                 $defer_inline_code = $tmp_code;
859
-                                $iCssCache->cache( $defer_inline_code, 'text/css' );
860
-                                unset( $tmp_code );
859
+                                $iCssCache->cache($defer_inline_code, 'text/css');
860
+                                unset($tmp_code);
861 861
                             }
862 862
                         }
863 863
                     }
864 864
                     // inlined critical css set here, but injected when full CSS is injected
865 865
                     // to avoid CSS containing SVG with <title tag receiving the full CSS link.
866
-                    $inlined_ccss_block = '<style ' . $type_css . 'id="aoatfcss" media="all">' . $defer_inline_code . '</style>';
866
+                    $inlined_ccss_block = '<style '.$type_css.'id="aoatfcss" media="all">'.$defer_inline_code.'</style>';
867 867
                 }
868 868
             }
869 869
 
870
-            foreach ( $this->url as $media => $url ) {
871
-                $url = $this->url_replace_cdn( $url );
870
+            foreach ($this->url as $media => $url) {
871
+                $url = $this->url_replace_cdn($url);
872 872
 
873 873
                 // Add the stylesheet either deferred (import at bottom) or normal links in head.
874
-                if ( $this->defer ) {
874
+                if ($this->defer) {
875 875
                     $preloadOnLoad = autoptimizeConfig::get_ao_css_preload_onload();
876 876
 
877
-                    $preloadCssBlock .= '<link rel="preload" as="style" media="' . $media . '" href="' . $url . '" onload="' . $preloadOnLoad . '" />';
878
-                    $noScriptCssBlock .= '<link ' . $type_css . 'media="' . $media . '" href="' . $url . '" rel="stylesheet" />';
877
+                    $preloadCssBlock .= '<link rel="preload" as="style" media="'.$media.'" href="'.$url.'" onload="'.$preloadOnLoad.'" />';
878
+                    $noScriptCssBlock .= '<link '.$type_css.'media="'.$media.'" href="'.$url.'" rel="stylesheet" />';
879 879
                 } else {
880
-                    if ( strlen( $this->csscode[$media] ) > $this->cssinlinesize ) {
881
-                        $this->inject_in_html( '<link ' . $type_css . 'media="' . $media . '" href="' . $url . '" rel="stylesheet" />', $replaceTag );
882
-                    } elseif ( strlen( $this->csscode[$media] ) > 0 ) {
883
-                        $this->inject_in_html( '<style ' . $type_css . 'media="' . $media . '">' . $this->csscode[$media] . '</style>', $replaceTag );
880
+                    if (strlen($this->csscode[$media]) > $this->cssinlinesize) {
881
+                        $this->inject_in_html('<link '.$type_css.'media="'.$media.'" href="'.$url.'" rel="stylesheet" />', $replaceTag);
882
+                    } elseif (strlen($this->csscode[$media]) > 0) {
883
+                        $this->inject_in_html('<style '.$type_css.'media="'.$media.'">'.$this->csscode[$media].'</style>', $replaceTag);
884 884
                     }
885 885
                 }
886 886
             }
887 887
 
888
-            if ( $this->defer ) {
888
+            if ($this->defer) {
889 889
                 $preload_polyfill = autoptimizeConfig::get_ao_css_preload_polyfill();
890 890
                 $noScriptCssBlock .= '</noscript>';
891 891
                 // Inject inline critical CSS, the preloaded full CSS and the noscript-CSS.
892
-                $this->inject_in_html( $inlined_ccss_block . $preloadCssBlock . $noScriptCssBlock, $replaceTag );
892
+                $this->inject_in_html($inlined_ccss_block.$preloadCssBlock.$noScriptCssBlock, $replaceTag);
893 893
 
894 894
                 // Adds preload polyfill at end of body tag.
895 895
                 $this->inject_in_html(
896
-                    apply_filters( 'autoptimize_css_preload_polyfill', $preload_polyfill ),
897
-                    apply_filters( 'autoptimize_css_preload_polyfill_injectat', array( '</body>', 'before' ) )
896
+                    apply_filters('autoptimize_css_preload_polyfill', $preload_polyfill),
897
+                    apply_filters('autoptimize_css_preload_polyfill_injectat', array('</body>', 'before'))
898 898
                 );
899 899
             }
900 900
         }
901 901
 
902 902
         // restore comments.
903
-        $this->content = $this->restore_comments( $this->content );
903
+        $this->content = $this->restore_comments($this->content);
904 904
 
905 905
         // restore IE hacks.
906
-        $this->content = $this->restore_iehacks( $this->content );
906
+        $this->content = $this->restore_iehacks($this->content);
907 907
 
908 908
         // restore (no)script.
909
-        $this->content = $this->restore_marked_content( 'SCRIPT', $this->content );
909
+        $this->content = $this->restore_marked_content('SCRIPT', $this->content);
910 910
 
911 911
         // Restore noptimize.
912
-        $this->content = $this->restore_noptimize( $this->content );
912
+        $this->content = $this->restore_noptimize($this->content);
913 913
 
914 914
         // Return the modified stylesheet.
915 915
         return $this->content;
916 916
     }
917 917
 
918
-    static function fixurls( $file, $code )
918
+    static function fixurls($file, $code)
919 919
     {
920 920
         // Switch all imports to the url() syntax.
921
-        $code = preg_replace( '#@import ("|\')(.+?)\.css.*?("|\')#', '@import url("${2}.css")', $code );
921
+        $code = preg_replace('#@import ("|\')(.+?)\.css.*?("|\')#', '@import url("${2}.css")', $code);
922 922
 
923
-        if ( preg_match_all( self::ASSETS_REGEX, $code, $matches ) ) {
924
-            $file = str_replace( WP_ROOT_DIR, '/', $file );
923
+        if (preg_match_all(self::ASSETS_REGEX, $code, $matches)) {
924
+            $file = str_replace(WP_ROOT_DIR, '/', $file);
925 925
             /**
926 926
              * rollback as per https://github.com/futtta/autoptimize/issues/94
927 927
              * $file = str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', $file );
928 928
              */
929
-            $dir = dirname( $file ); // Like /themes/expound/css.
929
+            $dir = dirname($file); // Like /themes/expound/css.
930 930
 
931 931
             /**
932 932
              * $dir should not contain backslashes, since it's used to replace
933 933
              * urls, but it can contain them when running on Windows because
934 934
              * fixurls() is sometimes called with `ABSPATH . 'index.php'`
935 935
              */
936
-            $dir = str_replace( '\\', '/', $dir );
937
-            unset( $file ); // not used below at all.
936
+            $dir = str_replace('\\', '/', $dir);
937
+            unset($file); // not used below at all.
938 938
 
939 939
             $replace = array();
940
-            foreach ( $matches[1] as $k => $url ) {
940
+            foreach ($matches[1] as $k => $url) {
941 941
                 // Remove quotes.
942
-                $url    = trim( $url, " \t\n\r\0\x0B\"'" );
943
-                $noQurl = trim( $url, "\"'" );
944
-                if ( $url !== $noQurl ) {
942
+                $url    = trim($url, " \t\n\r\0\x0B\"'");
943
+                $noQurl = trim($url, "\"'");
944
+                if ($url !== $noQurl) {
945 945
                     $removedQuotes = true;
946 946
                 } else {
947 947
                     $removedQuotes = false;
948 948
                 }
949 949
 
950
-                if ( '' === $noQurl ) {
950
+                if ('' === $noQurl) {
951 951
                     continue;
952 952
                 }
953 953
 
954 954
                 $url = $noQurl;
955
-                if ( '/' === $url[0] || preg_match( '#^(https?://|ftp://|data:)#i', $url ) ) {
955
+                if ('/' === $url[0] || preg_match('#^(https?://|ftp://|data:)#i', $url)) {
956 956
                     // URL is protocol-relative, host-relative or something we don't touch.
957 957
                     continue;
958 958
                 } else {
@@ -961,49 +961,49 @@  discard block
 block discarded – undo
961 961
                      * rollback as per https://github.com/futtta/autoptimize/issues/94
962 962
                      * $newurl = preg_replace( '/https?:/', '', str_replace( ' ', '%20', AUTOPTIMIZE_WP_CONTENT_URL . str_replace( '//', '/', $dir . '/' . $url ) ) );
963 963
                      */
964
-                    $newurl = preg_replace( '/https?:/', '', str_replace( ' ', '%20', AUTOPTIMIZE_WP_ROOT_URL . str_replace( '//', '/', $dir . '/' . $url ) ) );
965
-                    $newurl = apply_filters( 'autoptimize_filter_css_fixurl_newurl', $newurl );
964
+                    $newurl = preg_replace('/https?:/', '', str_replace(' ', '%20', AUTOPTIMIZE_WP_ROOT_URL.str_replace('//', '/', $dir.'/'.$url)));
965
+                    $newurl = apply_filters('autoptimize_filter_css_fixurl_newurl', $newurl);
966 966
 
967 967
                     /**
968 968
                      * Hash the url + whatever was behind potentially for replacement
969 969
                      * We must do this, or different css classes referencing the same bg image (but
970 970
                      * different parts of it, say, in sprites and such) loose their stuff...
971 971
                      */
972
-                    $hash = md5( $url . $matches[2][$k] );
973
-                    $code = str_replace( $matches[0][$k], $hash, $code );
972
+                    $hash = md5($url.$matches[2][$k]);
973
+                    $code = str_replace($matches[0][$k], $hash, $code);
974 974
 
975
-                    if ( $removedQuotes ) {
976
-                        $replace[$hash] = "url('" . $newurl . "')" . $matches[2][$k];
975
+                    if ($removedQuotes) {
976
+                        $replace[$hash] = "url('".$newurl."')".$matches[2][$k];
977 977
                     } else {
978
-                        $replace[$hash] = 'url(' . $newurl . ')' . $matches[2][$k];
978
+                        $replace[$hash] = 'url('.$newurl.')'.$matches[2][$k];
979 979
                     }
980 980
                 }
981 981
             }
982 982
 
983
-            $code = self::replace_longest_matches_first( $code, $replace );
983
+            $code = self::replace_longest_matches_first($code, $replace);
984 984
         }
985 985
 
986 986
         return $code;
987 987
     }
988 988
 
989
-    private function ismovable( $tag )
989
+    private function ismovable($tag)
990 990
     {
991
-        if ( ! $this->aggregate ) {
991
+        if (!$this->aggregate) {
992 992
             return false;
993 993
         }
994 994
 
995
-        if ( ! empty( $this->whitelist ) ) {
996
-            foreach ( $this->whitelist as $match ) {
997
-                if ( false !== strpos( $tag, $match ) ) {
995
+        if (!empty($this->whitelist)) {
996
+            foreach ($this->whitelist as $match) {
997
+                if (false !== strpos($tag, $match)) {
998 998
                     return true;
999 999
                 }
1000 1000
             }
1001 1001
             // no match with whitelist.
1002 1002
             return false;
1003 1003
         } else {
1004
-            if ( is_array( $this->dontmove ) && ! empty( $this->dontmove ) ) {
1005
-                foreach ( $this->dontmove as $match ) {
1006
-                    if ( false !== strpos( $tag, $match ) ) {
1004
+            if (is_array($this->dontmove) && !empty($this->dontmove)) {
1005
+                foreach ($this->dontmove as $match) {
1006
+                    if (false !== strpos($tag, $match)) {
1007 1007
                         // Matched something.
1008 1008
                         return false;
1009 1009
                     }
@@ -1015,22 +1015,22 @@  discard block
 block discarded – undo
1015 1015
         }
1016 1016
     }
1017 1017
 
1018
-    private function can_inject_late( $cssPath, $css )
1018
+    private function can_inject_late($cssPath, $css)
1019 1019
     {
1020
-        $consider_minified_array = apply_filters( 'autoptimize_filter_css_consider_minified', false, $cssPath );
1021
-        if ( true !== $this->inject_min_late ) {
1020
+        $consider_minified_array = apply_filters('autoptimize_filter_css_consider_minified', false, $cssPath);
1021
+        if (true !== $this->inject_min_late) {
1022 1022
             // late-inject turned off.
1023 1023
             return false;
1024
-        } elseif ( ( false === strpos( $cssPath, 'min.css' ) ) && ( str_replace( $consider_minified_array, '', $cssPath ) === $cssPath ) ) {
1024
+        } elseif ((false === strpos($cssPath, 'min.css')) && (str_replace($consider_minified_array, '', $cssPath) === $cssPath)) {
1025 1025
             // file not minified based on filename & filter.
1026 1026
             return false;
1027
-        } elseif ( false !== strpos( $css, '@import' ) ) {
1027
+        } elseif (false !== strpos($css, '@import')) {
1028 1028
             // can't late-inject files with imports as those need to be aggregated.
1029 1029
             return false;
1030
-        } elseif ( ( false !== strpos( $css, '@font-face' ) ) && ( apply_filters( 'autoptimize_filter_css_fonts_cdn', false ) === true ) && ( ! empty( $this->cdn_url ) ) ) {
1030
+        } elseif ((false !== strpos($css, '@font-face')) && (apply_filters('autoptimize_filter_css_fonts_cdn', false) === true) && (!empty($this->cdn_url))) {
1031 1031
             // don't late-inject CSS with font-src's if fonts are set to be CDN'ed.
1032 1032
             return false;
1033
-        } elseif ( ( ( $this->datauris == true ) || ( ! empty( $this->cdn_url ) ) ) && preg_match( '#background[^;}]*url\(#Ui', $css ) ) {
1033
+        } elseif ((($this->datauris == true) || (!empty($this->cdn_url))) && preg_match('#background[^;}]*url\(#Ui', $css)) {
1034 1034
             // don't late-inject CSS with images if CDN is set OR if image inlining is on.
1035 1035
             return false;
1036 1036
         } else {
@@ -1048,35 +1048,35 @@  discard block
 block discarded – undo
1048 1048
      *
1049 1049
      * @return bool|string Url pointing to the minified css file or false.
1050 1050
      */
1051
-    public function minify_single( $filepath, $cache_miss = false )
1051
+    public function minify_single($filepath, $cache_miss = false)
1052 1052
     {
1053
-        $contents = $this->prepare_minify_single( $filepath );
1053
+        $contents = $this->prepare_minify_single($filepath);
1054 1054
 
1055
-        if ( empty( $contents ) ) {
1055
+        if (empty($contents)) {
1056 1056
             return false;
1057 1057
         }
1058 1058
 
1059 1059
         // Check cache.
1060
-        $hash  = 'single_' . md5( $contents );
1061
-        $cache = new autoptimizeCache( $hash, 'css' );
1062
-        do_action( 'autoptimize_action_css_hash', $hash );
1060
+        $hash  = 'single_'.md5($contents);
1061
+        $cache = new autoptimizeCache($hash, 'css');
1062
+        do_action('autoptimize_action_css_hash', $hash);
1063 1063
 
1064 1064
         // If not in cache already, minify...
1065
-        if ( ! $cache->check() || $cache_miss ) {
1065
+        if (!$cache->check() || $cache_miss) {
1066 1066
             // Fixurls...
1067
-            $contents = self::fixurls( $filepath, $contents );
1067
+            $contents = self::fixurls($filepath, $contents);
1068 1068
             // CDN-replace any referenced assets if needed...
1069
-            $contents = $this->hide_fontface_and_maybe_cdn( $contents );
1070
-            $contents = $this->replace_urls( $contents );
1071
-            $contents = $this->restore_fontface( $contents );
1069
+            $contents = $this->hide_fontface_and_maybe_cdn($contents);
1070
+            $contents = $this->replace_urls($contents);
1071
+            $contents = $this->restore_fontface($contents);
1072 1072
             // Now minify...
1073 1073
             $cssmin   = new autoptimizeCSSmin();
1074
-            $contents = trim( $cssmin->run( $contents ) );
1074
+            $contents = trim($cssmin->run($contents));
1075 1075
             // Store in cache.
1076
-            $cache->cache( $contents, 'text/css' );
1076
+            $cache->cache($contents, 'text/css');
1077 1077
         }
1078 1078
 
1079
-        $url = $this->build_minify_single_url( $cache );
1079
+        $url = $this->build_minify_single_url($cache);
1080 1080
 
1081 1081
         return $url;
1082 1082
     }
@@ -1096,18 +1096,18 @@  discard block
 block discarded – undo
1096 1096
         return $this->options;
1097 1097
     }
1098 1098
 
1099
-    public function replaceOptions( $options )
1099
+    public function replaceOptions($options)
1100 1100
     {
1101 1101
         $this->options = $options;
1102 1102
     }
1103 1103
 
1104
-    public function setOption( $name, $value )
1104
+    public function setOption($name, $value)
1105 1105
     {
1106 1106
         $this->options[$name] = $value;
1107 1107
         $this->$name = $value;
1108 1108
     }
1109 1109
 
1110
-    public function getOption( $name )
1110
+    public function getOption($name)
1111 1111
     {
1112 1112
         return $this->options[$name];
1113 1113
     }
Please login to merge, or discard this patch.
classes/autoptimizeMain.php 1 patch
Spacing   +165 added lines, -165 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,104 +50,104 @@  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' ) );
63
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_partners_tab' ) );
64
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_criticalcss_tab' ) );
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'));
63
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_partners_tab'));
64
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_criticalcss_tab'));
65 65
 
66
-        add_action( 'init', array( $this, 'load_textdomain' ) );
67
-        add_action( 'admin_init', array( 'PAnD', 'init' ) );
66
+        add_action('init', array($this, 'load_textdomain'));
67
+        add_action('admin_init', array('PAnD', 'init'));
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
-        register_activation_hook( $this->filepath, array( $this, 'on_activate' ) );
74
+        register_activation_hook($this->filepath, array($this, 'on_activate'));
75 75
     }
76 76
 
77 77
     public function on_activate()
78 78
     {
79
-        register_uninstall_hook( $this->filepath, 'autoptimizeMain::on_uninstall' );
79
+        register_uninstall_hook($this->filepath, 'autoptimizeMain::on_uninstall');
80 80
     }
81 81
 
82 82
     public function load_textdomain()
83 83
     {
84
-        load_plugin_textdomain( 'autoptimize' );
84
+        load_plugin_textdomain('autoptimize');
85 85
     }
86 86
 
87 87
     public function setup()
88 88
     {
89 89
         // Do we gzip in php when caching or is the webserver doing it?
90
-        define( 'AUTOPTIMIZE_CACHE_NOGZIP', (bool) autoptimizeOptionWrapper::get_option( 'autoptimize_cache_nogzip' ) );
90
+        define('AUTOPTIMIZE_CACHE_NOGZIP', (bool) autoptimizeOptionWrapper::get_option('autoptimize_cache_nogzip'));
91 91
 
92 92
         // These can be overridden by specifying them in wp-config.php or such.
93
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_NAME' ) ) {
94
-            define( 'AUTOPTIMIZE_WP_CONTENT_NAME', '/' . wp_basename( WP_CONTENT_DIR ) );
93
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_NAME')) {
94
+            define('AUTOPTIMIZE_WP_CONTENT_NAME', '/'.wp_basename(WP_CONTENT_DIR));
95 95
         }
96
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_CHILD_DIR' ) ) {
97
-            define( 'AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/' );
96
+        if (!defined('AUTOPTIMIZE_CACHE_CHILD_DIR')) {
97
+            define('AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/');
98 98
         }
99
-        if ( ! defined( 'AUTOPTIMIZE_CACHEFILE_PREFIX' ) ) {
100
-            define( 'AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_' );
99
+        if (!defined('AUTOPTIMIZE_CACHEFILE_PREFIX')) {
100
+            define('AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_');
101 101
         }
102 102
         // Note: trailing slash is not optional!
103
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
104
-            define( 'AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname() );
103
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
104
+            define('AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname());
105 105
         }
106 106
 
107
-        define( 'WP_ROOT_DIR', substr( WP_CONTENT_DIR, 0, strlen( WP_CONTENT_DIR ) - strlen( AUTOPTIMIZE_WP_CONTENT_NAME ) ) );
107
+        define('WP_ROOT_DIR', substr(WP_CONTENT_DIR, 0, strlen(WP_CONTENT_DIR) - strlen(AUTOPTIMIZE_WP_CONTENT_NAME)));
108 108
 
109
-        if ( ! defined( 'AUTOPTIMIZE_WP_SITE_URL' ) ) {
110
-            if ( function_exists( 'domain_mapping_siteurl' ) ) {
111
-                define( 'AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl( get_current_blog_id() ) );
109
+        if (!defined('AUTOPTIMIZE_WP_SITE_URL')) {
110
+            if (function_exists('domain_mapping_siteurl')) {
111
+                define('AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl(get_current_blog_id()));
112 112
             } else {
113
-                define( 'AUTOPTIMIZE_WP_SITE_URL', site_url() );
113
+                define('AUTOPTIMIZE_WP_SITE_URL', site_url());
114 114
             }
115 115
         }
116
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_URL' ) ) {
117
-            if ( function_exists( 'get_original_url' ) ) {
118
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', str_replace( get_original_url( AUTOPTIMIZE_WP_SITE_URL ), AUTOPTIMIZE_WP_SITE_URL, content_url() ) );
116
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_URL')) {
117
+            if (function_exists('get_original_url')) {
118
+                define('AUTOPTIMIZE_WP_CONTENT_URL', str_replace(get_original_url(AUTOPTIMIZE_WP_SITE_URL), AUTOPTIMIZE_WP_SITE_URL, content_url()));
119 119
             } else {
120
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', content_url() );
120
+                define('AUTOPTIMIZE_WP_CONTENT_URL', content_url());
121 121
             }
122 122
         }
123
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_URL' ) ) {
124
-            if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
123
+        if (!defined('AUTOPTIMIZE_CACHE_URL')) {
124
+            if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
125 125
                 $blog_id = get_current_blog_id();
126
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR . $blog_id . '/' );
126
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR.$blog_id.'/');
127 127
             } else {
128
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR );
128
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR);
129 129
             }
130 130
         }
131
-        if ( ! defined( 'AUTOPTIMIZE_WP_ROOT_URL' ) ) {
132
-            define( 'AUTOPTIMIZE_WP_ROOT_URL', str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL ) );
131
+        if (!defined('AUTOPTIMIZE_WP_ROOT_URL')) {
132
+            define('AUTOPTIMIZE_WP_ROOT_URL', str_replace(AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL));
133 133
         }
134
-        if ( ! defined( 'AUTOPTIMIZE_HASH' ) ) {
135
-            define( 'AUTOPTIMIZE_HASH', wp_hash( AUTOPTIMIZE_CACHE_URL ) );
134
+        if (!defined('AUTOPTIMIZE_HASH')) {
135
+            define('AUTOPTIMIZE_HASH', wp_hash(AUTOPTIMIZE_CACHE_URL));
136 136
         }
137
-        if ( ! defined( 'AUTOPTIMIZE_SITE_DOMAIN' ) ) {
138
-            define( 'AUTOPTIMIZE_SITE_DOMAIN', parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) );
137
+        if (!defined('AUTOPTIMIZE_SITE_DOMAIN')) {
138
+            define('AUTOPTIMIZE_SITE_DOMAIN', parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST));
139 139
         }
140 140
 
141 141
         // Multibyte-capable string replacements are available with a filter.
142 142
         // Also requires 'mbstring' extension.
143
-        $with_mbstring = apply_filters( 'autoptimize_filter_main_use_mbstring', false );
144
-        if ( $with_mbstring ) {
145
-            autoptimizeUtils::mbstring_available( \extension_loaded( 'mbstring' ) );
143
+        $with_mbstring = apply_filters('autoptimize_filter_main_use_mbstring', false);
144
+        if ($with_mbstring) {
145
+            autoptimizeUtils::mbstring_available(\extension_loaded('mbstring'));
146 146
         } else {
147
-            autoptimizeUtils::mbstring_available( false );
147
+            autoptimizeUtils::mbstring_available(false);
148 148
         }
149 149
 
150
-        do_action( 'autoptimize_setup_done' );
150
+        do_action('autoptimize_setup_done');
151 151
     }
152 152
 
153 153
     /**
@@ -157,61 +157,61 @@  discard block
 block discarded – undo
157 157
      */
158 158
     public function version_upgrades_check()
159 159
     {
160
-        autoptimizeVersionUpdatesHandler::check_installed_and_update( $this->version );
160
+        autoptimizeVersionUpdatesHandler::check_installed_and_update($this->version);
161 161
     }
162 162
 
163 163
     public function check_cache_and_run()
164 164
     {
165
-        if ( autoptimizeCache::cacheavail() ) {
165
+        if (autoptimizeCache::cacheavail()) {
166 166
             $conf = autoptimizeConfig::instance();
167
-            if ( $conf->get( 'autoptimize_html' ) || $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper() ) {
168
-                if ( ! defined( 'AUTOPTIMIZE_NOBUFFER_OPTIMIZE' ) ) {
167
+            if ($conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper()) {
168
+                if (!defined('AUTOPTIMIZE_NOBUFFER_OPTIMIZE')) {
169 169
                     // Hook into WordPress frontend.
170
-                    if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
170
+                    if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
171 171
                         add_action(
172 172
                             'init',
173
-                            array( $this, 'start_buffering' ),
173
+                            array($this, 'start_buffering'),
174 174
                             self::INIT_EARLIER_PRIORITY
175 175
                         );
176 176
                     } else {
177
-                        if ( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) ) {
178
-                            define( 'AUTOPTIMIZE_HOOK_INTO', 'template_redirect' );
177
+                        if (!defined('AUTOPTIMIZE_HOOK_INTO')) {
178
+                            define('AUTOPTIMIZE_HOOK_INTO', 'template_redirect');
179 179
                         }
180 180
                         add_action(
181
-                            constant( 'AUTOPTIMIZE_HOOK_INTO' ),
182
-                            array( $this, 'start_buffering' ),
181
+                            constant('AUTOPTIMIZE_HOOK_INTO'),
182
+                            array($this, 'start_buffering'),
183 183
                             self::DEFAULT_HOOK_PRIORITY
184 184
                         );
185 185
                     }
186 186
                 }
187 187
 
188 188
                 // And disable Jetpack's site accelerator if JS or CSS opt. are active.
189
-                if ( class_exists( 'Jetpack' ) && apply_filters( 'autoptimize_filter_main_disable_jetpack_cdn', true ) && ( $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) ) ) {
190
-                    add_filter( 'jetpack_force_disable_site_accelerator', '__return_true' );
189
+                if (class_exists('Jetpack') && apply_filters('autoptimize_filter_main_disable_jetpack_cdn', true) && ($conf->get('autoptimize_js') || $conf->get('autoptimize_css'))) {
190
+                    add_filter('jetpack_force_disable_site_accelerator', '__return_true');
191 191
                 }
192 192
             }
193 193
         } else {
194
-            add_action( 'admin_notices', 'autoptimizeMain::notice_cache_unavailable' );
194
+            add_action('admin_notices', 'autoptimizeMain::notice_cache_unavailable');
195 195
         }
196 196
     }
197 197
 
198 198
     public function maybe_run_ao_extra()
199 199
     {
200
-        if ( apply_filters( 'autoptimize_filter_extra_activate', true ) ) {
200
+        if (apply_filters('autoptimize_filter_extra_activate', true)) {
201 201
             $ao_imgopt = new autoptimizeImages();
202 202
             $ao_imgopt->run();
203 203
             $ao_extra = new autoptimizeExtra();
204 204
             $ao_extra->run();
205 205
 
206 206
             // And show the imgopt notice.
207
-            add_action( 'admin_notices', 'autoptimizeMain::notice_plug_imgopt' );
207
+            add_action('admin_notices', 'autoptimizeMain::notice_plug_imgopt');
208 208
         }
209 209
     }
210 210
 
211 211
     public function maybe_run_partners_tab()
212 212
     {
213 213
         // Loads partners tab code if in admin (and not in admin-ajax.php)!
214
-        if ( autoptimizeConfig::is_admin_and_not_ajax() ) {
214
+        if (autoptimizeConfig::is_admin_and_not_ajax()) {
215 215
             new autoptimizePartners();
216 216
         }
217 217
     }
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
     public function maybe_run_criticalcss_tab()
220 220
     {
221 221
         // Loads criticalcss tab code if in admin (and not in admin-ajax.php)!
222
-        if ( autoptimizeConfig::is_admin_and_not_ajax() && ! autoptimizeUtils::is_plugin_active( 'autoptimize-criticalcss/ao_criticss_aas.php' ) ) {
222
+        if (autoptimizeConfig::is_admin_and_not_ajax() && !autoptimizeUtils::is_plugin_active('autoptimize-criticalcss/ao_criticss_aas.php')) {
223 223
             new autoptimizeCriticalCSSSettings();
224 224
         }
225 225
     }
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
     public function hook_page_cache_purge()
228 228
     {
229 229
         // hook into a collection of page cache purge actions if filter allows.
230
-        if ( apply_filters( 'autoptimize_filter_main_hookpagecachepurge', true ) ) {
230
+        if (apply_filters('autoptimize_filter_main_hookpagecachepurge', true)) {
231 231
             $page_cache_purge_actions = array(
232 232
                 'after_rocket_clean_domain', // exists.
233 233
                 'hyper_cache_purged', // Stefano confirmed this will be added.
@@ -242,9 +242,9 @@  discard block
 block discarded – undo
242 242
                 'wpo_cache_flush', // wp-optimize.
243 243
                 'rt_nginx_helper_after_fastcgi_purge_all', // nginx helper.
244 244
             );
245
-            $page_cache_purge_actions = apply_filters( 'autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions );
246
-            foreach ( $page_cache_purge_actions as $purge_action ) {
247
-                add_action( $purge_action, 'autoptimizeCache::clearall_actionless' );
245
+            $page_cache_purge_actions = apply_filters('autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions);
246
+            foreach ($page_cache_purge_actions as $purge_action) {
247
+                add_action($purge_action, 'autoptimizeCache::clearall_actionless');
248 248
             }
249 249
         }
250 250
     }
@@ -256,38 +256,38 @@  discard block
 block discarded – undo
256 256
      */
257 257
     public function start_buffering()
258 258
     {
259
-        if ( $this->should_buffer() ) {
259
+        if ($this->should_buffer()) {
260 260
 
261 261
             // Load speedupper conditionally (true by default).
262
-            if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
262
+            if (apply_filters('autoptimize_filter_speedupper', true)) {
263 263
                 $ao_speedupper = new autoptimizeSpeedupper();
264 264
             }
265 265
 
266 266
             $conf = autoptimizeConfig::instance();
267 267
 
268
-            if ( $conf->get( 'autoptimize_js' ) ) {
269
-                if ( ! defined( 'CONCATENATE_SCRIPTS' ) ) {
270
-                    define( 'CONCATENATE_SCRIPTS', false );
268
+            if ($conf->get('autoptimize_js')) {
269
+                if (!defined('CONCATENATE_SCRIPTS')) {
270
+                    define('CONCATENATE_SCRIPTS', false);
271 271
                 }
272
-                if ( ! defined( 'COMPRESS_SCRIPTS' ) ) {
273
-                    define( 'COMPRESS_SCRIPTS', false );
272
+                if (!defined('COMPRESS_SCRIPTS')) {
273
+                    define('COMPRESS_SCRIPTS', false);
274 274
                 }
275 275
             }
276 276
 
277
-            if ( $conf->get( 'autoptimize_css' ) ) {
278
-                if ( ! defined( 'COMPRESS_CSS' ) ) {
279
-                    define( 'COMPRESS_CSS', false );
277
+            if ($conf->get('autoptimize_css')) {
278
+                if (!defined('COMPRESS_CSS')) {
279
+                    define('COMPRESS_CSS', false);
280 280
                 }
281 281
             }
282 282
 
283
-            if ( apply_filters( 'autoptimize_filter_obkiller', false ) ) {
284
-                while ( ob_get_level() > 0 ) {
283
+            if (apply_filters('autoptimize_filter_obkiller', false)) {
284
+                while (ob_get_level() > 0) {
285 285
                     ob_end_clean();
286 286
                 }
287 287
             }
288 288
 
289 289
             // Now, start the real thing!
290
-            ob_start( array( $this, 'end_buffering' ) );
290
+            ob_start(array($this, 'end_buffering'));
291 291
         }
292 292
     }
293 293
 
@@ -298,31 +298,31 @@  discard block
 block discarded – undo
298 298
      *                          deciding once per request (for use in tests).
299 299
      * @return bool
300 300
      */
301
-    public static function should_buffer( $doing_tests = false )
301
+    public static function should_buffer($doing_tests = false)
302 302
     {
303 303
         static $do_buffering = null;
304 304
 
305 305
         // Only check once in case we're called multiple times by others but
306 306
         // still allows multiple calls when doing tests.
307
-        if ( null === $do_buffering || $doing_tests ) {
307
+        if (null === $do_buffering || $doing_tests) {
308 308
 
309 309
             $ao_noptimize = false;
310 310
 
311 311
             // Checking for DONOTMINIFY constant as used by e.g. WooCommerce POS.
312
-            if ( defined( 'DONOTMINIFY' ) && ( constant( 'DONOTMINIFY' ) === true || constant( 'DONOTMINIFY' ) === 'true' ) ) {
312
+            if (defined('DONOTMINIFY') && (constant('DONOTMINIFY') === true || constant('DONOTMINIFY') === 'true')) {
313 313
                 $ao_noptimize = true;
314 314
             }
315 315
 
316 316
             // Skip checking query strings if they're disabled.
317
-            if ( apply_filters( 'autoptimize_filter_honor_qs_noptimize', true ) ) {
317
+            if (apply_filters('autoptimize_filter_honor_qs_noptimize', true)) {
318 318
                 // Check for `ao_noptimize` (and other) keys in the query string
319 319
                 // to get non-optimized page for debugging.
320 320
                 $keys = array(
321 321
                     'ao_noptimize',
322 322
                     'ao_noptirocket',
323 323
                 );
324
-                foreach ( $keys as $key ) {
325
-                    if ( array_key_exists( $key, $_GET ) && '1' === $_GET[ $key ] ) {
324
+                foreach ($keys as $key) {
325
+                    if (array_key_exists($key, $_GET) && '1' === $_GET[$key]) {
326 326
                         $ao_noptimize = true;
327 327
                         break;
328 328
                     }
@@ -331,25 +331,25 @@  discard block
 block discarded – undo
331 331
 
332 332
             // also honor PageSpeed=off parameter as used by mod_pagespeed, in use by some pagebuilders,
333 333
             // see https://www.modpagespeed.com/doc/experiment#ModPagespeed for info on that.
334
-            if ( false === $ao_noptimize && array_key_exists( 'PageSpeed', $_GET ) && 'off' === $_GET['PageSpeed'] ) {
334
+            if (false === $ao_noptimize && array_key_exists('PageSpeed', $_GET) && 'off' === $_GET['PageSpeed']) {
335 335
                 $ao_noptimize = true;
336 336
             }
337 337
 
338 338
             // and make sure Thrive editor doesn't get optimized HTML.
339
-            if ( false === $ao_noptimize && array_key_exists( 'tve', $_GET ) && 'true' === $_GET['tve'] ) {
339
+            if (false === $ao_noptimize && array_key_exists('tve', $_GET) && 'true' === $_GET['tve']) {
340 340
                 $ao_noptimize = true;
341 341
             }
342 342
 
343 343
             // If setting says not to optimize logged in user and user is logged in...
344
-            if ( false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_optimize_logged', 'on' ) && is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
344
+            if (false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_optimize_logged', 'on') && is_user_logged_in() && current_user_can('edit_posts')) {
345 345
                 $ao_noptimize = true;
346 346
             }
347 347
 
348 348
             // If setting says not to optimize cart/checkout.
349
-            if ( false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_optimize_checkout', 'off' ) ) {
349
+            if (false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_optimize_checkout', 'off')) {
350 350
                 // Checking for woocommerce, easy digital downloads and wp ecommerce...
351
-                foreach ( array( 'is_checkout', 'is_cart', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout' ) as $func ) {
352
-                    if ( function_exists( $func ) && $func() ) {
351
+                foreach (array('is_checkout', 'is_cart', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout') as $func) {
352
+                    if (function_exists($func) && $func()) {
353 353
                         $ao_noptimize = true;
354 354
                         break;
355 355
                     }
@@ -357,11 +357,11 @@  discard block
 block discarded – undo
357 357
             }
358 358
 
359 359
             // Allows blocking of autoptimization on your own terms regardless of above decisions.
360
-            $ao_noptimize = (bool) apply_filters( 'autoptimize_filter_noptimize', $ao_noptimize );
360
+            $ao_noptimize = (bool) apply_filters('autoptimize_filter_noptimize', $ao_noptimize);
361 361
 
362 362
             // Check for site being previewed in the Customizer (available since WP 4.0).
363 363
             $is_customize_preview = false;
364
-            if ( function_exists( 'is_customize_preview' ) && is_customize_preview() ) {
364
+            if (function_exists('is_customize_preview') && is_customize_preview()) {
365 365
                 $is_customize_preview = is_customize_preview();
366 366
             }
367 367
 
@@ -372,7 +372,7 @@  discard block
 block discarded – undo
372 372
              * while the main query hasn't been ran yet. Thats why we use
373 373
              * AUTOPTIMIZE_INIT_EARLIER in tests.
374 374
              */
375
-            $do_buffering = ( ! is_admin() && ! is_feed() && ! is_embed() && ! $ao_noptimize && ! $is_customize_preview );
375
+            $do_buffering = (!is_admin() && !is_feed() && !is_embed() && !$ao_noptimize && !$is_customize_preview);
376 376
         }
377 377
 
378 378
         return $do_buffering;
@@ -385,25 +385,25 @@  discard block
 block discarded – undo
385 385
      *
386 386
      * @return bool
387 387
      */
388
-    public function is_valid_buffer( $content )
388
+    public function is_valid_buffer($content)
389 389
     {
390 390
         // Defaults to true.
391 391
         $valid = true;
392 392
 
393
-        $has_no_html_tag    = ( false === stripos( $content, '<html' ) );
394
-        $has_xsl_stylesheet = ( false !== stripos( $content, '<xsl:stylesheet' ) || false !== stripos( $content, '<?xml-stylesheet' ) );
395
-        $has_html5_doctype  = ( preg_match( '/^<!DOCTYPE.+html>/i', ltrim( $content ) ) > 0 );
396
-        $has_noptimize_page = ( false !== stripos( $content, '<!-- noptimize-page -->' ) );
393
+        $has_no_html_tag    = (false === stripos($content, '<html'));
394
+        $has_xsl_stylesheet = (false !== stripos($content, '<xsl:stylesheet') || false !== stripos($content, '<?xml-stylesheet'));
395
+        $has_html5_doctype  = (preg_match('/^<!DOCTYPE.+html>/i', ltrim($content)) > 0);
396
+        $has_noptimize_page = (false !== stripos($content, '<!-- noptimize-page -->'));
397 397
 
398
-        if ( $has_no_html_tag ) {
398
+        if ($has_no_html_tag) {
399 399
             // Can't be valid amp markup without an html tag preceding it.
400 400
             $is_amp_markup = false;
401 401
         } else {
402
-            $is_amp_markup = self::is_amp_markup( $content );
402
+            $is_amp_markup = self::is_amp_markup($content);
403 403
         }
404 404
 
405 405
         // If it's not html, or if it's amp or contains xsl stylesheets we don't touch it.
406
-        if ( $has_no_html_tag && ! $has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet || $has_noptimize_page ) {
406
+        if ($has_no_html_tag && !$has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet || $has_noptimize_page) {
407 407
             $valid = false;
408 408
         }
409 409
 
@@ -418,14 +418,14 @@  discard block
 block discarded – undo
418 418
      *
419 419
      * @return bool
420 420
      */
421
-    public static function is_amp_markup( $content )
421
+    public static function is_amp_markup($content)
422 422
     {
423 423
         // Short-circuit when a function is available to determine whether the response is (or will be) an AMP page.
424
-        if ( function_exists( 'is_amp_endpoint' ) ) {
424
+        if (function_exists('is_amp_endpoint')) {
425 425
             return is_amp_endpoint();
426 426
         }
427 427
 
428
-        $is_amp_markup = preg_match( '/<html[^>]*(?:amp|⚡)/i', $content );
428
+        $is_amp_markup = preg_match('/<html[^>]*(?:amp|⚡)/i', $content);
429 429
 
430 430
         return (bool) $is_amp_markup;
431 431
     }
@@ -438,10 +438,10 @@  discard block
 block discarded – undo
438 438
      *
439 439
      * @return string
440 440
      */
441
-    public function end_buffering( $content )
441
+    public function end_buffering($content)
442 442
     {
443 443
         // Bail early without modifying anything if we can't handle the content.
444
-        if ( ! $this->is_valid_buffer( $content ) ) {
444
+        if (!$this->is_valid_buffer($content)) {
445 445
             return $content;
446 446
         }
447 447
 
@@ -449,73 +449,73 @@  discard block
 block discarded – undo
449 449
 
450 450
         // Determine what needs to be ran.
451 451
         $classes = array();
452
-        if ( $conf->get( 'autoptimize_js' ) ) {
452
+        if ($conf->get('autoptimize_js')) {
453 453
             $classes[] = 'autoptimizeScripts';
454 454
         }
455
-        if ( $conf->get( 'autoptimize_css' ) ) {
455
+        if ($conf->get('autoptimize_css')) {
456 456
             $classes[] = 'autoptimizeStyles';
457 457
         }
458
-        if ( $conf->get( 'autoptimize_html' ) ) {
458
+        if ($conf->get('autoptimize_html')) {
459 459
             $classes[] = 'autoptimizeHTML';
460 460
         }
461 461
 
462 462
         $classoptions = array(
463 463
             'autoptimizeScripts' => array(
464
-                'aggregate'       => $conf->get( 'autoptimize_js_aggregate' ),
465
-                'justhead'        => $conf->get( 'autoptimize_js_justhead' ),
466
-                'forcehead'       => $conf->get( 'autoptimize_js_forcehead' ),
467
-                'trycatch'        => $conf->get( 'autoptimize_js_trycatch' ),
468
-                'js_exclude'      => $conf->get( 'autoptimize_js_exclude' ),
469
-                'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
470
-                'include_inline'  => $conf->get( 'autoptimize_js_include_inline' ),
471
-                'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
464
+                'aggregate'       => $conf->get('autoptimize_js_aggregate'),
465
+                'justhead'        => $conf->get('autoptimize_js_justhead'),
466
+                'forcehead'       => $conf->get('autoptimize_js_forcehead'),
467
+                'trycatch'        => $conf->get('autoptimize_js_trycatch'),
468
+                'js_exclude'      => $conf->get('autoptimize_js_exclude'),
469
+                'cdn_url'         => $conf->get('autoptimize_cdn_url'),
470
+                'include_inline'  => $conf->get('autoptimize_js_include_inline'),
471
+                'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
472 472
             ),
473 473
             'autoptimizeStyles'  => array(
474
-                'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
475
-                'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
476
-                'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
477
-                'defer'           => $conf->get( 'autoptimize_css_defer' ),
478
-                'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
479
-                'inline'          => $conf->get( 'autoptimize_css_inline' ),
480
-                'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
481
-                'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
482
-                'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
483
-                'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
484
-                'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
474
+                'aggregate'       => $conf->get('autoptimize_css_aggregate'),
475
+                'justhead'        => $conf->get('autoptimize_css_justhead'),
476
+                'datauris'        => $conf->get('autoptimize_css_datauris'),
477
+                'defer'           => $conf->get('autoptimize_css_defer'),
478
+                'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
479
+                'inline'          => $conf->get('autoptimize_css_inline'),
480
+                'css_exclude'     => $conf->get('autoptimize_css_exclude'),
481
+                'cdn_url'         => $conf->get('autoptimize_cdn_url'),
482
+                'include_inline'  => $conf->get('autoptimize_css_include_inline'),
483
+                'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
484
+                'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
485 485
             ),
486 486
             'autoptimizeHTML'    => array(
487
-                'keepcomments' => $conf->get( 'autoptimize_html_keepcomments' ),
487
+                'keepcomments' => $conf->get('autoptimize_html_keepcomments'),
488 488
             ),
489 489
         );
490 490
 
491
-        $content = apply_filters( 'autoptimize_filter_html_before_minify', $content );
491
+        $content = apply_filters('autoptimize_filter_html_before_minify', $content);
492 492
 
493 493
         // Run the classes!
494
-        foreach ( $classes as $name ) {
495
-            $instance = new $name( $content );
496
-            if ( $instance->read( $classoptions[ $name ] ) ) {
494
+        foreach ($classes as $name) {
495
+            $instance = new $name($content);
496
+            if ($instance->read($classoptions[$name])) {
497 497
                 $instance->minify();
498 498
                 $instance->cache();
499 499
                 $content = $instance->getcontent();
500 500
             }
501
-            unset( $instance );
501
+            unset($instance);
502 502
         }
503 503
 
504
-        $content = apply_filters( 'autoptimize_html_after_minify', $content );
504
+        $content = apply_filters('autoptimize_html_after_minify', $content);
505 505
 
506 506
         return $content;
507 507
     }
508 508
 
509
-    public static function autoptimize_nobuffer_optimize( $html_in ) {
509
+    public static function autoptimize_nobuffer_optimize($html_in) {
510 510
         $html_out = $html_in;
511 511
 
512
-        if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
512
+        if (apply_filters('autoptimize_filter_speedupper', true)) {
513 513
             $ao_speedupper = new autoptimizeSpeedupper();
514 514
         }
515 515
 
516
-        $self = new self( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
517
-        if ( $self->should_buffer() ) {
518
-            $html_out = $self->end_buffering( $html_in );
516
+        $self = new self(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
517
+        if ($self->should_buffer()) {
518
+            $html_out = $self->end_buffering($html_in);
519 519
         }
520 520
         return $html_out;
521 521
     }
@@ -560,25 +560,25 @@  discard block
 block discarded – undo
560 560
             'autoptimize_minify_excluded',
561 561
         );
562 562
 
563
-        if ( ! is_multisite() ) {
564
-            foreach ( $delete_options as $del_opt ) {
565
-                delete_option( $del_opt );
563
+        if (!is_multisite()) {
564
+            foreach ($delete_options as $del_opt) {
565
+                delete_option($del_opt);
566 566
             }
567 567
         } else {
568 568
             global $wpdb;
569
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
569
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
570 570
             $original_blog_id = get_current_blog_id();
571
-            foreach ( $blog_ids as $blog_id ) {
572
-                switch_to_blog( $blog_id );
573
-                foreach ( $delete_options as $del_opt ) {
574
-                    delete_option( $del_opt );
571
+            foreach ($blog_ids as $blog_id) {
572
+                switch_to_blog($blog_id);
573
+                foreach ($delete_options as $del_opt) {
574
+                    delete_option($del_opt);
575 575
                 }
576 576
             }
577
-            switch_to_blog( $original_blog_id );
577
+            switch_to_blog($original_blog_id);
578 578
         }
579 579
 
580
-        if ( wp_get_schedule( 'ao_cachechecker' ) ) {
581
-            wp_clear_scheduled_hook( 'ao_cachechecker' );
580
+        if (wp_get_schedule('ao_cachechecker')) {
581
+            wp_clear_scheduled_hook('ao_cachechecker');
582 582
         }
583 583
     }
584 584
 
@@ -586,35 +586,35 @@  discard block
 block discarded – undo
586 586
     {
587 587
         echo '<div class="error"><p>';
588 588
         // Translators: %s is the cache directory location.
589
-        printf( __( 'Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize' ), AUTOPTIMIZE_CACHE_DIR );
589
+        printf(__('Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize'), AUTOPTIMIZE_CACHE_DIR);
590 590
         echo '</p></div>';
591 591
     }
592 592
 
593 593
     public static function notice_installed()
594 594
     {
595 595
         echo '<div class="updated"><p>';
596
-        _e( 'Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize' );
596
+        _e('Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize');
597 597
         echo '</p></div>';
598 598
     }
599 599
 
600 600
     public static function notice_updated()
601 601
     {
602 602
         echo '<div class="updated"><p>';
603
-        _e( 'Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize' );
603
+        _e('Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize');
604 604
         echo '</p></div>';
605 605
     }
606 606
 
607 607
     public static function notice_plug_imgopt()
608 608
     {
609 609
         // Translators: the URL added points to the Autopmize Extra settings.
610
-        $_ao_imgopt_plug_notice      = sprintf( __( 'Did you know Autoptimize includes on-the-fly image optimization (with support for WebP) 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>' );
611
-        $_ao_imgopt_plug_notice      = apply_filters( 'autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice );
610
+        $_ao_imgopt_plug_notice      = sprintf(__('Did you know Autoptimize includes on-the-fly image optimization (with support for WebP) 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>');
611
+        $_ao_imgopt_plug_notice      = apply_filters('autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice);
612 612
         $_ao_imgopt_launch_ok        = autoptimizeImages::launch_ok_wrapper();
613 613
         $_ao_imgopt_plug_dismissible = 'ao-img-opt-plug-123';
614 614
         $_ao_imgopt_active           = autoptimizeImages::imgopt_active();
615 615
 
616
-        if ( current_user_can( 'manage_options' ) && '' !== $_ao_imgopt_plug_notice && ! $_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active( $_ao_imgopt_plug_dismissible ) ) {
617
-            echo '<div class="notice notice-info is-dismissible" data-dismissible="' . $_ao_imgopt_plug_dismissible . '"><p>';
616
+        if (current_user_can('manage_options') && '' !== $_ao_imgopt_plug_notice && !$_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active($_ao_imgopt_plug_dismissible)) {
617
+            echo '<div class="notice notice-info is-dismissible" data-dismissible="'.$_ao_imgopt_plug_dismissible.'"><p>';
618 618
             echo $_ao_imgopt_plug_notice;
619 619
             echo '</p></div>';
620 620
         }
Please login to merge, or discard this patch.
classes/autoptimizeScripts.php 1 patch
Spacing   +158 added lines, -158 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
     exit;
5 5
 }
6 6
 
@@ -13,18 +13,18 @@  discard block
 block discarded – undo
13 13
     );
14 14
 
15 15
     private $dontmove = array(
16
-        'document.write','html5.js','show_ads.js','google_ad','histats.com/js','statcounter.com/counter/counter.js',
17
-        'ws.amazon.com/widgets','media.fastclick.net','/ads/','comment-form-quicktags/quicktags.php','edToolbar',
18
-        'intensedebate.com','scripts.chitika.net/','_gaq.push','jotform.com/','admin-bar.min.js','GoogleAnalyticsObject',
19
-        'plupload.full.min.js','syntaxhighlighter','adsbygoogle','gist.github.com','_stq','nonce','post_id','data-noptimize'
16
+        'document.write', 'html5.js', 'show_ads.js', 'google_ad', 'histats.com/js', 'statcounter.com/counter/counter.js',
17
+        'ws.amazon.com/widgets', 'media.fastclick.net', '/ads/', 'comment-form-quicktags/quicktags.php', 'edToolbar',
18
+        'intensedebate.com', 'scripts.chitika.net/', '_gaq.push', 'jotform.com/', 'admin-bar.min.js', 'GoogleAnalyticsObject',
19
+        'plupload.full.min.js', 'syntaxhighlighter', 'adsbygoogle', 'gist.github.com', '_stq', 'nonce', 'post_id', 'data-noptimize'
20 20
         ,'logHuman'
21 21
     );
22 22
     private $domove     = array(
23
-        'gaJsHost','load_cmc','jd.gallery.transitions.js','swfobject.embedSWF(','tiny_mce.js','tinyMCEPreInit.go'
23
+        'gaJsHost', 'load_cmc', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'tiny_mce.js', 'tinyMCEPreInit.go'
24 24
     );
25 25
     private $domovelast = array(
26
-        'addthis.com','/afsonline/show_afs_search.js','disqus.js','networkedblogs.com/getnetworkwidget','infolinks.com/js/',
27
-        'jd.gallery.js.php','jd.gallery.transitions.js','swfobject.embedSWF(','linkwithin.com/widget.js','tiny_mce.js','tinyMCEPreInit.go'
26
+        'addthis.com', '/afsonline/show_afs_search.js', 'disqus.js', 'networkedblogs.com/getnetworkwidget', 'infolinks.com/js/',
27
+        'jd.gallery.js.php', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'linkwithin.com/widget.js', 'tiny_mce.js', 'tinyMCEPreInit.go'
28 28
     );
29 29
     public $cdn_url = '';
30 30
 
@@ -43,92 +43,92 @@  discard block
 block discarded – undo
43 43
     private $minify_excluded = true;
44 44
 
45 45
     // Reads the page and collects script tags.
46
-    public function read( $options )
46
+    public function read($options)
47 47
     {
48
-        $noptimizeJS = apply_filters( 'autoptimize_filter_js_noptimize', false, $this->content );
49
-        if ( $noptimizeJS ) {
48
+        $noptimizeJS = apply_filters('autoptimize_filter_js_noptimize', false, $this->content);
49
+        if ($noptimizeJS) {
50 50
             return false;
51 51
         }
52 52
 
53 53
         // only optimize known good JS?
54
-        $whitelistJS = apply_filters( 'autoptimize_filter_js_whitelist', '', $this->content );
55
-        if ( ! empty( $whitelistJS ) ) {
56
-            $this->whitelist = array_filter( array_map( 'trim', explode( ',', $whitelistJS ) ) );
54
+        $whitelistJS = apply_filters('autoptimize_filter_js_whitelist', '', $this->content);
55
+        if (!empty($whitelistJS)) {
56
+            $this->whitelist = array_filter(array_map('trim', explode(',', $whitelistJS)));
57 57
         }
58 58
 
59 59
         // is there JS we should simply remove?
60
-        $removableJS = apply_filters( 'autoptimize_filter_js_removables', '', $this->content );
61
-        if ( !empty( $removableJS ) ) {
62
-            $this->jsremovables = array_filter( array_map( 'trim', explode( ',', $removableJS ) ) );
60
+        $removableJS = apply_filters('autoptimize_filter_js_removables', '', $this->content);
61
+        if (!empty($removableJS)) {
62
+            $this->jsremovables = array_filter(array_map('trim', explode(',', $removableJS)));
63 63
         }
64 64
 
65 65
         // only header?
66
-        if ( apply_filters( 'autoptimize_filter_js_justhead', $options['justhead'] ) ) {
67
-            $content             = explode( '</head>', $this->content, 2 );
68
-            $this->content       = $content[0] . '</head>';
66
+        if (apply_filters('autoptimize_filter_js_justhead', $options['justhead'])) {
67
+            $content             = explode('</head>', $this->content, 2);
68
+            $this->content       = $content[0].'</head>';
69 69
             $this->restofcontent = $content[1];
70 70
         }
71 71
 
72 72
         // Determine whether we're doing JS-files aggregation or not.
73
-        if ( ! $options['aggregate'] ) {
73
+        if (!$options['aggregate']) {
74 74
             $this->aggregate = false;
75 75
         }
76 76
         // Returning true for "dontaggregate" turns off aggregation.
77
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_js_dontaggregate', false ) ) {
77
+        if ($this->aggregate && apply_filters('autoptimize_filter_js_dontaggregate', false)) {
78 78
             $this->aggregate = false;
79 79
         }
80 80
 
81 81
         // include inline?
82
-        if ( apply_filters( 'autoptimize_js_include_inline', $options['include_inline'] ) ) {
82
+        if (apply_filters('autoptimize_js_include_inline', $options['include_inline'])) {
83 83
             $this->include_inline = true;
84 84
         }
85 85
 
86 86
         // filter to "late inject minified JS", default to true for now (it is faster).
87
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_js_inject_min_late', true );
87
+        $this->inject_min_late = apply_filters('autoptimize_filter_js_inject_min_late', true);
88 88
 
89 89
         // filters to override hardcoded do(nt)move(last) array contents (array in, array out!).
90
-        $this->dontmove   = apply_filters( 'autoptimize_filter_js_dontmove', $this->dontmove );
91
-        $this->domovelast = apply_filters( 'autoptimize_filter_js_movelast', $this->domovelast );
92
-        $this->domove     = apply_filters( 'autoptimize_filter_js_domove', $this->domove );
90
+        $this->dontmove   = apply_filters('autoptimize_filter_js_dontmove', $this->dontmove);
91
+        $this->domovelast = apply_filters('autoptimize_filter_js_movelast', $this->domovelast);
92
+        $this->domove     = apply_filters('autoptimize_filter_js_domove', $this->domove);
93 93
 
94 94
         // Determine whether excluded files should be minified if not yet so.
95
-        if ( ! $options['minify_excluded'] && $options['aggregate'] ) {
95
+        if (!$options['minify_excluded'] && $options['aggregate']) {
96 96
             $this->minify_excluded = false;
97 97
         }
98
-        $this->minify_excluded = apply_filters( 'autoptimize_filter_js_minify_excluded', $this->minify_excluded );
98
+        $this->minify_excluded = apply_filters('autoptimize_filter_js_minify_excluded', $this->minify_excluded);
99 99
 
100 100
         // get extra exclusions settings or filter.
101 101
         $excludeJS = $options['js_exclude'];
102
-        $excludeJS = apply_filters( 'autoptimize_filter_js_exclude', $excludeJS, $this->content );
102
+        $excludeJS = apply_filters('autoptimize_filter_js_exclude', $excludeJS, $this->content);
103 103
 
104
-        if ( '' !== $excludeJS ) {
105
-            if ( is_array( $excludeJS ) ) {
106
-                if ( ( $removeKeys = array_keys( $excludeJS, 'remove' ) ) !== false ) {
107
-                    foreach ( $removeKeys as $removeKey ) {
108
-                        unset( $excludeJS[$removeKey] );
104
+        if ('' !== $excludeJS) {
105
+            if (is_array($excludeJS)) {
106
+                if (($removeKeys = array_keys($excludeJS, 'remove')) !== false) {
107
+                    foreach ($removeKeys as $removeKey) {
108
+                        unset($excludeJS[$removeKey]);
109 109
                         $this->jsremovables[] = $removeKey;
110 110
                     }
111 111
                 }
112
-                $exclJSArr = array_keys( $excludeJS );
112
+                $exclJSArr = array_keys($excludeJS);
113 113
             } else {
114
-                $exclJSArr = array_filter( array_map( 'trim', explode( ',', $excludeJS ) ) );
114
+                $exclJSArr = array_filter(array_map('trim', explode(',', $excludeJS)));
115 115
             }
116
-            $this->dontmove = array_merge( $exclJSArr, $this->dontmove );
116
+            $this->dontmove = array_merge($exclJSArr, $this->dontmove);
117 117
         }
118 118
 
119 119
         // Should we add try-catch?
120
-        if ( $options['trycatch'] ) {
120
+        if ($options['trycatch']) {
121 121
             $this->trycatch = true;
122 122
         }
123 123
 
124 124
         // force js in head?
125
-        if ( $options['forcehead'] ) {
125
+        if ($options['forcehead']) {
126 126
             $this->forcehead = true;
127 127
         } else {
128 128
             $this->forcehead = false;
129 129
         }
130 130
 
131
-        $this->forcehead = apply_filters( 'autoptimize_filter_js_forcehead', $this->forcehead );
131
+        $this->forcehead = apply_filters('autoptimize_filter_js_forcehead', $this->forcehead);
132 132
 
133 133
         // get cdn url.
134 134
         $this->cdn_url = $options['cdn_url'];
@@ -143,26 +143,26 @@  discard block
 block discarded – undo
143 143
         $this->content = $this->hide_comments($this->content);
144 144
 
145 145
         // Get script files.
146
-        if ( preg_match_all( '#<script.*</script>#Usmi', $this->content, $matches ) ) {
147
-            foreach( $matches[0] as $tag ) {
146
+        if (preg_match_all('#<script.*</script>#Usmi', $this->content, $matches)) {
147
+            foreach ($matches[0] as $tag) {
148 148
                 // only consider script aggregation for types whitelisted in should_aggregate-function.
149 149
                 $should_aggregate = $this->should_aggregate($tag);
150
-                if ( ! $should_aggregate ) {
150
+                if (!$should_aggregate) {
151 151
                     $tag = '';
152 152
                     continue;
153 153
                 }
154 154
 
155
-                if ( preg_match( '#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source ) ) {
155
+                if (preg_match('#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source)) {
156 156
                     // non-inline script.
157
-                    if ( $this->isremovable($tag, $this->jsremovables) ) {
158
-                        $this->content = str_replace( $tag, '', $this->content );
157
+                    if ($this->isremovable($tag, $this->jsremovables)) {
158
+                        $this->content = str_replace($tag, '', $this->content);
159 159
                         continue;
160 160
                     }
161 161
 
162 162
                     $origTag = null;
163
-                    $url = current( explode( '?', $source[2], 2 ) );
163
+                    $url = current(explode('?', $source[2], 2));
164 164
                     $path = $this->getpath($url);
165
-                    if ( false !== $path && preg_match( '#\.js$#', $path ) && $this->ismergeable($tag) ) {
165
+                    if (false !== $path && preg_match('#\.js$#', $path) && $this->ismergeable($tag)) {
166 166
                         // ok to optimize, add to array.
167 167
                         $this->scripts[] = $path;
168 168
                     } else {
@@ -170,11 +170,11 @@  discard block
 block discarded – undo
170 170
                         $newTag  = $tag;
171 171
 
172 172
                         // non-mergeable script (excluded or dynamic or external).
173
-                        if ( is_array( $excludeJS ) ) {
173
+                        if (is_array($excludeJS)) {
174 174
                             // should we add flags?
175
-                            foreach ( $excludeJS as $exclTag => $exclFlags) {
176
-                                if ( false !== strpos( $origTag, $exclTag ) && in_array( $exclFlags, array( 'async', 'defer' ) ) ) {
177
-                                    $newTag = str_replace( '<script ', '<script ' . $exclFlags . ' ', $newTag );
175
+                            foreach ($excludeJS as $exclTag => $exclFlags) {
176
+                                if (false !== strpos($origTag, $exclTag) && in_array($exclFlags, array('async', 'defer'))) {
177
+                                    $newTag = str_replace('<script ', '<script '.$exclFlags.' ', $newTag);
178 178
                                 }
179 179
                             }
180 180
                         }
@@ -182,28 +182,28 @@  discard block
 block discarded – undo
182 182
                         // Should we minify the non-aggregated script?
183 183
                         // -> if aggregate is on and exclude minify is on
184 184
                         // -> if aggregate is off and the file is not in dontmove.
185
-                        if ( $path && $this->minify_excluded ) {
186
-                            $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
187
-                            if ( ( false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path ) || ( true === $this->aggregate && ( false === $consider_minified_array || str_replace( $consider_minified_array, '', $path ) === $path ) ) ) {
188
-                                $minified_url = $this->minify_single( $path );
185
+                        if ($path && $this->minify_excluded) {
186
+                            $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
187
+                            if ((false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path) || (true === $this->aggregate && (false === $consider_minified_array || str_replace($consider_minified_array, '', $path) === $path))) {
188
+                                $minified_url = $this->minify_single($path);
189 189
                                 // replace orig URL with minified URL from cache if so.
190
-                                if ( ! empty( $minified_url ) ) {
191
-                                    $newTag = str_replace( $url, $minified_url, $newTag );
190
+                                if (!empty($minified_url)) {
191
+                                    $newTag = str_replace($url, $minified_url, $newTag);
192 192
                                 }
193 193
                             }
194 194
                         }
195 195
 
196
-                        if ( $this->ismovable($newTag) ) {
196
+                        if ($this->ismovable($newTag)) {
197 197
                             // can be moved, flags and all.
198
-                            if ( $this->movetolast($newTag) )  {
198
+                            if ($this->movetolast($newTag)) {
199 199
                                 $this->move['last'][] = $newTag;
200 200
                             } else {
201 201
                                 $this->move['first'][] = $newTag;
202 202
                             }
203 203
                         } else {
204 204
                             // cannot be moved, so if flag was added re-inject altered tag immediately.
205
-                            if ( $origTag !== $newTag ) {
206
-                                $this->content = str_replace( $origTag, $newTag, $this->content );
205
+                            if ($origTag !== $newTag) {
206
+                                $this->content = str_replace($origTag, $newTag, $this->content);
207 207
                                 $origTag = '';
208 208
                             }
209 209
                             // and forget about the $tag (not to be touched any more).
@@ -212,23 +212,23 @@  discard block
 block discarded – undo
212 212
                     }
213 213
                 } else {
214 214
                     // Inline script.
215
-                    if ( $this->isremovable($tag, $this->jsremovables) ) {
216
-                        $this->content = str_replace( $tag, '', $this->content );
215
+                    if ($this->isremovable($tag, $this->jsremovables)) {
216
+                        $this->content = str_replace($tag, '', $this->content);
217 217
                         continue;
218 218
                     }
219 219
 
220 220
                     // unhide comments, as javascript may be wrapped in comment-tags for old times' sake.
221 221
                     $tag = $this->restore_comments($tag);
222
-                    if ( $this->ismergeable($tag) && $this->include_inline ) {
223
-                        preg_match( '#<script.*>(.*)</script>#Usmi', $tag , $code );
224
-                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1] );
225
-                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code );
226
-                        $this->scripts[] = 'INLINE;' . $code;
222
+                    if ($this->ismergeable($tag) && $this->include_inline) {
223
+                        preg_match('#<script.*>(.*)</script>#Usmi', $tag, $code);
224
+                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1]);
225
+                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code);
226
+                        $this->scripts[] = 'INLINE;'.$code;
227 227
                     } else {
228 228
                         // Can we move this?
229
-                        $autoptimize_js_moveable = apply_filters( 'autoptimize_js_moveable', '', $tag );
230
-                        if ( $this->ismovable($tag) || '' !== $autoptimize_js_moveable ) {
231
-                            if ( $this->movetolast($tag) || 'last' === $autoptimize_js_moveable ) {
229
+                        $autoptimize_js_moveable = apply_filters('autoptimize_js_moveable', '', $tag);
230
+                        if ($this->ismovable($tag) || '' !== $autoptimize_js_moveable) {
231
+                            if ($this->movetolast($tag) || 'last' === $autoptimize_js_moveable) {
232 232
                                 $this->move['last'][] = $tag;
233 233
                             } else {
234 234
                                 $this->move['first'][] = $tag;
@@ -243,7 +243,7 @@  discard block
 block discarded – undo
243 243
                 }
244 244
 
245 245
                 //Remove the original script tag.
246
-                $this->content = str_replace( $tag, '', $this->content );
246
+                $this->content = str_replace($tag, '', $this->content);
247 247
             }
248 248
 
249 249
             return true;
@@ -273,21 +273,21 @@  discard block
 block discarded – undo
273 273
         // We're only interested in the type attribute of the <script> tag itself, not any possible
274 274
         // inline code that might just contain the 'type=' string...
275 275
         $tag_parts = array();
276
-        preg_match( '#<(script[^>]*)>#i', $tag, $tag_parts);
276
+        preg_match('#<(script[^>]*)>#i', $tag, $tag_parts);
277 277
         $tag_without_contents = null;
278
-        if ( ! empty( $tag_parts[1] ) ) {
278
+        if (!empty($tag_parts[1])) {
279 279
             $tag_without_contents = $tag_parts[1];
280 280
         }
281 281
 
282
-        $has_type = ( strpos( $tag_without_contents, 'type' ) !== false );
282
+        $has_type = (strpos($tag_without_contents, 'type') !== false);
283 283
 
284 284
         $type_valid = false;
285
-        if ( $has_type ) {
286
-            $type_valid = (bool) preg_match( '/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents );
285
+        if ($has_type) {
286
+            $type_valid = (bool) preg_match('/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents);
287 287
         }
288 288
 
289 289
         $should_aggregate = false;
290
-        if ( ! $has_type || $type_valid ) {
290
+        if (!$has_type || $type_valid) {
291 291
             $should_aggregate = true;
292 292
         }
293 293
 
@@ -297,40 +297,40 @@  discard block
 block discarded – undo
297 297
     //Joins and optimizes JS
298 298
     public function minify()
299 299
     {
300
-        foreach ( $this->scripts as $script ) {
300
+        foreach ($this->scripts as $script) {
301 301
             // TODO/FIXME: some duplicate code here, can be reduced/simplified
302
-            if ( preg_match( '#^INLINE;#', $script ) ) {
302
+            if (preg_match('#^INLINE;#', $script)) {
303 303
                 // Inline script
304
-                $script = preg_replace( '#^INLINE;#', '', $script );
305
-                $script = rtrim( $script, ";\n\t\r" ) . ';';
304
+                $script = preg_replace('#^INLINE;#', '', $script);
305
+                $script = rtrim($script, ";\n\t\r").';';
306 306
                 // Add try-catch?
307
-                if ( $this->trycatch ) {
308
-                    $script = 'try{' . $script . '}catch(e){}';
307
+                if ($this->trycatch) {
308
+                    $script = 'try{'.$script.'}catch(e){}';
309 309
                 }
310
-                $tmpscript = apply_filters( 'autoptimize_js_individual_script', $script, '' );
311
-                if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscript ) ) {
310
+                $tmpscript = apply_filters('autoptimize_js_individual_script', $script, '');
311
+                if (has_filter('autoptimize_js_individual_script') && !empty($tmpscript)) {
312 312
                     $script = $tmpscript;
313 313
                     $this->alreadyminified = true;
314 314
                 }
315
-                $this->jscode .= "\n" . $script;
315
+                $this->jscode .= "\n".$script;
316 316
             } else {
317 317
                 // External script
318
-                if ( false !== $script && file_exists( $script ) && is_readable( $script ) ) {
319
-                    $scriptsrc = file_get_contents( $script );
320
-                    $scriptsrc = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc );
321
-                    $scriptsrc = rtrim( $scriptsrc, ";\n\t\r" ) . ';';
318
+                if (false !== $script && file_exists($script) && is_readable($script)) {
319
+                    $scriptsrc = file_get_contents($script);
320
+                    $scriptsrc = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc);
321
+                    $scriptsrc = rtrim($scriptsrc, ";\n\t\r").';';
322 322
                     // Add try-catch?
323
-                    if ( $this->trycatch ) {
324
-                        $scriptsrc = 'try{' . $scriptsrc . '}catch(e){}';
323
+                    if ($this->trycatch) {
324
+                        $scriptsrc = 'try{'.$scriptsrc.'}catch(e){}';
325 325
                     }
326
-                    $tmpscriptsrc = apply_filters( 'autoptimize_js_individual_script', $scriptsrc, $script );
327
-                    if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscriptsrc ) ) {
326
+                    $tmpscriptsrc = apply_filters('autoptimize_js_individual_script', $scriptsrc, $script);
327
+                    if (has_filter('autoptimize_js_individual_script') && !empty($tmpscriptsrc)) {
328 328
                         $scriptsrc = $tmpscriptsrc;
329 329
                         $this->alreadyminified = true;
330
-                    } else if ( $this->can_inject_late($script) ) {
330
+                    } else if ($this->can_inject_late($script)) {
331 331
                         $scriptsrc = self::build_injectlater_marker($script, md5($scriptsrc));
332 332
                     }
333
-                    $this->jscode .= "\n" . $scriptsrc;
333
+                    $this->jscode .= "\n".$scriptsrc;
334 334
                 }/*else{
335 335
                     //Couldn't read JS. Maybe getpath isn't working?
336 336
                 }*/
@@ -338,32 +338,32 @@  discard block
 block discarded – undo
338 338
         }
339 339
 
340 340
         // Check for already-minified code
341
-        $this->md5hash = md5( $this->jscode );
341
+        $this->md5hash = md5($this->jscode);
342 342
         $ccheck = new autoptimizeCache($this->md5hash, 'js');
343
-        if ( $ccheck->check() ) {
343
+        if ($ccheck->check()) {
344 344
             $this->jscode = $ccheck->retrieve();
345 345
             return true;
346 346
         }
347
-        unset( $ccheck );
347
+        unset($ccheck);
348 348
 
349 349
         // $this->jscode has all the uncompressed code now.
350
-        if ( true !== $this->alreadyminified ) {
351
-            if ( apply_filters( 'autoptimize_js_do_minify', true ) ) {
352
-                $tmp_jscode = trim( JSMin::minify( $this->jscode ) );
353
-                if ( ! empty( $tmp_jscode ) ) {
350
+        if (true !== $this->alreadyminified) {
351
+            if (apply_filters('autoptimize_js_do_minify', true)) {
352
+                $tmp_jscode = trim(JSMin::minify($this->jscode));
353
+                if (!empty($tmp_jscode)) {
354 354
                     $this->jscode = $tmp_jscode;
355
-                    unset( $tmp_jscode );
355
+                    unset($tmp_jscode);
356 356
                 }
357
-                $this->jscode = $this->inject_minified( $this->jscode );
358
-                $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
357
+                $this->jscode = $this->inject_minified($this->jscode);
358
+                $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
359 359
                 return true;
360 360
             } else {
361
-                $this->jscode = $this->inject_minified( $this->jscode );
361
+                $this->jscode = $this->inject_minified($this->jscode);
362 362
                 return false;
363 363
             }
364 364
         }
365 365
 
366
-        $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
366
+        $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
367 367
         return true;
368 368
     }
369 369
 
@@ -371,11 +371,11 @@  discard block
 block discarded – undo
371 371
     public function cache()
372 372
     {
373 373
         $cache = new autoptimizeCache($this->md5hash, 'js');
374
-        if ( ! $cache->check() ) {
374
+        if (!$cache->check()) {
375 375
             // Cache our code
376 376
             $cache->cache($this->jscode, 'text/javascript');
377 377
         }
378
-        $this->url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
378
+        $this->url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
379 379
         $this->url = $this->url_replace_cdn($this->url);
380 380
     }
381 381
 
@@ -383,47 +383,47 @@  discard block
 block discarded – undo
383 383
     public function getcontent()
384 384
     {
385 385
         // Restore the full content
386
-        if ( ! empty( $this->restofcontent ) ) {
386
+        if (!empty($this->restofcontent)) {
387 387
             $this->content .= $this->restofcontent;
388 388
             $this->restofcontent = '';
389 389
         }
390 390
 
391 391
         // Add the scripts taking forcehead/ deferred (default) into account
392
-        if ( $this->forcehead ) {
393
-            $replaceTag = array( '</head>', 'before' );
392
+        if ($this->forcehead) {
393
+            $replaceTag = array('</head>', 'before');
394 394
             $defer = '';
395 395
         } else {
396
-            $replaceTag = array( '</body>', 'before' );
396
+            $replaceTag = array('</body>', 'before');
397 397
             $defer = 'defer ';
398 398
         }
399 399
 
400
-        $defer   = apply_filters( 'autoptimize_filter_js_defer', $defer );
400
+        $defer   = apply_filters('autoptimize_filter_js_defer', $defer);
401 401
         $type_js = '';
402
-        if ( apply_filters( 'autoptimize_filter_cssjs_addtype', false ) ) {
402
+        if (apply_filters('autoptimize_filter_cssjs_addtype', false)) {
403 403
             $type_js = 'type="text/javascript" ';
404 404
         }
405 405
 
406
-        $bodyreplacementpayload = '<script ' . $type_js . $defer . 'src="' . $this->url . '"></script>';
407
-        $bodyreplacementpayload = apply_filters( 'autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload );
406
+        $bodyreplacementpayload = '<script '.$type_js.$defer.'src="'.$this->url.'"></script>';
407
+        $bodyreplacementpayload = apply_filters('autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload);
408 408
 
409
-        $bodyreplacement = implode( '', $this->move['first'] );
409
+        $bodyreplacement = implode('', $this->move['first']);
410 410
         $bodyreplacement .= $bodyreplacementpayload;
411
-        $bodyreplacement .= implode( '', $this->move['last'] );
411
+        $bodyreplacement .= implode('', $this->move['last']);
412 412
 
413
-        $replaceTag = apply_filters( 'autoptimize_filter_js_replacetag', $replaceTag );
413
+        $replaceTag = apply_filters('autoptimize_filter_js_replacetag', $replaceTag);
414 414
 
415
-        if ( strlen( $this->jscode ) > 0 ) {
416
-            $this->inject_in_html( $bodyreplacement, $replaceTag );
415
+        if (strlen($this->jscode) > 0) {
416
+            $this->inject_in_html($bodyreplacement, $replaceTag);
417 417
         }
418 418
 
419 419
         // Restore comments.
420
-        $this->content = $this->restore_comments( $this->content );
420
+        $this->content = $this->restore_comments($this->content);
421 421
 
422 422
         // Restore IE hacks.
423
-        $this->content = $this->restore_iehacks( $this->content );
423
+        $this->content = $this->restore_iehacks($this->content);
424 424
 
425 425
         // Restore noptimize.
426
-        $this->content = $this->restore_noptimize( $this->content );
426
+        $this->content = $this->restore_noptimize($this->content);
427 427
 
428 428
         // Return the modified HTML.
429 429
         return $this->content;
@@ -432,32 +432,32 @@  discard block
 block discarded – undo
432 432
     // Checks against the white- and blacklists
433 433
     private function ismergeable($tag)
434 434
     {
435
-        if ( ! $this->aggregate ) {
435
+        if (!$this->aggregate) {
436 436
             return false;
437 437
         }
438 438
 
439
-        if ( ! empty( $this->whitelist ) ) {
440
-            foreach ( $this->whitelist as $match ) {
441
-                if (false !== strpos( $tag, $match ) ) {
439
+        if (!empty($this->whitelist)) {
440
+            foreach ($this->whitelist as $match) {
441
+                if (false !== strpos($tag, $match)) {
442 442
                     return true;
443 443
                 }
444 444
             }
445 445
             // no match with whitelist
446 446
             return false;
447 447
         } else {
448
-            foreach($this->domove as $match) {
449
-                if ( false !== strpos( $tag, $match ) ) {
448
+            foreach ($this->domove as $match) {
449
+                if (false !== strpos($tag, $match)) {
450 450
                     // Matched something
451 451
                     return false;
452 452
                 }
453 453
             }
454 454
 
455
-            if ( $this->movetolast($tag) ) {
455
+            if ($this->movetolast($tag)) {
456 456
                 return false;
457 457
             }
458 458
 
459
-            foreach( $this->dontmove as $match ) {
460
-                if ( false !== strpos( $tag, $match ) ) {
459
+            foreach ($this->dontmove as $match) {
460
+                if (false !== strpos($tag, $match)) {
461 461
                     // Matched something
462 462
                     return false;
463 463
                 }
@@ -471,23 +471,23 @@  discard block
 block discarded – undo
471 471
     // Checks agains the blacklist
472 472
     private function ismovable($tag)
473 473
     {
474
-        if ( true !== $this->include_inline || apply_filters( 'autoptimize_filter_js_unmovable', true ) ) {
474
+        if (true !== $this->include_inline || apply_filters('autoptimize_filter_js_unmovable', true)) {
475 475
             return false;
476 476
         }
477 477
 
478
-        foreach ( $this->domove as $match ) {
479
-            if ( false !== strpos( $tag, $match ) ) {
478
+        foreach ($this->domove as $match) {
479
+            if (false !== strpos($tag, $match)) {
480 480
                 // Matched something
481 481
                 return true;
482 482
             }
483 483
         }
484 484
 
485
-        if ( $this->movetolast($tag) ) {
485
+        if ($this->movetolast($tag)) {
486 486
             return true;
487 487
         }
488 488
 
489
-        foreach ( $this->dontmove as $match ) {
490
-            if ( false !== strpos( $tag, $match ) ) {
489
+        foreach ($this->dontmove as $match) {
490
+            if (false !== strpos($tag, $match)) {
491 491
                 // Matched something
492 492
                 return false;
493 493
             }
@@ -499,8 +499,8 @@  discard block
 block discarded – undo
499 499
 
500 500
     private function movetolast($tag)
501 501
     {
502
-        foreach ( $this->domovelast as $match ) {
503
-            if ( false !== strpos( $tag, $match ) ) {
502
+        foreach ($this->domovelast as $match) {
503
+            if (false !== strpos($tag, $match)) {
504 504
                 // Matched, return true
505 505
                 return true;
506 506
             }
@@ -521,11 +521,11 @@  discard block
 block discarded – undo
521 521
      * @return bool
522 522
      */
523 523
     private function can_inject_late($jsPath) {
524
-        $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
525
-        if ( true !== $this->inject_min_late ) {
524
+        $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
525
+        if (true !== $this->inject_min_late) {
526 526
             // late-inject turned off
527 527
             return false;
528
-        } else if ( ( false === strpos( $jsPath, 'min.js' ) ) && ( false === strpos( $jsPath, 'wp-includes/js/jquery/jquery.js' ) ) && ( str_replace( $consider_minified_array, '', $jsPath ) === $jsPath ) ) {
528
+        } else if ((false === strpos($jsPath, 'min.js')) && (false === strpos($jsPath, 'wp-includes/js/jquery/jquery.js')) && (str_replace($consider_minified_array, '', $jsPath) === $jsPath)) {
529 529
             // file not minified based on filename & filter
530 530
             return false;
531 531
         } else {
@@ -552,26 +552,26 @@  discard block
 block discarded – undo
552 552
      *
553 553
      * @return bool|string Url pointing to the minified js file or false.
554 554
      */
555
-    public function minify_single( $filepath, $cache_miss = false )
555
+    public function minify_single($filepath, $cache_miss = false)
556 556
     {
557
-        $contents = $this->prepare_minify_single( $filepath );
557
+        $contents = $this->prepare_minify_single($filepath);
558 558
 
559
-        if ( empty( $contents ) ) {
559
+        if (empty($contents)) {
560 560
             return false;
561 561
         }
562 562
 
563 563
         // Check cache.
564
-        $hash  = 'single_' . md5( $contents );
565
-        $cache = new autoptimizeCache( $hash, 'js' );
564
+        $hash  = 'single_'.md5($contents);
565
+        $cache = new autoptimizeCache($hash, 'js');
566 566
 
567 567
         // If not in cache already, minify...
568
-        if ( ! $cache->check() || $cache_miss ) {
569
-            $contents = trim( JSMin::minify( $contents ) );
568
+        if (!$cache->check() || $cache_miss) {
569
+            $contents = trim(JSMin::minify($contents));
570 570
             // Store in cache.
571
-            $cache->cache( $contents, 'text/javascript' );
571
+            $cache->cache($contents, 'text/javascript');
572 572
         }
573 573
 
574
-        $url = $this->build_minify_single_url( $cache );
574
+        $url = $this->build_minify_single_url($cache);
575 575
 
576 576
         return $url;
577 577
     }
Please login to merge, or discard this patch.
classes/autoptimizeExtra.php 1 patch
Spacing   +195 added lines, -195 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 67
             $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
     }
@@ -147,61 +147,61 @@  discard block
 block discarded – undo
147 147
         $options = $this->options;
148 148
 
149 149
         // Disable emojis if specified.
150
-        if ( ! empty( $options['autoptimize_extra_checkbox_field_1'] ) ) {
150
+        if (!empty($options['autoptimize_extra_checkbox_field_1'])) {
151 151
             $this->disable_emojis();
152 152
         }
153 153
 
154 154
         // Remove version query parameters.
155
-        if ( ! empty( $options['autoptimize_extra_checkbox_field_0'] ) ) {
156
-            add_filter( 'script_loader_src', array( $this, 'filter_remove_qs' ), 15, 1 );
157
-            add_filter( 'style_loader_src', array( $this, 'filter_remove_qs' ), 15, 1 );
155
+        if (!empty($options['autoptimize_extra_checkbox_field_0'])) {
156
+            add_filter('script_loader_src', array($this, 'filter_remove_qs'), 15, 1);
157
+            add_filter('style_loader_src', array($this, 'filter_remove_qs'), 15, 1);
158 158
         }
159 159
 
160 160
         // Avoiding conflicts of interest when async-javascript plugin is active!
161
-        $async_js_plugin_active = autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' );
162
-        if ( ! empty( $options['autoptimize_extra_text_field_3'] ) && ! $async_js_plugin_active ) {
163
-            add_filter( 'autoptimize_filter_js_exclude', array( $this, 'extra_async_js' ), 10, 1 );
161
+        $async_js_plugin_active = autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php');
162
+        if (!empty($options['autoptimize_extra_text_field_3']) && !$async_js_plugin_active) {
163
+            add_filter('autoptimize_filter_js_exclude', array($this, 'extra_async_js'), 10, 1);
164 164
         }
165 165
 
166 166
         // Optimize google fonts!
167
-        if ( ! empty( $options['autoptimize_extra_radio_field_4'] ) && ( '1' !== $options['autoptimize_extra_radio_field_4'] ) ) {
168
-            add_filter( 'wp_resource_hints', array( $this, 'filter_remove_gfonts_dnsprefetch' ), 10, 2 );
169
-            add_filter( 'autoptimize_html_after_minify', array( $this, 'filter_optimize_google_fonts' ), 10, 1 );
170
-            add_filter( 'autoptimize_extra_filter_tobepreconn', array( $this, 'filter_preconnect_google_fonts' ), 10, 1 );
167
+        if (!empty($options['autoptimize_extra_radio_field_4']) && ('1' !== $options['autoptimize_extra_radio_field_4'])) {
168
+            add_filter('wp_resource_hints', array($this, 'filter_remove_gfonts_dnsprefetch'), 10, 2);
169
+            add_filter('autoptimize_html_after_minify', array($this, 'filter_optimize_google_fonts'), 10, 1);
170
+            add_filter('autoptimize_extra_filter_tobepreconn', array($this, 'filter_preconnect_google_fonts'), 10, 1);
171 171
         }
172 172
 
173 173
         // Preconnect!
174
-        if ( ! empty( $options['autoptimize_extra_text_field_2'] ) || has_filter( 'autoptimize_extra_filter_tobepreconn' ) ) {
175
-            add_filter( 'wp_resource_hints', array( $this, 'filter_preconnect' ), 10, 2 );
174
+        if (!empty($options['autoptimize_extra_text_field_2']) || has_filter('autoptimize_extra_filter_tobepreconn')) {
175
+            add_filter('wp_resource_hints', array($this, 'filter_preconnect'), 10, 2);
176 176
         }
177 177
 
178 178
         // Preload!
179
-        if ( ! empty( $options['autoptimize_extra_text_field_7'] ) ) {
180
-            add_filter( 'autoptimize_html_after_minify', array( $this, 'filter_preload' ), 10, 2 );
179
+        if (!empty($options['autoptimize_extra_text_field_7'])) {
180
+            add_filter('autoptimize_html_after_minify', array($this, 'filter_preload'), 10, 2);
181 181
         }
182 182
     }
183 183
 
184
-    public function filter_remove_emoji_dns_prefetch( $urls, $relation_type )
184
+    public function filter_remove_emoji_dns_prefetch($urls, $relation_type)
185 185
     {
186
-        $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/' );
186
+        $emoji_svg_url = apply_filters('emoji_svg_url', 'https://s.w.org/images/core/emoji/');
187 187
 
188
-        return $this->filter_remove_dns_prefetch( $urls, $relation_type, $emoji_svg_url );
188
+        return $this->filter_remove_dns_prefetch($urls, $relation_type, $emoji_svg_url);
189 189
     }
190 190
 
191
-    public function filter_remove_gfonts_dnsprefetch( $urls, $relation_type )
191
+    public function filter_remove_gfonts_dnsprefetch($urls, $relation_type)
192 192
     {
193
-        return $this->filter_remove_dns_prefetch( $urls, $relation_type, 'fonts.googleapis.com' );
193
+        return $this->filter_remove_dns_prefetch($urls, $relation_type, 'fonts.googleapis.com');
194 194
     }
195 195
 
196
-    public function filter_remove_dns_prefetch( $urls, $relation_type, $url_to_remove )
196
+    public function filter_remove_dns_prefetch($urls, $relation_type, $url_to_remove)
197 197
     {
198 198
         $url_to_remove = (string) $url_to_remove;
199 199
 
200
-        if ( ! empty( $url_to_remove ) && 'dns-prefetch' === $relation_type ) {
200
+        if (!empty($url_to_remove) && 'dns-prefetch' === $relation_type) {
201 201
             $cnt = 0;
202
-            foreach ( $urls as $url ) {
203
-                if ( false !== strpos( $url, $url_to_remove ) ) {
204
-                    unset( $urls[ $cnt ] );
202
+            foreach ($urls as $url) {
203
+                if (false !== strpos($url, $url_to_remove)) {
204
+                    unset($urls[$cnt]);
205 205
                 }
206 206
                 $cnt++;
207 207
             }
@@ -210,152 +210,152 @@  discard block
 block discarded – undo
210 210
         return $urls;
211 211
     }
212 212
 
213
-    public function filter_optimize_google_fonts( $in )
213
+    public function filter_optimize_google_fonts($in)
214 214
     {
215 215
         // Extract fonts, partly based on wp rocket's extraction code.
216
-        $markup = preg_replace( '/<!--(.*)-->/Uis', '', $in );
217
-        preg_match_all( '#<link(?:\s+(?:(?!href\s*=\s*)[^>])+)?(?:\s+href\s*=\s*([\'"])((?:https?:)?\/\/fonts\.googleapis\.com\/css(?:(?!\1).)+)\1)(?:\s+[^>]*)?>#iU', $markup, $matches );
216
+        $markup = preg_replace('/<!--(.*)-->/Uis', '', $in);
217
+        preg_match_all('#<link(?:\s+(?:(?!href\s*=\s*)[^>])+)?(?:\s+href\s*=\s*([\'"])((?:https?:)?\/\/fonts\.googleapis\.com\/css(?:(?!\1).)+)\1)(?:\s+[^>]*)?>#iU', $markup, $matches);
218 218
 
219 219
         $fonts_collection = array();
220
-        if ( ! $matches[2] ) {
220
+        if (!$matches[2]) {
221 221
             return $in;
222 222
         }
223 223
 
224 224
         // Store them in $fonts array.
225 225
         $i = 0;
226
-        foreach ( $matches[2] as $font ) {
227
-            if ( ! preg_match( '/rel=["\']dns-prefetch["\']/', $matches[0][ $i ] ) ) {
226
+        foreach ($matches[2] as $font) {
227
+            if (!preg_match('/rel=["\']dns-prefetch["\']/', $matches[0][$i])) {
228 228
                 // Get fonts name.
229
-                $font = str_replace( array( '%7C', '%7c' ), '|', $font );
230
-                $font = explode( 'family=', $font );
231
-                $font = ( isset( $font[1] ) ) ? explode( '&', $font[1] ) : array();
229
+                $font = str_replace(array('%7C', '%7c'), '|', $font);
230
+                $font = explode('family=', $font);
231
+                $font = (isset($font[1])) ? explode('&', $font[1]) : array();
232 232
                 // Add font to $fonts[$i] but make sure not to pollute with an empty family!
233
-                $_thisfont = array_values( array_filter( explode( '|', reset( $font ) ) ) );
234
-                if ( ! empty( $_thisfont ) ) {
235
-                    $fonts_collection[ $i ]['fonts'] = $_thisfont;
233
+                $_thisfont = array_values(array_filter(explode('|', reset($font))));
234
+                if (!empty($_thisfont)) {
235
+                    $fonts_collection[$i]['fonts'] = $_thisfont;
236 236
                     // And add subset if any!
237
-                    $subset = ( is_array( $font ) ) ? end( $font ) : '';
238
-                    if ( false !== strpos( $subset, 'subset=' ) ) {
239
-                        $subset                            = str_replace( array( '%2C', '%2c' ), ',', $subset );
240
-                        $subset                            = explode( 'subset=', $subset );
241
-                        $fonts_collection[ $i ]['subsets'] = explode( ',', $subset[1] );
237
+                    $subset = (is_array($font)) ? end($font) : '';
238
+                    if (false !== strpos($subset, 'subset=')) {
239
+                        $subset                            = str_replace(array('%2C', '%2c'), ',', $subset);
240
+                        $subset                            = explode('subset=', $subset);
241
+                        $fonts_collection[$i]['subsets'] = explode(',', $subset[1]);
242 242
                     }
243 243
                 }
244 244
                 // And remove Google Fonts.
245
-                $in = str_replace( $matches[0][ $i ], '', $in );
245
+                $in = str_replace($matches[0][$i], '', $in);
246 246
             }
247 247
             $i++;
248 248
         }
249 249
 
250 250
         $options      = $this->options;
251 251
         $fonts_markup = '';
252
-        if ( '2' === $options['autoptimize_extra_radio_field_4'] ) {
252
+        if ('2' === $options['autoptimize_extra_radio_field_4']) {
253 253
             // Remove Google Fonts.
254
-            unset( $fonts_collection );
254
+            unset($fonts_collection);
255 255
             return $in;
256
-        } elseif ( '3' === $options['autoptimize_extra_radio_field_4'] || '5' === $options['autoptimize_extra_radio_field_4'] ) {
256
+        } elseif ('3' === $options['autoptimize_extra_radio_field_4'] || '5' === $options['autoptimize_extra_radio_field_4']) {
257 257
             // Aggregate & link!
258 258
             $fonts_string  = '';
259 259
             $subset_string = '';
260
-            foreach ( $fonts_collection as $font ) {
261
-                $fonts_string .= '|' . trim( implode( '|', $font['fonts'] ), '|' );
262
-                if ( ! empty( $font['subsets'] ) ) {
263
-                    $subset_string .= ',' . trim( implode( ',', $font['subsets'] ), ',' );
260
+            foreach ($fonts_collection as $font) {
261
+                $fonts_string .= '|'.trim(implode('|', $font['fonts']), '|');
262
+                if (!empty($font['subsets'])) {
263
+                    $subset_string .= ','.trim(implode(',', $font['subsets']), ',');
264 264
                 }
265 265
             }
266 266
 
267
-            if ( ! empty( $subset_string ) ) {
268
-                $subset_string = str_replace( ',', '%2C', ltrim( $subset_string, ',' ) );
269
-                $fonts_string  = $fonts_string . '&#038;subset=' . $subset_string;
267
+            if (!empty($subset_string)) {
268
+                $subset_string = str_replace(',', '%2C', ltrim($subset_string, ','));
269
+                $fonts_string  = $fonts_string.'&#038;subset='.$subset_string;
270 270
             }
271 271
 
272
-            $fonts_string = apply_filters( 'autoptimize_filter_extra_gfont_fontstring', str_replace( '|', '%7C', ltrim( $fonts_string, '|' ) ) );
272
+            $fonts_string = apply_filters('autoptimize_filter_extra_gfont_fontstring', str_replace('|', '%7C', ltrim($fonts_string, '|')));
273 273
             // only add display parameter if there is none in $fonts_string (by virtue of the filter).
274
-            if ( strpos( $fonts_string, 'display=' ) === false ) {
275
-                $fonts_string .= apply_filters( 'autoptimize_filter_extra_gfont_display', '&amp;display=swap' );
274
+            if (strpos($fonts_string, 'display=') === false) {
275
+                $fonts_string .= apply_filters('autoptimize_filter_extra_gfont_display', '&amp;display=swap');
276 276
             }
277 277
 
278
-            if ( ! empty( $fonts_string ) ) {
279
-                if ( '5' === $options['autoptimize_extra_radio_field_4'] ) {
280
-                    $rel_string = 'rel="preload" as="style" onload="' . autoptimizeConfig::get_ao_css_preload_onload() . '"';
278
+            if (!empty($fonts_string)) {
279
+                if ('5' === $options['autoptimize_extra_radio_field_4']) {
280
+                    $rel_string = 'rel="preload" as="style" onload="'.autoptimizeConfig::get_ao_css_preload_onload().'"';
281 281
                 } else {
282 282
                     $rel_string = 'rel="stylesheet"';
283 283
                 }
284
-                $fonts_markup = '<link ' . $rel_string . ' id="ao_optimized_gfonts" href="https://fonts.googleapis.com/css?family=' . $fonts_string . '" />';
284
+                $fonts_markup = '<link '.$rel_string.' id="ao_optimized_gfonts" href="https://fonts.googleapis.com/css?family='.$fonts_string.'" />';
285 285
             }
286
-        } elseif ( '4' === $options['autoptimize_extra_radio_field_4'] ) {
286
+        } elseif ('4' === $options['autoptimize_extra_radio_field_4']) {
287 287
             // Aggregate & load async (webfont.js impl.)!
288 288
             $fonts_array = array();
289
-            foreach ( $fonts_collection as $_fonts ) {
290
-                if ( ! empty( $_fonts['subsets'] ) ) {
291
-                    $_subset = implode( ',', $_fonts['subsets'] );
292
-                    foreach ( $_fonts['fonts'] as $key => $_one_font ) {
293
-                        $_one_font               = $_one_font . ':' . $_subset;
294
-                        $_fonts['fonts'][ $key ] = $_one_font;
289
+            foreach ($fonts_collection as $_fonts) {
290
+                if (!empty($_fonts['subsets'])) {
291
+                    $_subset = implode(',', $_fonts['subsets']);
292
+                    foreach ($_fonts['fonts'] as $key => $_one_font) {
293
+                        $_one_font               = $_one_font.':'.$_subset;
294
+                        $_fonts['fonts'][$key] = $_one_font;
295 295
                     }
296 296
                 }
297
-                $fonts_array = array_merge( $fonts_array, $_fonts['fonts'] );
297
+                $fonts_array = array_merge($fonts_array, $_fonts['fonts']);
298 298
             }
299 299
 
300
-            $fonts_array = array_map( 'urldecode', $fonts_array );
300
+            $fonts_array = array_map('urldecode', $fonts_array);
301 301
             $fonts_array = array_map(
302
-                function( $_f ) {
303
-                    return trim( $_f, ',' );
302
+                function($_f) {
303
+                    return trim($_f, ',');
304 304
                 },
305 305
                 $fonts_array
306 306
             );
307 307
 
308 308
             // type attrib on <script not added by default.
309 309
             $type_js = '';
310
-            if ( apply_filters( 'autoptimize_filter_cssjs_addtype', false ) ) {
310
+            if (apply_filters('autoptimize_filter_cssjs_addtype', false)) {
311 311
                 $type_js = 'type="text/javascript" ';
312 312
             }
313 313
 
314
-            $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>';
315
-            $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>';
316
-            $in                   = substr_replace( $in, $fonts_library_markup . '</head>', strpos( $in, '</head>' ), strlen( '</head>' ) );
314
+            $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>';
315
+            $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>';
316
+            $in                   = substr_replace($in, $fonts_library_markup.'</head>', strpos($in, '</head>'), strlen('</head>'));
317 317
         }
318 318
 
319 319
         // Replace back in markup.
320
-        $inject_point = apply_filters( 'autoptimize_filter_extra_gfont_injectpoint', '<link' );
321
-        $out          = substr_replace( $in, $fonts_markup . $inject_point, strpos( $in, $inject_point ), strlen( $inject_point ) );
322
-        unset( $fonts_collection );
320
+        $inject_point = apply_filters('autoptimize_filter_extra_gfont_injectpoint', '<link');
321
+        $out          = substr_replace($in, $fonts_markup.$inject_point, strpos($in, $inject_point), strlen($inject_point));
322
+        unset($fonts_collection);
323 323
 
324 324
         // and insert preload polyfill if "link preload" and if the polyfill isn't there yet (courtesy of inline&defer).
325 325
         $preload_polyfill = autoptimizeConfig::get_ao_css_preload_polyfill();
326
-        if ( '5' === $options['autoptimize_extra_radio_field_4'] && strpos( $out, $preload_polyfill ) === false ) {
327
-            $out = str_replace( '</body>', $preload_polyfill . '</body>', $out );
326
+        if ('5' === $options['autoptimize_extra_radio_field_4'] && strpos($out, $preload_polyfill) === false) {
327
+            $out = str_replace('</body>', $preload_polyfill.'</body>', $out);
328 328
         }
329 329
         return $out;
330 330
     }
331 331
 
332
-    public function filter_preconnect( $hints, $relation_type )
332
+    public function filter_preconnect($hints, $relation_type)
333 333
     {
334 334
         $options  = $this->options;
335 335
         $preconns = array();
336 336
 
337 337
         // Get settings and store in array.
338
-        if ( array_key_exists( 'autoptimize_extra_text_field_2', $options ) ) {
339
-            $preconns = array_filter( array_map( 'trim', explode( ',', $options['autoptimize_extra_text_field_2'] ) ) );
338
+        if (array_key_exists('autoptimize_extra_text_field_2', $options)) {
339
+            $preconns = array_filter(array_map('trim', explode(',', $options['autoptimize_extra_text_field_2'])));
340 340
         }
341
-        $preconns = apply_filters( 'autoptimize_extra_filter_tobepreconn', $preconns );
341
+        $preconns = apply_filters('autoptimize_extra_filter_tobepreconn', $preconns);
342 342
 
343 343
         // Walk array, extract domain and add to new array with crossorigin attribute.
344
-        foreach ( $preconns as $preconn ) {
344
+        foreach ($preconns as $preconn) {
345 345
             $domain = '';
346
-            $parsed = parse_url( $preconn );
347
-            if ( is_array( $parsed ) && ! empty( $parsed['host'] ) && empty( $parsed['scheme'] ) ) {
348
-                $domain = '//' . $parsed['host'];
349
-            } elseif ( is_array( $parsed ) && ! empty( $parsed['host'] ) ) {
350
-                $domain = $parsed['scheme'] . '://' . $parsed['host'];
346
+            $parsed = parse_url($preconn);
347
+            if (is_array($parsed) && !empty($parsed['host']) && empty($parsed['scheme'])) {
348
+                $domain = '//'.$parsed['host'];
349
+            } elseif (is_array($parsed) && !empty($parsed['host'])) {
350
+                $domain = $parsed['scheme'].'://'.$parsed['host'];
351 351
             }
352 352
 
353
-            if ( ! empty( $domain ) ) {
354
-                $hint = array( 'href' => $domain );
353
+            if (!empty($domain)) {
354
+                $hint = array('href' => $domain);
355 355
                 // Fonts don't get preconnected unless crossorigin flag is set, non-fonts don't get preconnected if origin flag is set
356 356
                 // so hardcode fonts.gstatic.com to come with crossorigin and have filter to add other domains if needed.
357
-                $crossorigins = apply_filters( 'autoptimize_extra_filter_preconn_crossorigin', array( 'https://fonts.gstatic.com' ) );
358
-                if ( in_array( $domain, $crossorigins ) ) {
357
+                $crossorigins = apply_filters('autoptimize_extra_filter_preconn_crossorigin', array('https://fonts.gstatic.com'));
358
+                if (in_array($domain, $crossorigins)) {
359 359
                     $hint['crossorigin'] = 'anonymous';
360 360
                 }
361 361
                 $new_hints[] = $hint;
@@ -363,21 +363,21 @@  discard block
 block discarded – undo
363 363
         }
364 364
 
365 365
         // Merge in WP's preconnect hints.
366
-        if ( 'preconnect' === $relation_type && ! empty( $new_hints ) ) {
367
-            $hints = array_merge( $hints, $new_hints );
366
+        if ('preconnect' === $relation_type && !empty($new_hints)) {
367
+            $hints = array_merge($hints, $new_hints);
368 368
         }
369 369
 
370 370
         return $hints;
371 371
     }
372 372
 
373
-    public function filter_preconnect_google_fonts( $in )
373
+    public function filter_preconnect_google_fonts($in)
374 374
     {
375
-        if ( '2' !== $this->options['autoptimize_extra_radio_field_4'] ) {
375
+        if ('2' !== $this->options['autoptimize_extra_radio_field_4']) {
376 376
             // Preconnect to fonts.gstatic.com unless we remove gfonts.
377 377
             $in[] = 'https://fonts.gstatic.com';
378 378
         }
379 379
 
380
-        if ( '4' === $this->options['autoptimize_extra_radio_field_4'] ) {
380
+        if ('4' === $this->options['autoptimize_extra_radio_field_4']) {
381 381
             // Preconnect even more hosts for webfont.js!
382 382
             $in[] = 'https://ajax.googleapis.com';
383 383
             $in[] = 'https://fonts.googleapis.com';
@@ -386,75 +386,75 @@  discard block
 block discarded – undo
386 386
         return $in;
387 387
     }
388 388
 
389
-    public function filter_preload( $in ) {
389
+    public function filter_preload($in) {
390 390
         // make array from comma separated list.
391 391
         $options  = $this->options;
392 392
         $preloads = array();
393
-        if ( array_key_exists( 'autoptimize_extra_text_field_7', $options ) ) {
394
-            $preloads = array_filter( array_map( 'trim', explode( ',', $options['autoptimize_extra_text_field_7'] ) ) );
393
+        if (array_key_exists('autoptimize_extra_text_field_7', $options)) {
394
+            $preloads = array_filter(array_map('trim', explode(',', $options['autoptimize_extra_text_field_7'])));
395 395
         }
396
-        $preloads = apply_filters( 'autoptimize_filter_extra_tobepreloaded', $preloads );
396
+        $preloads = apply_filters('autoptimize_filter_extra_tobepreloaded', $preloads);
397 397
 
398 398
         // immediately return if nothing to be preloaded.
399
-        if ( empty( $preloads ) ) {
399
+        if (empty($preloads)) {
400 400
             return $in;
401 401
         }
402 402
 
403 403
         // iterate through array and add preload link to tmp string.
404 404
         $preload_output = '';
405
-        foreach ( $preloads as $preload ) {
405
+        foreach ($preloads as $preload) {
406 406
             $crossorigin = '';
407 407
             $preload_as  = '';
408 408
             $mime_type   = '';
409 409
 
410
-            if ( autoptimizeUtils::str_ends_in( $preload, '.css' ) ) {
410
+            if (autoptimizeUtils::str_ends_in($preload, '.css')) {
411 411
                 $preload_as = 'style';
412
-            } elseif ( autoptimizeUtils::str_ends_in( $preload, '.js' ) ) {
412
+            } elseif (autoptimizeUtils::str_ends_in($preload, '.js')) {
413 413
                 $preload_as = 'script';
414
-            } 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' ) ) {
414
+            } 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')) {
415 415
                 $preload_as  = 'font';
416 416
                 $crossorigin = ' crossorigin';
417
-                $mime_type   = ' type="font/' . pathinfo( $preload, PATHINFO_EXTENSION ) . '"';
418
-                if ( ' type="font/eot"' === $mime_type ) {
417
+                $mime_type   = ' type="font/'.pathinfo($preload, PATHINFO_EXTENSION).'"';
418
+                if (' type="font/eot"' === $mime_type) {
419 419
                     $mime_type = 'application/vnd.ms-fontobject';
420 420
                 }
421
-            } 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' ) ) {
421
+            } 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')) {
422 422
                 $preload_as = 'image';
423 423
             } else {
424 424
                 $preload_as = 'other';
425 425
             }
426 426
 
427
-            $preload_output .= '<link rel="preload" href="' . $preload . '" as="' . $preload_as . '"' . $mime_type . $crossorigin . '>';
427
+            $preload_output .= '<link rel="preload" href="'.$preload.'" as="'.$preload_as.'"'.$mime_type.$crossorigin.'>';
428 428
         }
429
-        $preload_output = apply_filters( 'autoptimize_filter_extra_preload_output', $preload_output );
429
+        $preload_output = apply_filters('autoptimize_filter_extra_preload_output', $preload_output);
430 430
 
431 431
         // add string to head (before first link node by default).
432
-        $preload_inject = apply_filters( 'autoptimize_filter_extra_preload_inject', '<link' );
433
-        $position       = autoptimizeUtils::strpos( $in, $preload_inject );
432
+        $preload_inject = apply_filters('autoptimize_filter_extra_preload_inject', '<link');
433
+        $position       = autoptimizeUtils::strpos($in, $preload_inject);
434 434
 
435
-        return autoptimizeUtils::substr_replace( $in, $preload_output . $preload_inject, $position, strlen( $preload_inject ) );
435
+        return autoptimizeUtils::substr_replace($in, $preload_output.$preload_inject, $position, strlen($preload_inject));
436 436
     }
437 437
 
438 438
     public function admin_menu()
439 439
     {
440 440
         // no acces if multisite and not network admin and no site config allowed.
441
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
441
+        if (autoptimizeConfig::should_show_menu_tabs()) {
442 442
             add_submenu_page(
443 443
                 null,
444 444
                 'autoptimize_extra',
445 445
                 'autoptimize_extra',
446 446
                 'manage_options',
447 447
                 'autoptimize_extra',
448
-                array( $this, 'options_page' )
448
+                array($this, 'options_page')
449 449
             );
450
-            register_setting( 'autoptimize_extra_settings', 'autoptimize_extra_settings' );
450
+            register_setting('autoptimize_extra_settings', 'autoptimize_extra_settings');
451 451
         }
452 452
     }
453 453
 
454
-    public function add_extra_tab( $in )
454
+    public function add_extra_tab($in)
455 455
     {
456
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
457
-            $in = array_merge( $in, array( 'autoptimize_extra' => __( 'Extra', 'autoptimize' ) ) );
456
+        if (autoptimizeConfig::should_show_menu_tabs()) {
457
+            $in = array_merge($in, array('autoptimize_extra' => __('Extra', 'autoptimize')));
458 458
         }
459 459
 
460 460
         return $in;
@@ -474,97 +474,97 @@  discard block
 block discarded – undo
474 474
         #ao_settings_form .form-table th {font-weight: normal;}
475 475
         #autoptimize_extra_descr{font-size: 120%;}
476 476
     </style>
477
-    <script>document.title = "Autoptimize: <?php _e( 'Extra', 'autoptimize' ); ?> " + document.title;</script>
477
+    <script>document.title = "Autoptimize: <?php _e('Extra', 'autoptimize'); ?> " + document.title;</script>
478 478
     <div class="wrap">
479
-    <h1><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?></h1>
479
+    <h1><?php _e('Autoptimize Settings', 'autoptimize'); ?></h1>
480 480
         <?php echo autoptimizeConfig::ao_admin_tabs(); ?>
481
-        <?php if ( 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_js' ) && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_css' ) && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_html' ) && ! autoptimizeImages::imgopt_active() ) { ?>
481
+        <?php if ('on' !== autoptimizeOptionWrapper::get_option('autoptimize_js') && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_css') && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_html') && !autoptimizeImages::imgopt_active()) { ?>
482 482
             <div class="notice-warning notice"><p>
483
-            <?php _e( 'Most of below Extra optimizations require at least one of HTML, JS, CSS or Image autoptimizations being active.', 'autoptimize' ); ?>
483
+            <?php _e('Most of below Extra optimizations require at least one of HTML, JS, CSS or Image autoptimizations being active.', 'autoptimize'); ?>
484 484
             </p></div>
485 485
         <?php } ?>
486 486
 
487
-    <form id='ao_settings_form' action='<?php echo admin_url( 'options.php' ); ?>' method='post'>
488
-        <?php settings_fields( 'autoptimize_extra_settings' ); ?>
489
-        <h2><?php _e( 'Extra Auto-Optimizations', 'autoptimize' ); ?></h2>
490
-        <span id='autoptimize_extra_descr'><?php _e( 'The following settings can improve your site\'s performance even more.', 'autoptimize' ); ?></span>
487
+    <form id='ao_settings_form' action='<?php echo admin_url('options.php'); ?>' method='post'>
488
+        <?php settings_fields('autoptimize_extra_settings'); ?>
489
+        <h2><?php _e('Extra Auto-Optimizations', 'autoptimize'); ?></h2>
490
+        <span id='autoptimize_extra_descr'><?php _e('The following settings can improve your site\'s performance even more.', 'autoptimize'); ?></span>
491 491
         <table class="form-table">
492 492
             <tr>
493
-                <th scope="row"><?php _e( 'Google Fonts', 'autoptimize' ); ?></th>
493
+                <th scope="row"><?php _e('Google Fonts', 'autoptimize'); ?></th>
494 494
                 <td>
495
-                    <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/>
496
-                    <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/>
495
+                    <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/>
496
+                    <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/>
497 497
                     <?php // translators: "display:swap" should remain untranslated, will be shown in code tags. ?>
498
-                    <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/>
498
+                    <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/>
499 499
                     <?php // translators: "display:swap" should remain untranslated, will be shown in code tags. ?>
500
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="5" <?php checked( 5, $gfonts, true ); ?> ><?php echo __( 'Combine and preload in head (fonts load late, but are not render-blocking)', 'autoptimize' ) . ', ' . sprintf( __( 'includes %1$sdisplay:swap%2$s.', 'autoptimize' ), '<code>', '</code>' ); ?><br/>
501
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="4" <?php checked( 4, $gfonts, true ); ?> ><?php _e( 'Combine and load fonts asynchronously with <a href="https://github.com/typekit/webfontloader#readme" target="_blank">webfont.js</a>', 'autoptimize' ); ?><br/>
500
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="5" <?php checked(5, $gfonts, true); ?> ><?php echo __('Combine and preload in head (fonts load late, but are not render-blocking)', 'autoptimize').', '.sprintf(__('includes %1$sdisplay:swap%2$s.', 'autoptimize'), '<code>', '</code>'); ?><br/>
501
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="4" <?php checked(4, $gfonts, true); ?> ><?php _e('Combine and load fonts asynchronously with <a href="https://github.com/typekit/webfontloader#readme" target="_blank">webfont.js</a>', 'autoptimize'); ?><br/>
502 502
                 </td>
503 503
             </tr>
504 504
             <tr>
505
-                <th scope="row"><?php _e( 'Remove emojis', 'autoptimize' ); ?></th>
505
+                <th scope="row"><?php _e('Remove emojis', 'autoptimize'); ?></th>
506 506
                 <td>
507
-                    <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>
507
+                    <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>
508 508
                 </td>
509 509
             </tr>
510 510
             <tr>
511
-                <th scope="row"><?php _e( 'Remove query strings from static resources', 'autoptimize' ); ?></th>
511
+                <th scope="row"><?php _e('Remove query strings from static resources', 'autoptimize'); ?></th>
512 512
                 <td>
513
-                    <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>
513
+                    <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>
514 514
                 </td>
515 515
             </tr>
516 516
             <tr>
517
-                <th scope="row"><?php _e( 'Preconnect to 3rd party domains <em>(advanced users)</em>', 'autoptimize' ); ?></th>
517
+                <th scope="row"><?php _e('Preconnect to 3rd party domains <em>(advanced users)</em>', 'autoptimize'); ?></th>
518 518
                 <td>
519
-                    <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>
519
+                    <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>
520 520
                 </td>
521 521
             </tr>
522 522
             <tr>
523
-                <th scope="row"><?php _e( 'Preload specific requests <em>(advanced users)</em>', 'autoptimize' ); ?></th>
523
+                <th scope="row"><?php _e('Preload specific requests <em>(advanced users)</em>', 'autoptimize'); ?></th>
524 524
                 <td>
525
-                    <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>
525
+                    <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>
526 526
                 </td>
527 527
             </tr>
528 528
             <tr>
529
-                <th scope="row"><?php _e( 'Async Javascript-files <em>(advanced users)</em>', 'autoptimize' ); ?></th>
529
+                <th scope="row"><?php _e('Async Javascript-files <em>(advanced users)</em>', 'autoptimize'); ?></th>
530 530
                 <td>
531 531
                     <?php
532
-                    if ( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) ) {
532
+                    if (autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php')) {
533 533
                         // translators: link points Async Javascript settings page.
534
-                        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>' );
534
+                        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>');
535 535
                     } else {
536 536
                     ?>
537
-                        <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'] ); } ?>'>
537
+                        <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']); } ?>'>
538 538
                         <br />
539 539
                         <?php
540
-                            _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' );
540
+                            _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');
541 541
                             // translators: %s will be replaced by a link to the "async javascript" plugin.
542
-                            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>"' );
543
-                            $asj_install_url = network_admin_url() . 'plugin-install.php?s=async+javascript&tab=search&type=term';
544
-                            echo sprintf( ' <a href="' . $asj_install_url . '">%s</a>', __( 'Click here to install and activate it.', 'autoptimize' ) );
542
+                            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>"');
543
+                            $asj_install_url = network_admin_url().'plugin-install.php?s=async+javascript&tab=search&type=term';
544
+                            echo sprintf(' <a href="'.$asj_install_url.'">%s</a>', __('Click here to install and activate it.', 'autoptimize'));
545 545
                     }
546 546
                     ?>
547 547
                 </td>
548 548
             </tr>
549 549
             <tr>
550
-                <th scope="row"><?php _e( 'Optimize YouTube videos', 'autoptimize' ); ?></th>
550
+                <th scope="row"><?php _e('Optimize YouTube videos', 'autoptimize'); ?></th>
551 551
                 <td>
552 552
                     <?php
553
-                    if ( autoptimizeUtils::is_plugin_active( 'wp-youtube-lyte/wp-youtube-lyte.php' ) ) {
554
-                        _e( 'Great, you have WP YouTube Lyte installed.', 'autoptimize' );
553
+                    if (autoptimizeUtils::is_plugin_active('wp-youtube-lyte/wp-youtube-lyte.php')) {
554
+                        _e('Great, you have WP YouTube Lyte installed.', 'autoptimize');
555 555
                         $lyte_config_url = 'options-general.php?page=lyte_settings_page';
556
-                        echo sprintf( ' <a href="' . $lyte_config_url . '">%s</a>', __( 'Click here to configure it.', 'autoptimize' ) );
556
+                        echo sprintf(' <a href="'.$lyte_config_url.'">%s</a>', __('Click here to configure it.', 'autoptimize'));
557 557
                     } else {
558 558
                         // translators: %s will be replaced by a link to "wp youtube lyte" plugin.
559
-                        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>' );
560
-                        $lyte_install_url = network_admin_url() . 'plugin-install.php?s=lyte&tab=search&type=term';
561
-                        echo sprintf( ' <a href="' . $lyte_install_url . '">%s</a>', __( 'Click here to install and activate it.', 'autoptimize' ) );
559
+                        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>');
560
+                        $lyte_install_url = network_admin_url().'plugin-install.php?s=lyte&tab=search&type=term';
561
+                        echo sprintf(' <a href="'.$lyte_install_url.'">%s</a>', __('Click here to install and activate it.', 'autoptimize'));
562 562
                     }
563 563
                     ?>
564 564
                 </td>
565 565
             </tr>
566 566
         </table>
567
-        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save Changes', 'autoptimize' ); ?>" /></p>
567
+        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'autoptimize'); ?>" /></p>
568 568
     </form>
569 569
         <?php
570 570
     }
Please login to merge, or discard this patch.
classes/autoptimizeImages.php 1 patch
Spacing   +335 added lines, -335 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles optimizing images.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -23,17 +23,17 @@  discard block
 block discarded – undo
23 23
      */
24 24
     protected static $instance = null;
25 25
 
26
-    public function __construct( array $options = array() )
26
+    public function __construct(array $options = array())
27 27
     {
28 28
         // If options are not provided, fetch them.
29
-        if ( empty( $options ) ) {
29
+        if (empty($options)) {
30 30
             $options = $this->fetch_options();
31 31
         }
32 32
 
33
-        $this->set_options( $options );
33
+        $this->set_options($options);
34 34
     }
35 35
 
36
-    public function set_options( array $options )
36
+    public function set_options(array $options)
37 37
     {
38 38
         $this->options = $options;
39 39
 
@@ -42,17 +42,17 @@  discard block
 block discarded – undo
42 42
 
43 43
     public static function fetch_options()
44 44
     {
45
-        $value = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_settings' );
46
-        if ( empty( $value ) ) {
45
+        $value = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_settings');
46
+        if (empty($value)) {
47 47
             // Fallback to returning defaults when no stored option exists yet.
48 48
             $value = autoptimizeConfig::get_ao_imgopt_default_options();
49 49
         }
50 50
 
51 51
         // get service availability and add it to the options-array.
52
-        $value['availabilities'] = autoptimizeOptionWrapper::get_option( 'autoptimize_service_availablity' );
52
+        $value['availabilities'] = autoptimizeOptionWrapper::get_option('autoptimize_service_availablity');
53 53
 
54
-        if ( empty( $value['availabilities'] ) ) {
55
-            $value['availabilities'] = autoptimizeUtils::check_service_availability( true );
54
+        if (empty($value['availabilities'])) {
55
+            $value['availabilities'] = autoptimizeUtils::check_service_availability(true);
56 56
         }
57 57
 
58 58
         return $value;
@@ -65,9 +65,9 @@  discard block
 block discarded – undo
65 65
         // and does not use/ request the availablity data (which could slow things down).
66 66
         static $imgopt_active = null;
67 67
 
68
-        if ( null === $imgopt_active ) {
69
-            $opts = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_settings', '' );
70
-            if ( ! empty( $opts ) && is_array( $opts ) && array_key_exists( 'autoptimize_imgopt_checkbox_field_1', $opts ) && ! empty( $opts['autoptimize_imgopt_checkbox_field_1'] ) && '1' === $opts['autoptimize_imgopt_checkbox_field_1'] ) {
68
+        if (null === $imgopt_active) {
69
+            $opts = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_settings', '');
70
+            if (!empty($opts) && is_array($opts) && array_key_exists('autoptimize_imgopt_checkbox_field_1', $opts) && !empty($opts['autoptimize_imgopt_checkbox_field_1']) && '1' === $opts['autoptimize_imgopt_checkbox_field_1']) {
71 71
                 $imgopt_active = true;
72 72
             } else {
73 73
                 $imgopt_active = false;
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
      */
88 88
     public static function instance()
89 89
     {
90
-        if ( null === self::$instance ) {
90
+        if (null === self::$instance) {
91 91
             self::$instance = new self();
92 92
         }
93 93
 
@@ -96,30 +96,30 @@  discard block
 block discarded – undo
96 96
 
97 97
     public function run()
98 98
     {
99
-        if ( is_admin() ) {
100
-            if ( is_multisite() && is_network_admin() && autoptimizeOptionWrapper::is_ao_active_for_network() ) {
101
-                add_action( 'network_admin_menu', array( $this, 'imgopt_admin_menu' ) );
99
+        if (is_admin()) {
100
+            if (is_multisite() && is_network_admin() && autoptimizeOptionWrapper::is_ao_active_for_network()) {
101
+                add_action('network_admin_menu', array($this, 'imgopt_admin_menu'));
102 102
             } else {
103
-                add_action( 'admin_menu', array( $this, 'imgopt_admin_menu' ) );
103
+                add_action('admin_menu', array($this, 'imgopt_admin_menu'));
104 104
             }
105
-            add_filter( 'autoptimize_filter_settingsscreen_tabs', array( $this, 'add_imgopt_tab' ), 9 );
105
+            add_filter('autoptimize_filter_settingsscreen_tabs', array($this, 'add_imgopt_tab'), 9);
106 106
         } else {
107
-            add_action( 'wp', array( $this, 'run_on_frontend' ) );
107
+            add_action('wp', array($this, 'run_on_frontend'));
108 108
         }
109 109
     }
110 110
 
111 111
     public function run_on_frontend() {
112
-        if ( ! $this->should_run() ) {
113
-            if ( $this->should_lazyload() ) {
112
+        if (!$this->should_run()) {
113
+            if ($this->should_lazyload()) {
114 114
                 add_filter(
115 115
                     'autoptimize_html_after_minify',
116
-                    array( $this, 'filter_lazyload_images' ),
116
+                    array($this, 'filter_lazyload_images'),
117 117
                     10,
118 118
                     1
119 119
                 );
120 120
                 add_action(
121 121
                     'wp_footer',
122
-                    array( $this, 'add_lazyload_js_footer' ),
122
+                    array($this, 'add_lazyload_js_footer'),
123 123
                     10,
124 124
                     0
125 125
                 );
@@ -129,39 +129,39 @@  discard block
 block discarded – undo
129 129
 
130 130
         $active = false;
131 131
 
132
-        if ( apply_filters( 'autoptimize_filter_imgopt_do', true ) ) {
132
+        if (apply_filters('autoptimize_filter_imgopt_do', true)) {
133 133
             add_filter(
134 134
                 'autoptimize_html_after_minify',
135
-                array( $this, 'filter_optimize_images' ),
135
+                array($this, 'filter_optimize_images'),
136 136
                 10,
137 137
                 1
138 138
             );
139 139
             $active = true;
140 140
         }
141 141
 
142
-        if ( apply_filters( 'autoptimize_filter_imgopt_do_css', true ) ) {
142
+        if (apply_filters('autoptimize_filter_imgopt_do_css', true)) {
143 143
             add_filter(
144 144
                 'autoptimize_filter_base_replace_cdn',
145
-                array( $this, 'filter_optimize_css_images' ),
145
+                array($this, 'filter_optimize_css_images'),
146 146
                 10,
147 147
                 1
148 148
             );
149 149
             $active = true;
150 150
         }
151 151
 
152
-        if ( $active ) {
152
+        if ($active) {
153 153
             add_filter(
154 154
                 'autoptimize_extra_filter_tobepreconn',
155
-                array( $this, 'filter_preconnect_imgopt_url' ),
155
+                array($this, 'filter_preconnect_imgopt_url'),
156 156
                 10,
157 157
                 1
158 158
             );
159 159
         }
160 160
 
161
-        if ( $this->should_lazyload() ) {
161
+        if ($this->should_lazyload()) {
162 162
             add_action(
163 163
                 'wp_footer',
164
-                array( $this, 'add_lazyload_js_footer' ),
164
+                array($this, 'add_lazyload_js_footer'),
165 165
                 10,
166 166
                 0
167 167
             );
@@ -176,12 +176,12 @@  discard block
 block discarded – undo
176 176
     protected function should_run()
177 177
     {
178 178
         $opts              = $this->options;
179
-        $service_not_down  = ( 'down' !== $opts['availabilities']['extra_imgopt']['status'] );
180
-        $not_launch_status = ( 'launch' !== $opts['availabilities']['extra_imgopt']['status'] );
179
+        $service_not_down  = ('down' !== $opts['availabilities']['extra_imgopt']['status']);
180
+        $not_launch_status = ('launch' !== $opts['availabilities']['extra_imgopt']['status']);
181 181
 
182 182
         $do_cdn      = true;
183 183
         $_userstatus = $this->get_imgopt_provider_userstatus();
184
-        if ( isset( $_userstatus['Status'] ) && ( -2 == $_userstatus['Status'] || -3 == $_userstatus['Status'] ) ) {
184
+        if (isset($_userstatus['Status']) && ( -2 == $_userstatus['Status'] || -3 == $_userstatus['Status'] )) {
185 185
             // don't even attempt to put images on CDN if heavily exceeded threshold or if site not reachable.
186 186
             $do_cdn = false;
187 187
         }
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
             $this->imgopt_active()
191 191
             && $do_cdn
192 192
             && $service_not_down
193
-            && ( $not_launch_status || $this->launch_ok() )
193
+            && ($not_launch_status || $this->launch_ok())
194 194
         ) {
195 195
             return true;
196 196
         }
@@ -201,13 +201,13 @@  discard block
 block discarded – undo
201 201
     {
202 202
         static $imgopt_host = null;
203 203
 
204
-        if ( null === $imgopt_host ) {
204
+        if (null === $imgopt_host) {
205 205
             $imgopt_host  = 'https://cdn.shortpixel.ai/';
206 206
             $avail_imgopt = $this->options['availabilities']['extra_imgopt'];
207
-            if ( ! empty( $avail_imgopt ) && array_key_exists( 'hosts', $avail_imgopt ) && is_array( $avail_imgopt['hosts'] ) ) {
208
-                $imgopt_host = array_rand( array_flip( $avail_imgopt['hosts'] ) );
207
+            if (!empty($avail_imgopt) && array_key_exists('hosts', $avail_imgopt) && is_array($avail_imgopt['hosts'])) {
208
+                $imgopt_host = array_rand(array_flip($avail_imgopt['hosts']));
209 209
             }
210
-            $imgopt_host = apply_filters( 'autoptimize_filter_imgopt_host', $imgopt_host );
210
+            $imgopt_host = apply_filters('autoptimize_filter_imgopt_host', $imgopt_host);
211 211
         }
212 212
 
213 213
         return $imgopt_host;
@@ -222,7 +222,7 @@  discard block
 block discarded – undo
222 222
 
223 223
     public static function get_service_url_suffix()
224 224
     {
225
-        $suffix = '/af/GWRGFLW109483/' . AUTOPTIMIZE_SITE_DOMAIN;
225
+        $suffix = '/af/GWRGFLW109483/'.AUTOPTIMIZE_SITE_DOMAIN;
226 226
 
227 227
         return $suffix;
228 228
     }
@@ -231,12 +231,12 @@  discard block
 block discarded – undo
231 231
     {
232 232
         static $quality = null;
233 233
 
234
-        if ( null === $quality ) {
234
+        if (null === $quality) {
235 235
             $q_array = $this->get_img_quality_array();
236 236
             $setting = $this->get_img_quality_setting();
237 237
             $quality = apply_filters(
238 238
                 'autoptimize_filter_imgopt_quality',
239
-                'q_' . $q_array[ $setting ]
239
+                'q_'.$q_array[$setting]
240 240
             );
241 241
         }
242 242
 
@@ -247,7 +247,7 @@  discard block
 block discarded – undo
247 247
     {
248 248
         static $map = null;
249 249
 
250
-        if ( null === $map ) {
250
+        if (null === $map) {
251 251
             $map = array(
252 252
                 '1' => 'lossy',
253 253
                 '2' => 'glossy',
@@ -266,12 +266,12 @@  discard block
 block discarded – undo
266 266
     {
267 267
         static $q = null;
268 268
 
269
-        if ( null === $q ) {
270
-            if ( is_array( $this->options ) && array_key_exists( 'autoptimize_imgopt_select_field_2', $this->options ) ) {
269
+        if (null === $q) {
270
+            if (is_array($this->options) && array_key_exists('autoptimize_imgopt_select_field_2', $this->options)) {
271 271
                 $setting = $this->options['autoptimize_imgopt_select_field_2'];
272 272
             }
273 273
 
274
-            if ( ! isset( $setting ) || empty( $setting ) || ( '1' !== $setting && '3' !== $setting ) ) {
274
+            if (!isset($setting) || empty($setting) || ('1' !== $setting && '3' !== $setting)) {
275 275
                 // default image opt. value is 2 ("glossy").
276 276
                 $q = '2';
277 277
             } else {
@@ -282,10 +282,10 @@  discard block
 block discarded – undo
282 282
         return $q;
283 283
     }
284 284
 
285
-    public function filter_preconnect_imgopt_url( array $in )
285
+    public function filter_preconnect_imgopt_url(array $in)
286 286
     {
287
-        $url_parts = parse_url( $this->get_imgopt_base_url() );
288
-        $in[]      = $url_parts['scheme'] . '://' . $url_parts['host'];
287
+        $url_parts = parse_url($this->get_imgopt_base_url());
288
+        $in[]      = $url_parts['scheme'].'://'.$url_parts['host'];
289 289
 
290 290
         return $in;
291 291
     }
@@ -298,20 +298,20 @@  discard block
 block discarded – undo
298 298
      *
299 299
      * @return string
300 300
      */
301
-    private function normalize_img_url( $in )
301
+    private function normalize_img_url($in)
302 302
     {
303 303
         // Only parse the site url once.
304 304
         static $parsed_site_url = null;
305
-        if ( null === $parsed_site_url ) {
306
-            $parsed_site_url = parse_url( site_url() );
305
+        if (null === $parsed_site_url) {
306
+            $parsed_site_url = parse_url(site_url());
307 307
         }
308 308
 
309 309
         // get CDN domain once.
310 310
         static $cdn_domain = null;
311
-        if ( is_null( $cdn_domain ) ) {
311
+        if (is_null($cdn_domain)) {
312 312
             $cdn_url = $this->get_cdn_url();
313
-            if ( ! empty( $cdn_url ) ) {
314
-                $cdn_domain = parse_url( $cdn_url, PHP_URL_HOST );
313
+            if (!empty($cdn_url)) {
314
+                $cdn_domain = parse_url($cdn_url, PHP_URL_HOST);
315 315
             } else {
316 316
                 $cdn_domain = '';
317 317
             }
@@ -327,44 +327,44 @@  discard block
 block discarded – undo
327 327
          * identical string operations).
328 328
          */
329 329
         static $cache = null;
330
-        if ( null === $cache ) {
330
+        if (null === $cache) {
331 331
             $cache = array();
332 332
         }
333 333
 
334 334
         // Do the work on cache miss only.
335
-        if ( ! isset( $cache[ $in ] ) ) {
335
+        if (!isset($cache[$in])) {
336 336
             // Default to (the trimmed version of) what was given to us.
337
-            $result = trim( $in );
337
+            $result = trim($in);
338 338
 
339 339
             // Some silly plugins wrap background images in html-encoded quotes, so remove those from the img url.
340
-            if ( strpos( $result, '&quot;' ) !== false ) {
341
-                $result = str_replace( '&quot;', '', $result );
340
+            if (strpos($result, '&quot;') !== false) {
341
+                $result = str_replace('&quot;', '', $result);
342 342
             }
343 343
 
344
-            if ( autoptimizeUtils::is_protocol_relative( $result ) ) {
345
-                $result = $parsed_site_url['scheme'] . ':' . $result;
346
-            } elseif ( 0 === strpos( $result, '/' ) ) {
344
+            if (autoptimizeUtils::is_protocol_relative($result)) {
345
+                $result = $parsed_site_url['scheme'].':'.$result;
346
+            } elseif (0 === strpos($result, '/')) {
347 347
                 // Root-relative...
348
-                $result = $parsed_site_url['scheme'] . '://' . $parsed_site_url['host'] . $result;
349
-            } elseif ( ! empty( $cdn_domain ) && strpos( $result, $cdn_domain ) !== 0 ) {
350
-                $result = str_replace( $cdn_domain, $parsed_site_url['host'], $result );
348
+                $result = $parsed_site_url['scheme'].'://'.$parsed_site_url['host'].$result;
349
+            } elseif (!empty($cdn_domain) && strpos($result, $cdn_domain) !== 0) {
350
+                $result = str_replace($cdn_domain, $parsed_site_url['host'], $result);
351 351
             }
352 352
 
353
-            $result = apply_filters( 'autoptimize_filter_imgopt_normalized_url', $result );
353
+            $result = apply_filters('autoptimize_filter_imgopt_normalized_url', $result);
354 354
 
355 355
             // Store in cache.
356
-            $cache[ $in ] = $result;
356
+            $cache[$in] = $result;
357 357
         }
358 358
 
359
-        return $cache[ $in ];
359
+        return $cache[$in];
360 360
     }
361 361
 
362
-    public function filter_optimize_css_images( $in )
362
+    public function filter_optimize_css_images($in)
363 363
     {
364
-        $in = $this->normalize_img_url( $in );
364
+        $in = $this->normalize_img_url($in);
365 365
 
366
-        if ( $this->can_optimize_image( $in ) ) {
367
-            return $this->build_imgopt_url( $in, '', '' );
366
+        if ($this->can_optimize_image($in)) {
367
+            return $this->build_imgopt_url($in, '', '');
368 368
         } else {
369 369
             return $in;
370 370
         }
@@ -374,50 +374,50 @@  discard block
 block discarded – undo
374 374
     {
375 375
         static $imgopt_base_url = null;
376 376
 
377
-        if ( null === $imgopt_base_url ) {
377
+        if (null === $imgopt_base_url) {
378 378
             $imgopt_host     = $this->get_imgopt_host();
379 379
             $quality         = $this->get_img_quality_string();
380
-            $ret_val         = apply_filters( 'autoptimize_filter_imgopt_wait', 'ret_img' ); // values: ret_wait, ret_img, ret_json, ret_blank.
381
-            $imgopt_base_url = $imgopt_host . 'client/' . $quality . ',' . $ret_val;
382
-            $imgopt_base_url = apply_filters( 'autoptimize_filter_imgopt_base_url', $imgopt_base_url );
380
+            $ret_val         = apply_filters('autoptimize_filter_imgopt_wait', 'ret_img'); // values: ret_wait, ret_img, ret_json, ret_blank.
381
+            $imgopt_base_url = $imgopt_host.'client/'.$quality.','.$ret_val;
382
+            $imgopt_base_url = apply_filters('autoptimize_filter_imgopt_base_url', $imgopt_base_url);
383 383
         }
384 384
 
385 385
         return $imgopt_base_url;
386 386
     }
387 387
 
388
-    private function can_optimize_image( $url )
388
+    private function can_optimize_image($url)
389 389
     {
390 390
         static $cdn_url      = null;
391 391
         static $nopti_images = null;
392 392
 
393
-        if ( null === $cdn_url ) {
393
+        if (null === $cdn_url) {
394 394
             $cdn_url = apply_filters(
395 395
                 'autoptimize_filter_base_cdnurl',
396
-                autoptimizeOptionWrapper::get_option( 'autoptimize_cdn_url', '' )
396
+                autoptimizeOptionWrapper::get_option('autoptimize_cdn_url', '')
397 397
             );
398 398
         }
399 399
 
400
-        if ( null === $nopti_images ) {
401
-            $nopti_images = apply_filters( 'autoptimize_filter_imgopt_noptimize', '' );
400
+        if (null === $nopti_images) {
401
+            $nopti_images = apply_filters('autoptimize_filter_imgopt_noptimize', '');
402 402
         }
403 403
 
404 404
         $site_host  = AUTOPTIMIZE_SITE_DOMAIN;
405
-        $url        = $this->normalize_img_url( $url );
406
-        $url_parsed = parse_url( $url );
405
+        $url        = $this->normalize_img_url($url);
406
+        $url_parsed = parse_url($url);
407 407
 
408
-        if ( array_key_exists( 'host', $url_parsed ) && $url_parsed['host'] !== $site_host && empty( $cdn_url ) ) {
408
+        if (array_key_exists('host', $url_parsed) && $url_parsed['host'] !== $site_host && empty($cdn_url)) {
409 409
             return false;
410
-        } elseif ( ! empty( $cdn_url ) && strpos( $url, $cdn_url ) === false && array_key_exists( 'host', $url_parsed ) && $url_parsed['host'] !== $site_host ) {
410
+        } elseif (!empty($cdn_url) && strpos($url, $cdn_url) === false && array_key_exists('host', $url_parsed) && $url_parsed['host'] !== $site_host) {
411 411
             return false;
412
-        } elseif ( strpos( $url, '.php' ) !== false ) {
412
+        } elseif (strpos($url, '.php') !== false) {
413 413
             return false;
414
-        } elseif ( str_ireplace( array( '.png', '.gif', '.jpg', '.jpeg', '.webp' ), '', $url_parsed['path'] ) === $url_parsed['path'] ) {
414
+        } elseif (str_ireplace(array('.png', '.gif', '.jpg', '.jpeg', '.webp'), '', $url_parsed['path']) === $url_parsed['path']) {
415 415
             // fixme: better check against end of string.
416 416
             return false;
417
-        } elseif ( ! empty( $nopti_images ) ) {
418
-            $nopti_images_array = array_filter( array_map( 'trim', explode( ',', $nopti_images ) ) );
419
-            foreach ( $nopti_images_array as $nopti_image ) {
420
-                if ( strpos( $url, $nopti_image ) !== false ) {
417
+        } elseif (!empty($nopti_images)) {
418
+            $nopti_images_array = array_filter(array_map('trim', explode(',', $nopti_images)));
419
+            foreach ($nopti_images_array as $nopti_image) {
420
+                if (strpos($url, $nopti_image) !== false) {
421 421
                     return false;
422 422
                 }
423 423
             }
@@ -425,13 +425,13 @@  discard block
 block discarded – undo
425 425
         return true;
426 426
     }
427 427
 
428
-    private function build_imgopt_url( $orig_url, $width = 0, $height = 0 )
428
+    private function build_imgopt_url($orig_url, $width = 0, $height = 0)
429 429
     {
430 430
         // sanitize width and height.
431
-        if ( strpos( $width, '%' ) !== false ) {
431
+        if (strpos($width, '%') !== false) {
432 432
             $width = 0;
433 433
         }
434
-        if ( strpos( $height, '%' ) !== false ) {
434
+        if (strpos($height, '%') !== false) {
435 435
             $height = 0;
436 436
         }
437 437
         $width  = (int) $width;
@@ -445,43 +445,43 @@  discard block
 block discarded – undo
445 445
         );
446 446
 
447 447
         // If filter modified the url, return that.
448
-        if ( $filtered_url !== $orig_url ) {
448
+        if ($filtered_url !== $orig_url) {
449 449
             return $filtered_url;
450 450
         }
451 451
 
452
-        $orig_url        = $this->normalize_img_url( $orig_url );
452
+        $orig_url        = $this->normalize_img_url($orig_url);
453 453
         $imgopt_base_url = $this->get_imgopt_base_url();
454 454
         $imgopt_size     = '';
455 455
 
456
-        if ( $width && 0 !== $width ) {
457
-            $imgopt_size = ',w_' . $width;
456
+        if ($width && 0 !== $width) {
457
+            $imgopt_size = ',w_'.$width;
458 458
         }
459 459
 
460
-        if ( $height && 0 !== $height ) {
461
-            $imgopt_size .= ',h_' . $height;
460
+        if ($height && 0 !== $height) {
461
+            $imgopt_size .= ',h_'.$height;
462 462
         }
463 463
 
464
-        $url = $imgopt_base_url . $imgopt_size . '/' . $orig_url;
464
+        $url = $imgopt_base_url.$imgopt_size.'/'.$orig_url;
465 465
 
466 466
         return $url;
467 467
     }
468 468
 
469
-    public function replace_data_thumbs( $matches )
469
+    public function replace_data_thumbs($matches)
470 470
     {
471
-        return $this->replace_img_callback( $matches, 150, 150 );
471
+        return $this->replace_img_callback($matches, 150, 150);
472 472
     }
473 473
 
474
-    public function replace_img_callback( $matches, $width = 0, $height = 0 )
474
+    public function replace_img_callback($matches, $width = 0, $height = 0)
475 475
     {
476
-        $_normalized_img_url = $this->normalize_img_url( $matches[1] );
477
-        if ( $this->can_optimize_image( $matches[1] ) ) {
478
-            return str_replace( $matches[1], $this->build_imgopt_url( $_normalized_img_url, $width, $height ), $matches[0] );
476
+        $_normalized_img_url = $this->normalize_img_url($matches[1]);
477
+        if ($this->can_optimize_image($matches[1])) {
478
+            return str_replace($matches[1], $this->build_imgopt_url($_normalized_img_url, $width, $height), $matches[0]);
479 479
         } else {
480 480
             return $matches[0];
481 481
         }
482 482
     }
483 483
 
484
-    public function filter_optimize_images( $in )
484
+    public function filter_optimize_images($in)
485 485
     {
486 486
         /*
487 487
          * potential future functional improvements:
@@ -491,7 +491,7 @@  discard block
 block discarded – undo
491 491
         $to_replace = array();
492 492
 
493 493
         // hide noscript tags to avoid nesting noscript tags (as lazyloaded images add noscript).
494
-        if ( $this->should_lazyload() ) {
494
+        if ($this->should_lazyload()) {
495 495
             $in = autoptimizeBase::replace_contents_with_marker_if_exists(
496 496
                 'SCRIPT',
497 497
                 '<script',
@@ -501,25 +501,25 @@  discard block
 block discarded – undo
501 501
         }
502 502
 
503 503
         // extract img tags.
504
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $in, $matches ) ) {
505
-            foreach ( $matches[0] as $tag ) {
504
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $in, $matches)) {
505
+            foreach ($matches[0] as $tag) {
506 506
                 $orig_tag = $tag;
507 507
                 $imgopt_w = '';
508 508
                 $imgopt_h = '';
509 509
 
510 510
                 // first do (data-)srcsets.
511
-                if ( preg_match_all( '#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER ) ) {
512
-                    foreach ( $allsrcsets as $srcset ) {
511
+                if (preg_match_all('#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER)) {
512
+                    foreach ($allsrcsets as $srcset) {
513 513
                         $srcset  = $srcset[2];
514
-                        $srcsets = explode( ',', $srcset );
515
-                        foreach ( $srcsets as $indiv_srcset ) {
516
-                            $indiv_srcset_parts = explode( ' ', trim( $indiv_srcset ) );
517
-                            if ( isset( $indiv_srcset_parts[1] ) && rtrim( $indiv_srcset_parts[1], 'w' ) !== $indiv_srcset_parts[1] ) {
518
-                                $imgopt_w = rtrim( $indiv_srcset_parts[1], 'w' );
514
+                        $srcsets = explode(',', $srcset);
515
+                        foreach ($srcsets as $indiv_srcset) {
516
+                            $indiv_srcset_parts = explode(' ', trim($indiv_srcset));
517
+                            if (isset($indiv_srcset_parts[1]) && rtrim($indiv_srcset_parts[1], 'w') !== $indiv_srcset_parts[1]) {
518
+                                $imgopt_w = rtrim($indiv_srcset_parts[1], 'w');
519 519
                             }
520
-                            if ( $this->can_optimize_image( $indiv_srcset_parts[0] ) ) {
521
-                                $imgopt_url = $this->build_imgopt_url( $indiv_srcset_parts[0], $imgopt_w, '' );
522
-                                $tag        = str_replace( $indiv_srcset_parts[0], $imgopt_url, $tag );
520
+                            if ($this->can_optimize_image($indiv_srcset_parts[0])) {
521
+                                $imgopt_url = $this->build_imgopt_url($indiv_srcset_parts[0], $imgopt_w, '');
522
+                                $tag        = str_replace($indiv_srcset_parts[0], $imgopt_url, $tag);
523 523
                             }
524 524
                         }
525 525
                     }
@@ -527,122 +527,122 @@  discard block
 block discarded – undo
527 527
 
528 528
                 // proceed with img src.
529 529
                 // get width and height and add to $imgopt_size.
530
-                $_get_size = $this->get_size_from_tag( $tag );
530
+                $_get_size = $this->get_size_from_tag($tag);
531 531
                 $imgopt_w  = $_get_size['width'];
532 532
                 $imgopt_h  = $_get_size['height'];
533 533
 
534 534
                 // then start replacing images src.
535
-                if ( preg_match_all( '#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER ) ) {
536
-                    foreach ( $urls as $url ) {
535
+                if (preg_match_all('#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER)) {
536
+                    foreach ($urls as $url) {
537 537
                         $full_src_orig = $url[0];
538 538
                         $url           = $url[1];
539
-                        if ( $this->can_optimize_image( $url ) ) {
540
-                            $imgopt_url      = $this->build_imgopt_url( $url, $imgopt_w, $imgopt_h );
541
-                            $full_imgopt_src = str_replace( $url, $imgopt_url, $full_src_orig );
542
-                            $tag             = str_replace( $full_src_orig, $full_imgopt_src, $tag );
539
+                        if ($this->can_optimize_image($url)) {
540
+                            $imgopt_url      = $this->build_imgopt_url($url, $imgopt_w, $imgopt_h);
541
+                            $full_imgopt_src = str_replace($url, $imgopt_url, $full_src_orig);
542
+                            $tag             = str_replace($full_src_orig, $full_imgopt_src, $tag);
543 543
                         }
544 544
                     }
545 545
                 }
546 546
 
547 547
                 // do lazyload stuff.
548
-                if ( $this->should_lazyload( $in ) ) {
548
+                if ($this->should_lazyload($in)) {
549 549
                     // first do lpiq placeholder logic.
550
-                    if ( strpos( $url, $this->get_imgopt_host() ) === 0 ) {
550
+                    if (strpos($url, $this->get_imgopt_host()) === 0) {
551 551
                         // if all img src have been replaced during srcset, we have to extract the
552 552
                         // origin url from the imgopt one to be able to set a lqip placeholder.
553
-                        $_url = substr( $url, strpos( $url, '/http' ) + 1 );
553
+                        $_url = substr($url, strpos($url, '/http') + 1);
554 554
                     } else {
555 555
                         $_url = $url;
556 556
                     }
557 557
 
558 558
                     $placeholder = '';
559
-                    if ( $this->can_optimize_image( $_url ) && apply_filters( 'autoptimize_filter_imgopt_lazyload_dolqip', true ) ) {
559
+                    if ($this->can_optimize_image($_url) && apply_filters('autoptimize_filter_imgopt_lazyload_dolqip', true)) {
560 560
                         $lqip_w = '';
561 561
                         $lqip_h = '';
562
-                        if ( isset( $imgopt_w ) && ! empty( $imgopt_w ) ) {
563
-                            $lqip_w = ',w_' . $imgopt_w;
562
+                        if (isset($imgopt_w) && !empty($imgopt_w)) {
563
+                            $lqip_w = ',w_'.$imgopt_w;
564 564
                         }
565
-                        if ( isset( $imgopt_h ) && ! empty( $imgopt_h ) ) {
566
-                            $lqip_h = ',h_' . $imgopt_h;
565
+                        if (isset($imgopt_h) && !empty($imgopt_h)) {
566
+                            $lqip_h = ',h_'.$imgopt_h;
567 567
                         }
568
-                        $placeholder = $this->get_imgopt_host() . 'client/q_lqip,ret_wait' . $lqip_w . $lqip_h . '/' . $_url;
568
+                        $placeholder = $this->get_imgopt_host().'client/q_lqip,ret_wait'.$lqip_w.$lqip_h.'/'.$_url;
569 569
                     }
570 570
                     // then call add_lazyload-function with lpiq placeholder if set.
571
-                    $tag = $this->add_lazyload( $tag, $placeholder );
571
+                    $tag = $this->add_lazyload($tag, $placeholder);
572 572
                 }
573 573
 
574 574
                 // and add tag to array for later replacement.
575
-                if ( $tag !== $orig_tag ) {
576
-                    $to_replace[ $orig_tag ] = $tag;
575
+                if ($tag !== $orig_tag) {
576
+                    $to_replace[$orig_tag] = $tag;
577 577
                 }
578 578
             }
579 579
         }
580 580
 
581 581
         // and replace all.
582
-        $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $in );
582
+        $out = str_replace(array_keys($to_replace), array_values($to_replace), $in);
583 583
 
584 584
         // img thumbnails in e.g. woocommerce.
585
-        if ( strpos( $out, 'data-thumb' ) !== false && apply_filters( 'autoptimize_filter_imgopt_datathumbs', true ) ) {
585
+        if (strpos($out, 'data-thumb') !== false && apply_filters('autoptimize_filter_imgopt_datathumbs', true)) {
586 586
             $out = preg_replace_callback(
587 587
                 '/\<div(?:[^>]?)\sdata-thumb\=(?:\"|\')(.+?)(?:\"|\')(?:[^>]*)?\>/s',
588
-                array( $this, 'replace_data_thumbs' ),
588
+                array($this, 'replace_data_thumbs'),
589 589
                 $out
590 590
             );
591 591
         }
592 592
 
593 593
         // background-image in inline style.
594
-        if ( strpos( $out, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) {
594
+        if (strpos($out, 'background-image:') !== false && apply_filters('autoptimize_filter_imgopt_backgroundimages', true)) {
595 595
             $out = preg_replace_callback(
596 596
                 '/style=(?:"|\').*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/',
597
-                array( $this, 'replace_img_callback' ),
597
+                array($this, 'replace_img_callback'),
598 598
                 $out
599 599
             );
600 600
         }
601 601
 
602 602
         // lazyload: restore noscript tags + lazyload picture source tags and bgimage.
603
-        if ( $this->should_lazyload() ) {
603
+        if ($this->should_lazyload()) {
604 604
             $out = autoptimizeBase::restore_marked_content(
605 605
                 'SCRIPT',
606 606
                 $out
607 607
             );
608 608
 
609
-            $out = $this->process_picture_tag( $out, true, true );
610
-            $out = $this->process_bgimage( $out );
609
+            $out = $this->process_picture_tag($out, true, true);
610
+            $out = $this->process_bgimage($out);
611 611
         } else {
612
-            $out = $this->process_picture_tag( $out, true, false );
612
+            $out = $this->process_picture_tag($out, true, false);
613 613
         }
614 614
 
615 615
         return $out;
616 616
     }
617 617
 
618
-    public function get_size_from_tag( $tag ) {
618
+    public function get_size_from_tag($tag) {
619 619
         // reusable function to extract widht and height from an image tag
620 620
         // enforcing a filterable maximum width and height (default 4999X4999).
621 621
         $width  = '';
622 622
         $height = '';
623 623
 
624
-        if ( preg_match( '#width=("|\')(.*)("|\')#Usmi', $tag, $_width ) ) {
625
-            if ( strpos( $_width[2], '%' ) === false ) {
624
+        if (preg_match('#width=("|\')(.*)("|\')#Usmi', $tag, $_width)) {
625
+            if (strpos($_width[2], '%') === false) {
626 626
                 $width = (int) $_width[2];
627 627
             }
628 628
         }
629
-        if ( preg_match( '#height=("|\')(.*)("|\')#Usmi', $tag, $_height ) ) {
630
-            if ( strpos( $_height[2], '%' ) === false ) {
629
+        if (preg_match('#height=("|\')(.*)("|\')#Usmi', $tag, $_height)) {
630
+            if (strpos($_height[2], '%') === false) {
631 631
                 $height = (int) $_height[2];
632 632
             }
633 633
         }
634 634
 
635 635
         // check for and enforce (filterable) max sizes.
636
-        $_max_width = apply_filters( 'autoptimize_filter_imgopt_max_width', 4999 );
637
-        if ( $width > $_max_width ) {
636
+        $_max_width = apply_filters('autoptimize_filter_imgopt_max_width', 4999);
637
+        if ($width > $_max_width) {
638 638
             $_width = $_max_width;
639
-            $height = $_width / $width * $height;
639
+            $height = $_width/$width*$height;
640 640
             $width  = $_width;
641 641
         }
642
-        $_max_height = apply_filters( 'autoptimize_filter_imgopt_max_height', 4999 );
643
-        if ( $height > $_max_height ) {
642
+        $_max_height = apply_filters('autoptimize_filter_imgopt_max_height', 4999);
643
+        if ($height > $_max_height) {
644 644
             $_height = $_max_height;
645
-            $width   = $_height / $height * $width;
645
+            $width   = $_height/$height*$width;
646 646
             $height  = $_height;
647 647
         }
648 648
 
@@ -661,26 +661,26 @@  discard block
 block discarded – undo
661 661
         return $self->should_lazyload();
662 662
     }
663 663
 
664
-    public function should_lazyload( $context = '' ) {
665
-        if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_3'] ) && false === $this->check_nolazy() ) {
664
+    public function should_lazyload($context = '') {
665
+        if (!empty($this->options['autoptimize_imgopt_checkbox_field_3']) && false === $this->check_nolazy()) {
666 666
             $lazyload_return = true;
667 667
         } else {
668 668
             $lazyload_return = false;
669 669
         }
670
-        $lazyload_return = apply_filters( 'autoptimize_filter_imgopt_should_lazyload', $lazyload_return, $context );
670
+        $lazyload_return = apply_filters('autoptimize_filter_imgopt_should_lazyload', $lazyload_return, $context);
671 671
 
672 672
         return $lazyload_return;
673 673
     }
674 674
 
675 675
     public function check_nolazy() {
676
-        if ( array_key_exists( 'ao_nolazy', $_GET ) && '1' === $_GET['ao_nolazy'] ) {
676
+        if (array_key_exists('ao_nolazy', $_GET) && '1' === $_GET['ao_nolazy']) {
677 677
             return true;
678 678
         } else {
679 679
             return false;
680 680
         }
681 681
     }
682 682
 
683
-    public function filter_lazyload_images( $in )
683
+    public function filter_lazyload_images($in)
684 684
     {
685 685
         // only used is image optimization is NOT active but lazyload is.
686 686
         $to_replace = array();
@@ -694,20 +694,20 @@  discard block
 block discarded – undo
694 694
         );
695 695
 
696 696
         // extract img tags and add lazyload attribs.
697
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $out, $matches ) ) {
698
-            foreach ( $matches[0] as $tag ) {
699
-                if ( $this->should_lazyload( $out ) ) {
700
-                    $to_replace[ $tag ] = $this->add_lazyload( $tag );
697
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $out, $matches)) {
698
+            foreach ($matches[0] as $tag) {
699
+                if ($this->should_lazyload($out)) {
700
+                    $to_replace[$tag] = $this->add_lazyload($tag);
701 701
                 }
702 702
             }
703
-            $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $out );
703
+            $out = str_replace(array_keys($to_replace), array_values($to_replace), $out);
704 704
         }
705 705
 
706 706
         // and also lazyload picture tag.
707
-        $out = $this->process_picture_tag( $out, false, true );
707
+        $out = $this->process_picture_tag($out, false, true);
708 708
 
709 709
         // and inline style blocks with background-image.
710
-        $out = $this->process_bgimage( $out );
710
+        $out = $this->process_bgimage($out);
711 711
 
712 712
         // restore noscript tags.
713 713
         $out = autoptimizeBase::restore_marked_content(
@@ -718,79 +718,79 @@  discard block
 block discarded – undo
718 718
         return $out;
719 719
     }
720 720
 
721
-    public function add_lazyload( $tag, $placeholder = '' ) {
721
+    public function add_lazyload($tag, $placeholder = '') {
722 722
         // adds actual lazyload-attributes to an image node.
723
-        if ( str_ireplace( $this->get_lazyload_exclusions(), '', $tag ) === $tag ) {
724
-            $tag = $this->maybe_fix_missing_quotes( $tag );
723
+        if (str_ireplace($this->get_lazyload_exclusions(), '', $tag) === $tag) {
724
+            $tag = $this->maybe_fix_missing_quotes($tag);
725 725
 
726 726
             // store original tag for use in noscript version.
727
-            $noscript_tag = '<noscript>' . autoptimizeUtils::remove_id_from_node( $tag ) . '</noscript>';
727
+            $noscript_tag = '<noscript>'.autoptimizeUtils::remove_id_from_node($tag).'</noscript>';
728 728
 
729
-            $lazyload_class = apply_filters( 'autoptimize_filter_imgopt_lazyload_class', 'lazyload' );
729
+            $lazyload_class = apply_filters('autoptimize_filter_imgopt_lazyload_class', 'lazyload');
730 730
 
731 731
             // insert lazyload class.
732
-            $tag = $this->inject_classes_in_tag( $tag, "$lazyload_class " );
732
+            $tag = $this->inject_classes_in_tag($tag, "$lazyload_class ");
733 733
 
734
-            if ( ! $placeholder || empty( $placeholder ) ) {
734
+            if (!$placeholder || empty($placeholder)) {
735 735
                 // get image width & heigth for placeholder fun (and to prevent content reflow).
736
-                $_get_size = $this->get_size_from_tag( $tag );
736
+                $_get_size = $this->get_size_from_tag($tag);
737 737
                 $width     = $_get_size['width'];
738 738
                 $height    = $_get_size['height'];
739
-                if ( false === $width ) {
739
+                if (false === $width) {
740 740
                     $widht = 210; // default width for SVG placeholder.
741 741
                 }
742
-                if ( false === $height ) {
743
-                    $heigth = $width / 3 * 2; // if no height, base it on width using the 3/2 aspect ratio.
742
+                if (false === $height) {
743
+                    $heigth = $width/3*2; // if no height, base it on width using the 3/2 aspect ratio.
744 744
                 }
745 745
 
746 746
                 // insert the actual lazyload stuff.
747 747
                 // see https://css-tricks.com/preventing-content-reflow-from-lazy-loaded-images/ for great read on why we're using empty svg's.
748
-                $placeholder = apply_filters( 'autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder( $width, $height ) );
748
+                $placeholder = apply_filters('autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder($width, $height));
749 749
             }
750 750
 
751
-            $tag = preg_replace( '/(\s)src=/', ' src=\'' . $placeholder . '\' data-src=', $tag );
752
-            $tag = preg_replace( '/(\s)srcset=/', ' data-srcset=', $tag );
751
+            $tag = preg_replace('/(\s)src=/', ' src=\''.$placeholder.'\' data-src=', $tag);
752
+            $tag = preg_replace('/(\s)srcset=/', ' data-srcset=', $tag);
753 753
 
754 754
             // move sizes to data-sizes unless filter says no.
755
-            if ( apply_filters( 'autoptimize_filter_imgopt_lazyload_move_sizes', true ) ) {
756
-                $tag = str_replace( ' sizes=', ' data-sizes=', $tag );
755
+            if (apply_filters('autoptimize_filter_imgopt_lazyload_move_sizes', true)) {
756
+                $tag = str_replace(' sizes=', ' data-sizes=', $tag);
757 757
             }
758 758
 
759 759
             // add the noscript-tag from earlier.
760
-            $tag = $noscript_tag . $tag;
761
-            $tag = apply_filters( 'autoptimize_filter_imgopt_lazyloaded_img', $tag );
760
+            $tag = $noscript_tag.$tag;
761
+            $tag = apply_filters('autoptimize_filter_imgopt_lazyloaded_img', $tag);
762 762
         }
763 763
 
764 764
         return $tag;
765 765
     }
766 766
 
767 767
     public function add_lazyload_js_footer() {
768
-        if ( false === autoptimizeMain::should_buffer() ) {
768
+        if (false === autoptimizeMain::should_buffer()) {
769 769
             return;
770 770
         }
771 771
 
772 772
         // The JS will by default be excluded form autoptimization but this can be changed with a filter.
773 773
         $noptimize_flag = '';
774
-        if ( apply_filters( 'autoptimize_filter_imgopt_lazyload_js_noptimize', true ) ) {
774
+        if (apply_filters('autoptimize_filter_imgopt_lazyload_js_noptimize', true)) {
775 775
             $noptimize_flag = ' data-noptimize="1"';
776 776
         }
777 777
 
778
-        $lazysizes_js = plugins_url( 'external/js/lazysizes.min.js', __FILE__ );
778
+        $lazysizes_js = plugins_url('external/js/lazysizes.min.js', __FILE__);
779 779
         $cdn_url      = $this->get_cdn_url();
780
-        if ( ! empty( $cdn_url ) ) {
781
-            $lazysizes_js = str_replace( AUTOPTIMIZE_WP_SITE_URL, $cdn_url, $lazysizes_js );
780
+        if (!empty($cdn_url)) {
781
+            $lazysizes_js = str_replace(AUTOPTIMIZE_WP_SITE_URL, $cdn_url, $lazysizes_js);
782 782
         }
783 783
 
784 784
         // Adds lazyload CSS & JS to footer, using echo because wp_enqueue_script seems not to support pushing attributes (async).
785
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_cssoutput', '<style>.lazyload,.lazyloading{opacity:0;}.lazyloaded{opacity:1;transition:opacity 300ms;}</style><noscript><style>.lazyload{display:none;}</style></noscript>' );
786
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_jsconfig', '<script' . $noptimize_flag . '>window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script>' );
787
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_js', '<script async' . $noptimize_flag . ' src=\'' . $lazysizes_js . '\'></script>' );
785
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_cssoutput', '<style>.lazyload,.lazyloading{opacity:0;}.lazyloaded{opacity:1;transition:opacity 300ms;}</style><noscript><style>.lazyload{display:none;}</style></noscript>');
786
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_jsconfig', '<script'.$noptimize_flag.'>window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script>');
787
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_js', '<script async'.$noptimize_flag.' src=\''.$lazysizes_js.'\'></script>');
788 788
 
789 789
         // And add webp detection and loading JS.
790
-        if ( $this->should_webp() ) {
790
+        if ($this->should_webp()) {
791 791
             $_webp_detect = "function c_webp(A){var n=new Image;n.onload=function(){var e=0<n.width&&0<n.height;A(e)},n.onerror=function(){A(!1)},n.src='data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA=='}function s_webp(e){window.supportsWebP=e}c_webp(s_webp);";
792 792
             $_webp_load   = "document.addEventListener('lazybeforeunveil',function({target:c}){supportsWebP&&['data-src','data-srcset'].forEach(function(a){attr=c.getAttribute(a),null!==attr&&c.setAttribute(a,attr.replace(/\/client\//,'/client/to_webp,'))})});";
793
-            echo apply_filters( 'autoptimize_filter_imgopt_webp_js', '<script' . $noptimize_flag . '>' . $_webp_detect . $_webp_load . '</script>' );
793
+            echo apply_filters('autoptimize_filter_imgopt_webp_js', '<script'.$noptimize_flag.'>'.$_webp_detect.$_webp_load.'</script>');
794 794
         }
795 795
     }
796 796
 
@@ -798,10 +798,10 @@  discard block
 block discarded – undo
798 798
         // getting CDN url here to avoid having to make bigger changes to autoptimizeBase.
799 799
         static $cdn_url = null;
800 800
 
801
-        if ( null === $cdn_url ) {
802
-            $cdn_url = autoptimizeOptionWrapper::get_option( 'autoptimize_cdn_url', '' );
803
-            $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed( $cdn_url );
804
-            $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', $cdn_url );
801
+        if (null === $cdn_url) {
802
+            $cdn_url = autoptimizeOptionWrapper::get_option('autoptimize_cdn_url', '');
803
+            $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed($cdn_url);
804
+            $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', $cdn_url);
805 805
         }
806 806
 
807 807
         return $cdn_url;
@@ -811,47 +811,47 @@  discard block
 block discarded – undo
811 811
         // returns array of strings that if found in an <img tag will stop the img from being lazy-loaded.
812 812
         static $exclude_lazyload_array = null;
813 813
 
814
-        if ( null === $exclude_lazyload_array ) {
814
+        if (null === $exclude_lazyload_array) {
815 815
             $options = $this->options;
816 816
 
817 817
             // set default exclusions.
818
-            $exclude_lazyload_array = array( 'skip-lazy', 'data-no-lazy', 'notlazy', 'data-src', 'data-srcset', 'data:image/', 'data-lazyload', 'rev-slidebg' );
818
+            $exclude_lazyload_array = array('skip-lazy', 'data-no-lazy', 'notlazy', 'data-src', 'data-srcset', 'data:image/', 'data-lazyload', 'rev-slidebg');
819 819
 
820 820
             // add from setting.
821
-            if ( array_key_exists( 'autoptimize_imgopt_text_field_5', $options ) ) {
821
+            if (array_key_exists('autoptimize_imgopt_text_field_5', $options)) {
822 822
                 $exclude_lazyload_option = $options['autoptimize_imgopt_text_field_5'];
823
-                if ( ! empty( $exclude_lazyload_option ) ) {
824
-                    $exclude_lazyload_array = array_merge( $exclude_lazyload_array, array_filter( array_map( 'trim', explode( ',', $options['autoptimize_imgopt_text_field_5'] ) ) ) );
823
+                if (!empty($exclude_lazyload_option)) {
824
+                    $exclude_lazyload_array = array_merge($exclude_lazyload_array, array_filter(array_map('trim', explode(',', $options['autoptimize_imgopt_text_field_5']))));
825 825
                 }
826 826
             }
827 827
 
828 828
             // and filter for developer-initiated changes.
829
-            $exclude_lazyload_array = apply_filters( 'autoptimize_filter_imgopt_lazyload_exclude_array', $exclude_lazyload_array );
829
+            $exclude_lazyload_array = apply_filters('autoptimize_filter_imgopt_lazyload_exclude_array', $exclude_lazyload_array);
830 830
         }
831 831
 
832 832
         return $exclude_lazyload_array;
833 833
     }
834 834
 
835
-    public function inject_classes_in_tag( $tag, $target_class ) {
836
-        if ( strpos( $tag, 'class=' ) !== false ) {
837
-            $tag = preg_replace( '/(\sclass\s?=\s?("|\'))/', '$1' . $target_class, $tag );
835
+    public function inject_classes_in_tag($tag, $target_class) {
836
+        if (strpos($tag, 'class=') !== false) {
837
+            $tag = preg_replace('/(\sclass\s?=\s?("|\'))/', '$1'.$target_class, $tag);
838 838
         } else {
839
-            $tag = preg_replace( '/(<img)\s/', '$1 class="' . trim( $target_class ) . '" ', $tag );
839
+            $tag = preg_replace('/(<img)\s/', '$1 class="'.trim($target_class).'" ', $tag);
840 840
         }
841 841
 
842 842
         return $tag;
843 843
     }
844 844
 
845
-    public function get_default_lazyload_placeholder( $imgopt_w, $imgopt_h ) {
846
-        return 'data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20' . $imgopt_w . '%20' . $imgopt_h . '%22%3E%3C/svg%3E';
845
+    public function get_default_lazyload_placeholder($imgopt_w, $imgopt_h) {
846
+        return 'data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20'.$imgopt_w.'%20'.$imgopt_h.'%22%3E%3C/svg%3E';
847 847
     }
848 848
 
849 849
     public function should_webp() {
850 850
         static $webp_return = null;
851 851
 
852
-        if ( is_null( $webp_return ) ) {
852
+        if (is_null($webp_return)) {
853 853
             // webp only works if imgopt and lazyload are also active.
854
-            if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_4'] ) && ! empty( $this->options['autoptimize_imgopt_checkbox_field_3'] ) && $this->imgopt_active() ) {
854
+            if (!empty($this->options['autoptimize_imgopt_checkbox_field_4']) && !empty($this->options['autoptimize_imgopt_checkbox_field_3']) && $this->imgopt_active()) {
855 855
                 $webp_return = true;
856 856
             } else {
857 857
                 $webp_return = false;
@@ -861,9 +861,9 @@  discard block
 block discarded – undo
861 861
         return $webp_return;
862 862
     }
863 863
 
864
-    public function process_picture_tag( $in, $imgopt = false, $lazy = false ) {
864
+    public function process_picture_tag($in, $imgopt = false, $lazy = false) {
865 865
         // check if "<picture" is present and if filter allows us to process <picture>.
866
-        if ( strpos( $in, '<picture' ) === false || apply_filters( 'autoptimize_filter_imgopt_dopicture', true ) === false ) {
866
+        if (strpos($in, '<picture') === false || apply_filters('autoptimize_filter_imgopt_dopicture', true) === false) {
867 867
             return $in;
868 868
         }
869 869
 
@@ -871,37 +871,37 @@  discard block
 block discarded – undo
871 871
         $to_replace_pict = array();
872 872
 
873 873
         // extract and process each picture-node.
874
-        preg_match_all( '#<picture.*</picture>#Usmi', $in, $_pictures, PREG_SET_ORDER );
875
-        foreach ( $_pictures as $_picture ) {
876
-            $_picture = $this->maybe_fix_missing_quotes( $_picture );
877
-            if ( strpos( $_picture[0], '<source ' ) !== false && preg_match_all( '#<source .*srcset=(?:"|\')(?!data)(.*)(?:"|\').*>#Usmi', $_picture[0], $_sources, PREG_SET_ORDER ) !== false ) {
878
-                foreach ( $_sources as $_source ) {
874
+        preg_match_all('#<picture.*</picture>#Usmi', $in, $_pictures, PREG_SET_ORDER);
875
+        foreach ($_pictures as $_picture) {
876
+            $_picture = $this->maybe_fix_missing_quotes($_picture);
877
+            if (strpos($_picture[0], '<source ') !== false && preg_match_all('#<source .*srcset=(?:"|\')(?!data)(.*)(?:"|\').*>#Usmi', $_picture[0], $_sources, PREG_SET_ORDER) !== false) {
878
+                foreach ($_sources as $_source) {
879 879
                     $_picture_replacement = $_source[0];
880 880
 
881 881
                     // should we optimize the image?
882
-                    if ( $imgopt && $this->can_optimize_image( $_source[1] ) ) {
883
-                        $_picture_replacement = str_replace( $_source[1], $this->build_imgopt_url( $_source[1] ), $_picture_replacement );
882
+                    if ($imgopt && $this->can_optimize_image($_source[1])) {
883
+                        $_picture_replacement = str_replace($_source[1], $this->build_imgopt_url($_source[1]), $_picture_replacement);
884 884
                     }
885 885
                     // should we lazy-load?
886
-                    if ( $lazy && $this->should_lazyload() && str_ireplace( $_exclusions, '', $_picture_replacement ) === $_picture_replacement ) {
887
-                        $_picture_replacement = str_replace( ' srcset=', ' data-srcset=', $_picture_replacement );
886
+                    if ($lazy && $this->should_lazyload() && str_ireplace($_exclusions, '', $_picture_replacement) === $_picture_replacement) {
887
+                        $_picture_replacement = str_replace(' srcset=', ' data-srcset=', $_picture_replacement);
888 888
                     }
889
-                    $to_replace_pict[ $_source[0] ] = $_picture_replacement;
889
+                    $to_replace_pict[$_source[0]] = $_picture_replacement;
890 890
                 }
891 891
             }
892 892
         }
893 893
 
894 894
         // and return the fully procesed $in.
895
-        $out = str_replace( array_keys( $to_replace_pict ), array_values( $to_replace_pict ), $in );
895
+        $out = str_replace(array_keys($to_replace_pict), array_values($to_replace_pict), $in);
896 896
 
897 897
         return $out;
898 898
     }
899 899
 
900
-    public function process_bgimage( $in ) {
901
-        if ( strpos( $in, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_lazyload_backgroundimages', true ) ) {
900
+    public function process_bgimage($in) {
901
+        if (strpos($in, 'background-image:') !== false && apply_filters('autoptimize_filter_imgopt_lazyload_backgroundimages', true)) {
902 902
             $out = preg_replace_callback(
903 903
                 '/(<(?:article|aside|body|div|footer|header|p|section|table)[^>]*)\sstyle=(?:"|\').*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)[^>]*/',
904
-                array( $this, 'lazyload_bgimg_callback' ),
904
+                array($this, 'lazyload_bgimg_callback'),
905 905
                 $in
906 906
             );
907 907
             return $out;
@@ -909,26 +909,26 @@  discard block
 block discarded – undo
909 909
         return $in;
910 910
     }
911 911
 
912
-    public function lazyload_bgimg_callback( $matches ) {
913
-        if ( str_ireplace( $this->get_lazyload_exclusions(), '', $matches[0] ) === $matches[0] ) {
912
+    public function lazyload_bgimg_callback($matches) {
913
+        if (str_ireplace($this->get_lazyload_exclusions(), '', $matches[0]) === $matches[0]) {
914 914
             // get placeholder & lazyload class strings.
915
-            $placeholder    = apply_filters( 'autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder( 500, 300 ) );
916
-            $lazyload_class = apply_filters( 'autoptimize_filter_imgopt_lazyload_class', 'lazyload' );
915
+            $placeholder    = apply_filters('autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder(500, 300));
916
+            $lazyload_class = apply_filters('autoptimize_filter_imgopt_lazyload_class', 'lazyload');
917 917
             // replace background-image URL with SVG placeholder.
918
-            $out = str_replace( $matches[2], $placeholder, $matches[0] );
918
+            $out = str_replace($matches[2], $placeholder, $matches[0]);
919 919
             // add data-bg attribute with real background-image URL for lazyload to pick up.
920
-            $out = str_replace( $matches[1], $matches[1] . ' data-bg="' . $matches[2] . '"', $out );
920
+            $out = str_replace($matches[1], $matches[1].' data-bg="'.$matches[2].'"', $out);
921 921
             // add lazyload class to tag.
922
-            $out = $this->inject_classes_in_tag( $out, "$lazyload_class " );
922
+            $out = $this->inject_classes_in_tag($out, "$lazyload_class ");
923 923
             return $out;
924 924
         }
925 925
         return $matches[0];
926 926
     }
927 927
 
928
-    public function maybe_fix_missing_quotes( $tag_in ) {
928
+    public function maybe_fix_missing_quotes($tag_in) {
929 929
         // W3TC's Minify_HTML class removes quotes around attribute value, this re-adds them for the class attribute only so we can safely add the lazyload class.
930
-        if ( file_exists( WP_PLUGIN_DIR . '/w3-total-cache/w3-total-cache.php' ) && class_exists( 'Minify_HTML' ) && apply_filters( 'autoptimize_filter_imgopt_fixquotes', true ) ) {
931
-            return preg_replace( '/class\s?=([^("|\')]*)(\s|>)/U', 'class=\'$1\'$2', $tag_in );
930
+        if (file_exists(WP_PLUGIN_DIR.'/w3-total-cache/w3-total-cache.php') && class_exists('Minify_HTML') && apply_filters('autoptimize_filter_imgopt_fixquotes', true)) {
931
+            return preg_replace('/class\s?=([^("|\')]*)(\s|>)/U', 'class=\'$1\'$2', $tag_in);
932 932
         } else {
933 933
             return $tag_in;
934 934
         }
@@ -940,23 +940,23 @@  discard block
 block discarded – undo
940 940
     public function imgopt_admin_menu()
941 941
     {
942 942
         // no acces if multisite and not network admin and no site config allowed.
943
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
943
+        if (autoptimizeConfig::should_show_menu_tabs()) {
944 944
             add_submenu_page(
945 945
                 null,
946 946
                 'autoptimize_imgopt',
947 947
                 'autoptimize_imgopt',
948 948
                 'manage_options',
949 949
                 'autoptimize_imgopt',
950
-                array( $this, 'imgopt_options_page' )
950
+                array($this, 'imgopt_options_page')
951 951
             );
952
-            register_setting( 'autoptimize_imgopt_settings', 'autoptimize_imgopt_settings' );
952
+            register_setting('autoptimize_imgopt_settings', 'autoptimize_imgopt_settings');
953 953
         }
954 954
     }
955 955
 
956
-    public function add_imgopt_tab( $in )
956
+    public function add_imgopt_tab($in)
957 957
     {
958
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
959
-            $in = array_merge( $in, array( 'autoptimize_imgopt' => __( 'Images', 'autoptimize' ) ) );
958
+        if (autoptimizeConfig::should_show_menu_tabs()) {
959
+            $in = array_merge($in, array('autoptimize_imgopt' => __('Images', 'autoptimize')));
960 960
         }
961 961
 
962 962
         return $in;
@@ -965,7 +965,7 @@  discard block
 block discarded – undo
965 965
     public function imgopt_options_page()
966 966
     {
967 967
         // Check querystring for "refreshCacheChecker" and call cachechecker if so.
968
-        if ( array_key_exists( 'refreshImgProvStats', $_GET ) && 1 == $_GET['refreshImgProvStats'] ) {
968
+        if (array_key_exists('refreshImgProvStats', $_GET) && 1 == $_GET['refreshImgProvStats']) {
969 969
             $this->query_img_provider_stats();
970 970
         }
971 971
 
@@ -977,47 +977,47 @@  discard block
 block discarded – undo
977 977
         #ao_settings_form .form-table th {font-weight: normal;}
978 978
         #autoptimize_imgopt_descr{font-size: 120%;}
979 979
     </style>
980
-    <script>document.title = "Autoptimize: <?php _e( 'Images', 'autoptimize' ); ?> " + document.title;</script>
980
+    <script>document.title = "Autoptimize: <?php _e('Images', 'autoptimize'); ?> " + document.title;</script>
981 981
     <div class="wrap">
982
-    <h1><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?></h1>
982
+    <h1><?php _e('Autoptimize Settings', 'autoptimize'); ?></h1>
983 983
         <?php echo autoptimizeConfig::ao_admin_tabs(); ?>
984
-        <?php if ( 'down' === $options['availabilities']['extra_imgopt']['status'] ) { ?>
984
+        <?php if ('down' === $options['availabilities']['extra_imgopt']['status']) { ?>
985 985
             <div class="notice-warning notice"><p>
986 986
             <?php
987 987
             // translators: "Autoptimize support forum" will appear in a "a href".
988
-            echo sprintf( __( 'The image optimization service is currently down, image optimization will be skipped until further notice. Check the %1$sAutoptimize support forum%2$s for more info.', 'autoptimize' ), '<a href="https://wordpress.org/support/plugin/autoptimize/" target="_blank">', '</a>' );
988
+            echo sprintf(__('The image optimization service is currently down, image optimization will be skipped until further notice. Check the %1$sAutoptimize support forum%2$s for more info.', 'autoptimize'), '<a href="https://wordpress.org/support/plugin/autoptimize/" target="_blank">', '</a>');
989 989
             ?>
990 990
             </p></div>
991 991
         <?php } ?>
992 992
 
993
-        <?php if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] && ! autoptimizeImages::instance()->launch_ok() ) { ?>
993
+        <?php if ('launch' === $options['availabilities']['extra_imgopt']['status'] && !autoptimizeImages::instance()->launch_ok()) { ?>
994 994
             <div class="notice-warning notice"><p>
995
-            <?php _e( 'The image optimization service is launching, but not yet available for this domain, it should become available in the next couple of days.', 'autoptimize' ); ?>
995
+            <?php _e('The image optimization service is launching, but not yet available for this domain, it should become available in the next couple of days.', 'autoptimize'); ?>
996 996
             </p></div>
997 997
         <?php } ?>
998 998
 
999
-        <?php if ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'get_active_modules' ) && in_array( 'photon', Jetpack::get_active_modules() ) ) { ?>
999
+        <?php if (class_exists('Jetpack') && method_exists('Jetpack', 'get_active_modules') && in_array('photon', Jetpack::get_active_modules())) { ?>
1000 1000
             <div class="notice-warning notice"><p>
1001 1001
             <?php
1002 1002
             // translators: "disable  Jetpack's site accelerator for images" will appear in a "a href" linking to the jetpack settings page.
1003
-            echo sprintf( __( 'Please %1$sdisable Jetpack\'s site accelerator for images%2$s to be able to use Autoptomize\'s advanced image optimization features below.', 'autoptimize' ), '<a href="admin.php?page=jetpack#/settings">', '</a>' );
1003
+            echo sprintf(__('Please %1$sdisable Jetpack\'s site accelerator for images%2$s to be able to use Autoptomize\'s advanced image optimization features below.', 'autoptimize'), '<a href="admin.php?page=jetpack#/settings">', '</a>');
1004 1004
             ?>
1005 1005
             </p></div>
1006 1006
         <?php } ?>
1007
-    <form id='ao_settings_form' action='<?php echo admin_url( 'options.php' ); ?>' method='post'>
1008
-        <?php settings_fields( 'autoptimize_imgopt_settings' ); ?>
1009
-        <h2><?php _e( 'Image optimization', 'autoptimize' ); ?></h2>
1010
-        <span id='autoptimize_imgopt_descr'><?php _e( 'Make your site significantly faster by just ticking a couple of checkboxes to optimize and lazy load your images, WebP support included!', 'autoptimize' ); ?></span>
1007
+    <form id='ao_settings_form' action='<?php echo admin_url('options.php'); ?>' method='post'>
1008
+        <?php settings_fields('autoptimize_imgopt_settings'); ?>
1009
+        <h2><?php _e('Image optimization', 'autoptimize'); ?></h2>
1010
+        <span id='autoptimize_imgopt_descr'><?php _e('Make your site significantly faster by just ticking a couple of checkboxes to optimize and lazy load your images, WebP support included!', 'autoptimize'); ?></span>
1011 1011
         <table class="form-table">
1012 1012
             <tr>
1013
-                <th scope="row"><?php _e( 'Optimize Images', 'autoptimize' ); ?></th>
1013
+                <th scope="row"><?php _e('Optimize Images', 'autoptimize'); ?></th>
1014 1014
                 <td>
1015
-                    <label><input id='autoptimize_imgopt_checkbox' type='checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_1]' <?php if ( ! empty( $options['autoptimize_imgopt_checkbox_field_1'] ) && '1' === $options['autoptimize_imgopt_checkbox_field_1'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Optimize images on the fly and serve them from Shortpixel\'s global CDN.', 'autoptimize' ); ?></label>
1015
+                    <label><input id='autoptimize_imgopt_checkbox' type='checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_1]' <?php if (!empty($options['autoptimize_imgopt_checkbox_field_1']) && '1' === $options['autoptimize_imgopt_checkbox_field_1']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Optimize images on the fly and serve them from Shortpixel\'s global CDN.', 'autoptimize'); ?></label>
1016 1016
                     <?php
1017 1017
                     // show shortpixel status.
1018 1018
                     $_notice = autoptimizeImages::instance()->get_imgopt_status_notice();
1019
-                    if ( $_notice ) {
1020
-                        switch ( $_notice['status'] ) {
1019
+                    if ($_notice) {
1020
+                        switch ($_notice['status']) {
1021 1021
                             case 2:
1022 1022
                                 $_notice_color = 'green';
1023 1023
                                 break;
@@ -1032,29 +1032,29 @@  discard block
 block discarded – undo
1032 1032
                             default:
1033 1033
                                 $_notice_color = 'green';
1034 1034
                         }
1035
-                        echo apply_filters( 'autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:' . $_notice_color . ';">' . __( 'Shortpixel status: ', 'autoptimize' ) . '</span></strong>' . $_notice['notice'] . '</p>' );
1035
+                        echo apply_filters('autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:'.$_notice_color.';">'.__('Shortpixel status: ', 'autoptimize').'</span></strong>'.$_notice['notice'].'</p>');
1036 1036
                     } else {
1037 1037
                         // translators: link points to shortpixel.
1038
-                        $upsell_msg_1 = '<p>' . sprintf( __( 'Get more Google love and improve your website\'s loading speed by having your publicly available images optimized on the fly (also in the "next-gen" WebP image format) by %1$sShortPixel%2$s and then cached and served fast from Shortpixel\'s global CDN.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>' );
1039
-                        if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] ) {
1040
-                            $upsell_msg_2 = __( 'For a limited time only, this service is offered free for all Autoptimize users, <b>don\'t miss the chance to test it</b> and see how much it could improve your site\'s speed.', 'autoptimize' );
1038
+                        $upsell_msg_1 = '<p>'.sprintf(__('Get more Google love and improve your website\'s loading speed by having your publicly available images optimized on the fly (also in the "next-gen" WebP image format) by %1$sShortPixel%2$s and then cached and served fast from Shortpixel\'s global CDN.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>');
1039
+                        if ('launch' === $options['availabilities']['extra_imgopt']['status']) {
1040
+                            $upsell_msg_2 = __('For a limited time only, this service is offered free for all Autoptimize users, <b>don\'t miss the chance to test it</b> and see how much it could improve your site\'s speed.', 'autoptimize');
1041 1041
                         } else {
1042 1042
                             // translators: link points to shortpixel.
1043
-                            $upsell_msg_2 = sprintf( __( '%1$sSign-up now%2$s to receive a 1 000 bonus + 50&#37; more image optimization credits regardless of the traffic used. More image optimizations can be purchased starting with $4.99.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>' );
1043
+                            $upsell_msg_2 = sprintf(__('%1$sSign-up now%2$s to receive a 1 000 bonus + 50&#37; more image optimization credits regardless of the traffic used. More image optimizations can be purchased starting with $4.99.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>');
1044 1044
                         }
1045
-                        echo apply_filters( 'autoptimize_imgopt_imgopt_settings_copy', $upsell_msg_1 . ' ' . $upsell_msg_2 . '</p>' );
1045
+                        echo apply_filters('autoptimize_imgopt_imgopt_settings_copy', $upsell_msg_1.' '.$upsell_msg_2.'</p>');
1046 1046
                     }
1047 1047
                     // translators: link points to shortpixel FAQ.
1048
-                    $faqcopy = sprintf( __( '<strong>Questions</strong>? Have a look at the %1$sShortPixel FAQ%2$s!', 'autoptimize' ), '<strong><a href="https://shortpixel.helpscoutdocs.com/category/60-shortpixel-ai-cdn" target="_blank">', '</strong></a>' );
1049
-                    $faqcopy = $faqcopy . ' ' . __( 'Only works for sites/ images that are publicly available.', 'autoptimize' );
1048
+                    $faqcopy = sprintf(__('<strong>Questions</strong>? Have a look at the %1$sShortPixel FAQ%2$s!', 'autoptimize'), '<strong><a href="https://shortpixel.helpscoutdocs.com/category/60-shortpixel-ai-cdn" target="_blank">', '</strong></a>');
1049
+                    $faqcopy = $faqcopy.' '.__('Only works for sites/ images that are publicly available.', 'autoptimize');
1050 1050
                     // translators: links points to shortpixel TOS & Privacy Policy.
1051
-                    $toscopy = sprintf( __( 'Usage of this feature is subject to Shortpixel\'s %1$sTerms of Use%2$s and %3$sPrivacy policy%4$s.', 'autoptimize' ), '<a href="https://shortpixel.com/tos' . $sp_url_suffix . '" target="_blank">', '</a>', '<a href="https://shortpixel.com/pp' . $sp_url_suffix . '" target="_blank">', '</a>' );
1052
-                    echo apply_filters( 'autoptimize_imgopt_imgopt_settings_tos', '<p>' . $faqcopy . ' ' . $toscopy . '</p>' );
1051
+                    $toscopy = sprintf(__('Usage of this feature is subject to Shortpixel\'s %1$sTerms of Use%2$s and %3$sPrivacy policy%4$s.', 'autoptimize'), '<a href="https://shortpixel.com/tos'.$sp_url_suffix.'" target="_blank">', '</a>', '<a href="https://shortpixel.com/pp'.$sp_url_suffix.'" target="_blank">', '</a>');
1052
+                    echo apply_filters('autoptimize_imgopt_imgopt_settings_tos', '<p>'.$faqcopy.' '.$toscopy.'</p>');
1053 1053
                     ?>
1054 1054
                 </td>
1055 1055
             </tr>
1056
-            <tr id='autoptimize_imgopt_quality' <?php if ( ! array_key_exists( 'autoptimize_imgopt_checkbox_field_1', $options ) || ( isset( $options['autoptimize_imgopt_checkbox_field_1'] ) && '1' !== $options['autoptimize_imgopt_checkbox_field_1'] ) ) { echo 'class="hidden"'; } ?>>
1057
-                <th scope="row"><?php _e( 'Image Optimization quality', 'autoptimize' ); ?></th>
1056
+            <tr id='autoptimize_imgopt_quality' <?php if (!array_key_exists('autoptimize_imgopt_checkbox_field_1', $options) || (isset($options['autoptimize_imgopt_checkbox_field_1']) && '1' !== $options['autoptimize_imgopt_checkbox_field_1'])) { echo 'class="hidden"'; } ?>>
1057
+                <th scope="row"><?php _e('Image Optimization quality', 'autoptimize'); ?></th>
1058 1058
                 <td>
1059 1059
                     <label>
1060 1060
                     <select name='autoptimize_imgopt_settings[autoptimize_imgopt_select_field_2]'>
@@ -1062,12 +1062,12 @@  discard block
 block discarded – undo
1062 1062
                         $_imgopt_array = autoptimizeImages::instance()->get_img_quality_array();
1063 1063
                         $_imgopt_val   = autoptimizeImages::instance()->get_img_quality_setting();
1064 1064
 
1065
-                        foreach ( $_imgopt_array as $key => $value ) {
1066
-                            echo '<option value="' . $key . '"';
1067
-                            if ( $_imgopt_val == $key ) {
1065
+                        foreach ($_imgopt_array as $key => $value) {
1066
+                            echo '<option value="'.$key.'"';
1067
+                            if ($_imgopt_val == $key) {
1068 1068
                                 echo ' selected';
1069 1069
                             }
1070
-                            echo '>' . ucfirst( $value ) . '</option>';
1070
+                            echo '>'.ucfirst($value).'</option>';
1071 1071
                         }
1072 1072
                         echo "\n";
1073 1073
                         ?>
@@ -1076,31 +1076,31 @@  discard block
 block discarded – undo
1076 1076
                     <p>
1077 1077
                         <?php
1078 1078
                             // translators: link points to shortpixel image test page.
1079
-                            echo apply_filters( 'autoptimize_imgopt_imgopt_quality_copy', sprintf( __( 'You can %1$stest compression levels here%2$s.', 'autoptimize' ), '<a href="https://shortpixel.com/oic' . $sp_url_suffix . '" target="_blank">', '</a>' ) );
1079
+                            echo apply_filters('autoptimize_imgopt_imgopt_quality_copy', sprintf(__('You can %1$stest compression levels here%2$s.', 'autoptimize'), '<a href="https://shortpixel.com/oic'.$sp_url_suffix.'" target="_blank">', '</a>'));
1080 1080
                         ?>
1081 1081
                     </p>
1082 1082
                 </td>
1083 1083
             </tr>
1084
-            <tr id='autoptimize_imgopt_webp' <?php if ( ! array_key_exists( 'autoptimize_imgopt_checkbox_field_1', $options ) || ( isset( $options['autoptimize_imgopt_checkbox_field_1'] ) && '1' !== $options['autoptimize_imgopt_checkbox_field_1'] ) ) { echo 'class="hidden"'; } ?>>
1085
-                <th scope="row"><?php _e( 'Load WebP in supported browsers?', 'autoptimize' ); ?></th>
1084
+            <tr id='autoptimize_imgopt_webp' <?php if (!array_key_exists('autoptimize_imgopt_checkbox_field_1', $options) || (isset($options['autoptimize_imgopt_checkbox_field_1']) && '1' !== $options['autoptimize_imgopt_checkbox_field_1'])) { echo 'class="hidden"'; } ?>>
1085
+                <th scope="row"><?php _e('Load WebP in supported browsers?', 'autoptimize'); ?></th>
1086 1086
                 <td>
1087
-                    <label><input type='checkbox' id='autoptimize_imgopt_webp_checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_4]' <?php if ( ! empty( $options['autoptimize_imgopt_checkbox_field_4'] ) && '1' === $options['autoptimize_imgopt_checkbox_field_3'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Automatically serve "next-gen" WebP image format to any browser that supports it (requires lazy load to be active).', 'autoptimize' ); ?></label>
1087
+                    <label><input type='checkbox' id='autoptimize_imgopt_webp_checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_4]' <?php if (!empty($options['autoptimize_imgopt_checkbox_field_4']) && '1' === $options['autoptimize_imgopt_checkbox_field_3']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Automatically serve "next-gen" WebP image format to any browser that supports it (requires lazy load to be active).', 'autoptimize'); ?></label>
1088 1088
                 </td>
1089 1089
             </tr>
1090 1090
             <tr>
1091
-                <th scope="row"><?php _e( 'Lazy-load images?', 'autoptimize' ); ?></th>
1091
+                <th scope="row"><?php _e('Lazy-load images?', 'autoptimize'); ?></th>
1092 1092
                 <td>
1093
-                    <label><input type='checkbox' id='autoptimize_imgopt_lazyload_checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_3]' <?php if ( ! empty( $options['autoptimize_imgopt_checkbox_field_3'] ) && '1' === $options['autoptimize_imgopt_checkbox_field_3'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Image lazy-loading will delay the loading of non-visible images to allow the browser to optimally load all resources for the "above the fold"-page first.', 'autoptimize' ); ?></label>
1093
+                    <label><input type='checkbox' id='autoptimize_imgopt_lazyload_checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_3]' <?php if (!empty($options['autoptimize_imgopt_checkbox_field_3']) && '1' === $options['autoptimize_imgopt_checkbox_field_3']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Image lazy-loading will delay the loading of non-visible images to allow the browser to optimally load all resources for the "above the fold"-page first.', 'autoptimize'); ?></label>
1094 1094
                 </td>
1095 1095
             </tr>
1096
-            <tr id='autoptimize_imgopt_lazyload_exclusions' <?php if ( ! array_key_exists( 'autoptimize_imgopt_checkbox_field_3', $options ) || ( isset( $options['autoptimize_imgopt_checkbox_field_3'] ) && '1' !== $options['autoptimize_imgopt_checkbox_field_3'] ) ) { echo 'class="hidden"'; } ?>>
1097
-                <th scope="row"><?php _e( 'Lazy-load exclusions', 'autoptimize' ); ?></th>
1096
+            <tr id='autoptimize_imgopt_lazyload_exclusions' <?php if (!array_key_exists('autoptimize_imgopt_checkbox_field_3', $options) || (isset($options['autoptimize_imgopt_checkbox_field_3']) && '1' !== $options['autoptimize_imgopt_checkbox_field_3'])) { echo 'class="hidden"'; } ?>>
1097
+                <th scope="row"><?php _e('Lazy-load exclusions', 'autoptimize'); ?></th>
1098 1098
                 <td>
1099
-                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_lazyload_exclusions' name='autoptimize_imgopt_settings[autoptimize_imgopt_text_field_5]' value='<?php if ( ! empty( $options['autoptimize_imgopt_text_field_5'] ) ) { echo esc_attr( $options['autoptimize_imgopt_text_field_5'] ); } ?>'><br /><?php _e( 'Comma-separated list of to be excluded image classes or filenames.', 'autoptimize' ); ?></label>
1099
+                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_lazyload_exclusions' name='autoptimize_imgopt_settings[autoptimize_imgopt_text_field_5]' value='<?php if (!empty($options['autoptimize_imgopt_text_field_5'])) { echo esc_attr($options['autoptimize_imgopt_text_field_5']); } ?>'><br /><?php _e('Comma-separated list of to be excluded image classes or filenames.', 'autoptimize'); ?></label>
1100 1100
                 </td>
1101 1101
             </tr>
1102 1102
         </table>
1103
-        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save Changes', 'autoptimize' ); ?>" /></p>
1103
+        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'autoptimize'); ?>" /></p>
1104 1104
     </form>
1105 1105
     <script>
1106 1106
         jQuery(document).ready(function() {
@@ -1136,50 +1136,50 @@  discard block
 block discarded – undo
1136 1136
      * Ïmg opt status as used on dashboard.
1137 1137
      */
1138 1138
     public function get_imgopt_status_notice() {
1139
-        if ( $this->imgopt_active() ) {
1139
+        if ($this->imgopt_active()) {
1140 1140
             $_imgopt_notice  = '';
1141
-            $_stat           = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_provider_stat', '' );
1141
+            $_stat           = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_provider_stat', '');
1142 1142
             $_site_host      = AUTOPTIMIZE_SITE_DOMAIN;
1143
-            $_imgopt_upsell  = 'https://shortpixel.com/aospai/af/GWRGFLW109483/' . $_site_host;
1143
+            $_imgopt_upsell  = 'https://shortpixel.com/aospai/af/GWRGFLW109483/'.$_site_host;
1144 1144
             $_imgopt_assoc   = 'https://shortpixel.helpscoutdocs.com/article/94-how-to-associate-a-domain-to-my-account';
1145 1145
             $_imgopt_unreach = 'https://shortpixel.helpscoutdocs.com/article/148-why-are-my-images-redirected-from-cdn-shortpixel-ai';
1146 1146
 
1147
-            if ( is_array( $_stat ) ) {
1148
-                if ( 1 == $_stat['Status'] ) {
1147
+            if (is_array($_stat)) {
1148
+                if (1 == $_stat['Status']) {
1149 1149
                     // translators: "add more credits" will appear in a "a href".
1150
-                    $_imgopt_notice = sprintf( __( 'Your ShortPixel image optimization and CDN quota is almost used, make sure you %1$sadd more credits%2$s to avoid slowing down your website.', 'autoptimize' ), '<a href="' . $_imgopt_upsell . '" target="_blank">', '</a>' );
1150
+                    $_imgopt_notice = sprintf(__('Your ShortPixel image optimization and CDN quota is almost used, make sure you %1$sadd more credits%2$s to avoid slowing down your website.', 'autoptimize'), '<a href="'.$_imgopt_upsell.'" target="_blank">', '</a>');
1151 1151
                 } elseif ( -1 == $_stat['Status'] || -2 == $_stat['Status'] ) {
1152 1152
                     // translators: "add more credits" will appear in a "a href".
1153
-                    $_imgopt_notice = sprintf( __( 'Your ShortPixel image optimization and CDN quota was used, %1$sadd more credits%2$s to keep fast serving optimized images on your site', 'autoptimize' ), '<a href="' . $_imgopt_upsell . '" target="_blank">', '</a>' );
1153
+                    $_imgopt_notice = sprintf(__('Your ShortPixel image optimization and CDN quota was used, %1$sadd more credits%2$s to keep fast serving optimized images on your site', 'autoptimize'), '<a href="'.$_imgopt_upsell.'" target="_blank">', '</a>');
1154 1154
                     // translators: "associate your domain" will appear in a "a href".
1155
-                    $_imgopt_notice = $_imgopt_notice . ' ' . sprintf( __( 'If you already have enough credits then you may need to %1$sassociate your domain%2$s to your Shortpixel account.', 'autoptimize' ), '<a rel="noopener noreferrer" href="' . $_imgopt_assoc . '" target="_blank">', '</a>' );
1155
+                    $_imgopt_notice = $_imgopt_notice.' '.sprintf(__('If you already have enough credits then you may need to %1$sassociate your domain%2$s to your Shortpixel account.', 'autoptimize'), '<a rel="noopener noreferrer" href="'.$_imgopt_assoc.'" target="_blank">', '</a>');
1156 1156
                 } elseif ( -3 == $_stat['Status'] ) {
1157 1157
                     // translators: "add more credits" will appear in a "a href".
1158
-                    $_imgopt_notice = sprintf( __( 'It seems ShortPixel image optimization is not able to fetch images from your site, %1$scheck the documentation here%2$s for more information', 'autoptimize' ), '<a href="' . $_imgopt_unreach . '" target="_blank">', '</a>' );
1158
+                    $_imgopt_notice = sprintf(__('It seems ShortPixel image optimization is not able to fetch images from your site, %1$scheck the documentation here%2$s for more information', 'autoptimize'), '<a href="'.$_imgopt_unreach.'" target="_blank">', '</a>');
1159 1159
                 } else {
1160 1160
                     $_imgopt_upsell = 'https://shortpixel.com/g/af/GWRGFLW109483';
1161 1161
                     // translators: "log in to check your account" will appear in a "a href".
1162
-                    $_imgopt_notice = sprintf( __( 'Your ShortPixel image optimization and CDN quota are in good shape, %1$slog in to check your account%2$s.', 'autoptimize' ), '<a href="' . $_imgopt_upsell . '" target="_blank">', '</a>' );
1162
+                    $_imgopt_notice = sprintf(__('Your ShortPixel image optimization and CDN quota are in good shape, %1$slog in to check your account%2$s.', 'autoptimize'), '<a href="'.$_imgopt_upsell.'" target="_blank">', '</a>');
1163 1163
                 }
1164 1164
 
1165 1165
                 // add info on freshness + refresh link if status is not 2 (good shape).
1166
-                if ( 2 != $_stat['Status'] ) {
1167
-                    $_imgopt_stats_refresh_url = add_query_arg( array(
1166
+                if (2 != $_stat['Status']) {
1167
+                    $_imgopt_stats_refresh_url = add_query_arg(array(
1168 1168
                         'page'                => 'autoptimize_imgopt',
1169 1169
                         'refreshImgProvStats' => '1',
1170
-                    ), admin_url( 'options-general.php' ) );
1171
-                    if ( $_stat && array_key_exists( 'timestamp', $_stat ) && ! empty( $_stat['timestamp'] ) ) {
1172
-                        $_imgopt_stats_last_run = __( 'based on status at ', 'autoptimize' ) . date_i18n( autoptimizeOptionWrapper::get_option( 'time_format' ), $_stat['timestamp'] );
1170
+                    ), admin_url('options-general.php'));
1171
+                    if ($_stat && array_key_exists('timestamp', $_stat) && !empty($_stat['timestamp'])) {
1172
+                        $_imgopt_stats_last_run = __('based on status at ', 'autoptimize').date_i18n(autoptimizeOptionWrapper::get_option('time_format'), $_stat['timestamp']);
1173 1173
                     } else {
1174
-                        $_imgopt_stats_last_run = __( 'based on previously fetched data', 'autoptimize' );
1174
+                        $_imgopt_stats_last_run = __('based on previously fetched data', 'autoptimize');
1175 1175
                     }
1176
-                    $_imgopt_notice .= ' (' . $_imgopt_stats_last_run . ', ';
1176
+                    $_imgopt_notice .= ' ('.$_imgopt_stats_last_run.', ';
1177 1177
                     // translators: "here to refresh" links to the Autoptimize Extra page and forces a refresh of the img opt stats.
1178
-                    $_imgopt_notice .= sprintf( __( 'click %1$shere to refresh%2$s', 'autoptimize' ), '<a href="' . $_imgopt_stats_refresh_url . '">', '</a>).' );
1178
+                    $_imgopt_notice .= sprintf(__('click %1$shere to refresh%2$s', 'autoptimize'), '<a href="'.$_imgopt_stats_refresh_url.'">', '</a>).');
1179 1179
                 }
1180 1180
 
1181 1181
                 // and make the full notice filterable.
1182
-                $_imgopt_notice = apply_filters( 'autoptimize_filter_imgopt_notice', $_imgopt_notice );
1182
+                $_imgopt_notice = apply_filters('autoptimize_filter_imgopt_notice', $_imgopt_notice);
1183 1183
 
1184 1184
                 return array(
1185 1185
                     'status' => $_stat['Status'],
@@ -1200,14 +1200,14 @@  discard block
 block discarded – undo
1200 1200
      * Get img provider stats (used to display notice).
1201 1201
      */
1202 1202
     public function query_img_provider_stats() {
1203
-        if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_1'] ) ) {
1203
+        if (!empty($this->options['autoptimize_imgopt_checkbox_field_1'])) {
1204 1204
             $url      = '';
1205
-            $endpoint = $this->get_imgopt_host() . 'read-domain/';
1205
+            $endpoint = $this->get_imgopt_host().'read-domain/';
1206 1206
             $domain   = AUTOPTIMIZE_SITE_DOMAIN;
1207 1207
 
1208 1208
             // make sure parse_url result makes sense, keeping $url empty if not.
1209
-            if ( $domain && ! empty( $domain ) ) {
1210
-                $url = $endpoint . $domain;
1209
+            if ($domain && !empty($domain)) {
1210
+                $url = $endpoint.$domain;
1211 1211
             }
1212 1212
 
1213 1213
             $url = apply_filters(
@@ -1217,12 +1217,12 @@  discard block
 block discarded – undo
1217 1217
 
1218 1218
             // only do the remote call if $url is not empty to make sure no parse_url
1219 1219
             // weirdness results in useless calls.
1220
-            if ( ! empty( $url ) ) {
1221
-                $response = wp_remote_get( $url );
1222
-                if ( ! is_wp_error( $response ) ) {
1223
-                    if ( '200' == wp_remote_retrieve_response_code( $response ) ) {
1224
-                        $stats = json_decode( wp_remote_retrieve_body( $response ), true );
1225
-                        autoptimizeOptionWrapper::update_option( 'autoptimize_imgopt_provider_stat', $stats );
1220
+            if (!empty($url)) {
1221
+                $response = wp_remote_get($url);
1222
+                if (!is_wp_error($response)) {
1223
+                    if ('200' == wp_remote_retrieve_response_code($response)) {
1224
+                        $stats = json_decode(wp_remote_retrieve_body($response), true);
1225
+                        autoptimizeOptionWrapper::update_option('autoptimize_imgopt_provider_stat', $stats);
1226 1226
                     }
1227 1227
                 }
1228 1228
             }
@@ -1245,15 +1245,15 @@  discard block
 block discarded – undo
1245 1245
     {
1246 1246
         static $launch_status = null;
1247 1247
 
1248
-        if ( null === $launch_status ) {
1248
+        if (null === $launch_status) {
1249 1249
             $avail_imgopt  = $this->options['availabilities']['extra_imgopt'];
1250
-            $magic_number  = intval( substr( md5( parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) ), 0, 3 ), 16 );
1251
-            $has_launched  = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_launched', '' );
1250
+            $magic_number  = intval(substr(md5(parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST)), 0, 3), 16);
1251
+            $has_launched  = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_launched', '');
1252 1252
             $launch_status = false;
1253
-            if ( $has_launched || ( is_array( $avail_imgopt ) && array_key_exists( 'launch-threshold', $avail_imgopt ) && $magic_number < $avail_imgopt['launch-threshold'] ) ) {
1253
+            if ($has_launched || (is_array($avail_imgopt) && array_key_exists('launch-threshold', $avail_imgopt) && $magic_number < $avail_imgopt['launch-threshold'])) {
1254 1254
                 $launch_status = true;
1255
-                if ( ! $has_launched ) {
1256
-                    autoptimizeOptionWrapper::update_option( 'autoptimize_imgopt_launched', 'on' );
1255
+                if (!$has_launched) {
1256
+                    autoptimizeOptionWrapper::update_option('autoptimize_imgopt_launched', 'on');
1257 1257
                 }
1258 1258
             }
1259 1259
         }
@@ -1270,16 +1270,16 @@  discard block
 block discarded – undo
1270 1270
     public function get_imgopt_provider_userstatus() {
1271 1271
         static $_provider_userstatus = null;
1272 1272
 
1273
-        if ( is_null( $_provider_userstatus ) ) {
1274
-            $_stat = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_provider_stat', '' );
1275
-            if ( is_array( $_stat ) ) {
1276
-                if ( array_key_exists( 'Status', $_stat ) ) {
1273
+        if (is_null($_provider_userstatus)) {
1274
+            $_stat = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_provider_stat', '');
1275
+            if (is_array($_stat)) {
1276
+                if (array_key_exists('Status', $_stat)) {
1277 1277
                     $_provider_userstatus['Status'] = $_stat['Status'];
1278 1278
                 } else {
1279 1279
                     // if no stats then we assume all is well.
1280 1280
                     $_provider_userstatus['Status'] = 2;
1281 1281
                 }
1282
-                if ( array_key_exists( 'timestamp', $_stat ) ) {
1282
+                if (array_key_exists('timestamp', $_stat)) {
1283 1283
                     $_provider_userstatus['timestamp'] = $_stat['timestamp'];
1284 1284
                 } else {
1285 1285
                     // if no timestamp then we return "".
Please login to merge, or discard this patch.
classes/autoptimizeOptionWrapper.php 1 patch
Spacing   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Autoptimize options handler.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -21,8 +21,8 @@  discard block
 block discarded – undo
21 21
      * Ensure that is_plugin_active_for_network function is declared.
22 22
      */
23 23
     public static function maybe_include_plugin_functions() {
24
-        if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
25
-            include_once ABSPATH . 'wp-admin/includes/plugin.php';
24
+        if (!function_exists('is_plugin_active_for_network')) {
25
+            include_once ABSPATH.'wp-admin/includes/plugin.php';
26 26
         }
27 27
     }
28 28
 
@@ -33,19 +33,19 @@  discard block
 block discarded – undo
33 33
      * @param mixed  $default Optional. Default value to return if the option does not exist.
34 34
      * @return mixed Value set for the option.
35 35
      */
36
-    public static function get_option( $option, $default = false ) {
36
+    public static function get_option($option, $default = false) {
37 37
         // This is always a network setting.
38
-        if ( 'autoptimize_enable_site_config' === $option ) {
39
-            return get_network_option( get_main_network_id(), $option );
38
+        if ('autoptimize_enable_site_config' === $option) {
39
+            return get_network_option(get_main_network_id(), $option);
40 40
         }
41 41
 
42 42
         // If the plugin is network activated and our per site setting is not on, use the network configuration.
43
-        $configuration_per_site = get_network_option( get_main_network_id(), 'autoptimize_enable_site_config' );
44
-        if ( self::is_ao_active_for_network() && ( 'on' !== $configuration_per_site || is_network_admin() ) ) {
45
-            return get_network_option( get_main_network_id(), $option );
43
+        $configuration_per_site = get_network_option(get_main_network_id(), 'autoptimize_enable_site_config');
44
+        if (self::is_ao_active_for_network() && ('on' !== $configuration_per_site || is_network_admin())) {
45
+            return get_network_option(get_main_network_id(), $option);
46 46
         }
47 47
 
48
-        return get_option( $option, $default );
48
+        return get_option($option, $default);
49 49
     }
50 50
 
51 51
     /**
@@ -59,11 +59,11 @@  discard block
 block discarded – undo
59 59
      *                              the default value is 'yes'. Default null.
60 60
      * @return bool False if value was not updated and true if value was updated.
61 61
      */
62
-    public static function update_option( $option, $value, $autoload = null ) {
63
-        if ( self::is_ao_active_for_network() && is_network_admin() ) {
64
-            return update_network_option( get_main_network_id(), $option, $value );
65
-        } elseif ( 'autoptimize_enable_site_config' !== $option ) {
66
-            return update_option( $option, $value, $autoload );
62
+    public static function update_option($option, $value, $autoload = null) {
63
+        if (self::is_ao_active_for_network() && is_network_admin()) {
64
+            return update_network_option(get_main_network_id(), $option, $value);
65
+        } elseif ('autoptimize_enable_site_config' !== $option) {
66
+            return update_option($option, $value, $autoload);
67 67
         }
68 68
     }
69 69
 
@@ -72,8 +72,8 @@  discard block
 block discarded – undo
72 72
      * in that case, take care of multisite case.
73 73
      */
74 74
     public static function check_multisite_on_saving_options() {
75
-        if ( self::is_ao_active_for_network() ) {
76
-            add_filter( 'pre_update_option', 'autoptimizeOptionWrapper::update_autoptimize_option_on_network', 10, 3 );
75
+        if (self::is_ao_active_for_network()) {
76
+            add_filter('pre_update_option', 'autoptimizeOptionWrapper::update_autoptimize_option_on_network', 10, 3);
77 77
         }
78 78
     }
79 79
 
@@ -84,16 +84,16 @@  discard block
 block discarded – undo
84 84
      * @param string $option    Option name.
85 85
      * @param string $old_value Old value.
86 86
      */
87
-    public static function update_autoptimize_option_on_network( $value, $option, $old_value ) {
88
-        if ( strpos( $option, 'autoptimize_' ) === 0 && self::is_options_from_network_admin() ) {
89
-            if ( self::is_ao_active_for_network() ) {
90
-                update_network_option( get_main_network_id(), $option, $value );
87
+    public static function update_autoptimize_option_on_network($value, $option, $old_value) {
88
+        if (strpos($option, 'autoptimize_') === 0 && self::is_options_from_network_admin()) {
89
+            if (self::is_ao_active_for_network()) {
90
+                update_network_option(get_main_network_id(), $option, $value);
91 91
                 // Return old value, to stop update_option logic.
92 92
                 return $old_value;
93 93
             }
94
-            if ( apply_filters( 'autoptimize_filter_optionwrapper_wp_cache_delete', false ) ) {
94
+            if (apply_filters('autoptimize_filter_optionwrapper_wp_cache_delete', false)) {
95 95
                 // in some (rare) cases options seem to get stuck in WP's Object cache, this should clear it there.
96
-                wp_cache_delete( $option );
96
+                wp_cache_delete($option);
97 97
             }
98 98
         }
99 99
         return $value;
@@ -107,8 +107,8 @@  discard block
 block discarded – undo
107 107
     public static function is_options_from_network_admin() {
108 108
         static $_really_is_network_admin = null;
109 109
 
110
-        if ( null === $_really_is_network_admin ) {
111
-            if ( array_key_exists( '_wp_http_referer', $_POST ) && strpos( network_admin_url( 'settings.php' ), strtok( $_POST['_wp_http_referer'], '?' ) ) !== false ) {
110
+        if (null === $_really_is_network_admin) {
111
+            if (array_key_exists('_wp_http_referer', $_POST) && strpos(network_admin_url('settings.php'), strtok($_POST['_wp_http_referer'], '?')) !== false) {
112 112
                 $_really_is_network_admin = true;
113 113
             } else {
114 114
                 $_really_is_network_admin = false;
@@ -123,9 +123,9 @@  discard block
 block discarded – undo
123 123
      */
124 124
     public static function is_ao_active_for_network() {
125 125
         static $_is_ao_active_for_network = null;
126
-        if ( null === $_is_ao_active_for_network || defined( 'TEST_MULTISITE_FORCE_AO_ON_NETWORK' ) ) {
126
+        if (null === $_is_ao_active_for_network || defined('TEST_MULTISITE_FORCE_AO_ON_NETWORK')) {
127 127
             self::maybe_include_plugin_functions();
128
-            if ( is_plugin_active_for_network( 'autoptimize/autoptimize.php' ) || is_plugin_active_for_network( 'autoptimize-beta/autoptimize.php' ) || defined( 'TEST_MULTISITE_FORCE_AO_ON_NETWORK' ) ) {
128
+            if (is_plugin_active_for_network('autoptimize/autoptimize.php') || is_plugin_active_for_network('autoptimize-beta/autoptimize.php') || defined('TEST_MULTISITE_FORCE_AO_ON_NETWORK')) {
129 129
                 $_is_ao_active_for_network = true;
130 130
             } else {
131 131
                 $_is_ao_active_for_network = false;
Please login to merge, or discard this patch.