Completed
Push — master ( 8538b3...935035 )
by frank
02:00
created
classes/autoptimizeImages.php 2 patches
Doc Comments   +10 added lines, -1 removed lines patch added patch discarded remove patch
@@ -382,6 +382,9 @@  discard block
 block discarded – undo
382 382
         }
383 383
     }
384 384
 
385
+    /**
386
+     * @return string
387
+     */
385 388
     private function get_imgopt_base_url()
386 389
     {
387 390
         static $imgopt_base_url = null;
@@ -873,6 +876,9 @@  discard block
 block discarded – undo
873 876
         }
874 877
     }
875 878
 
879
+    /**
880
+     * @return string
881
+     */
876 882
     public function get_cdn_url() {
877 883
         // getting CDN url here to avoid having to make bigger changes to autoptimizeBase.
878 884
         static $cdn_url = null;
@@ -976,6 +982,9 @@  discard block
 block discarded – undo
976 982
         return $out;
977 983
     }
978 984
 
985
+    /**
986
+     * @return string
987
+     */
979 988
     public function process_bgimage( $in ) {
980 989
         if ( strpos( $in, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_lazyload_backgroundimages', true ) ) {
981 990
             $out = preg_replace_callback(
@@ -1345,7 +1354,7 @@  discard block
 block discarded – undo
1345 1354
     /**
1346 1355
      * Determines and returns the service launch status.
1347 1356
      *
1348
-     * @return bool
1357
+     * @return null|boolean
1349 1358
      */
1350 1359
     public function launch_ok()
1351 1360
     {
Please login to merge, or discard this patch.
Spacing   +369 added lines, -369 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,18 +23,18 @@  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
         $this->lazyload_counter = 0;
35 35
     }
36 36
 
37
-    public function set_options( array $options )
37
+    public function set_options(array $options)
38 38
     {
39 39
         $this->options = $options;
40 40
 
@@ -43,17 +43,17 @@  discard block
 block discarded – undo
43 43
 
44 44
     public static function fetch_options()
45 45
     {
46
-        $value = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_settings' );
47
-        if ( empty( $value ) ) {
46
+        $value = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_settings');
47
+        if (empty($value)) {
48 48
             // Fallback to returning defaults when no stored option exists yet.
49 49
             $value = autoptimizeConfig::get_ao_imgopt_default_options();
50 50
         }
51 51
 
52 52
         // get service availability and add it to the options-array.
53
-        $value['availabilities'] = autoptimizeOptionWrapper::get_option( 'autoptimize_service_availablity' );
53
+        $value['availabilities'] = autoptimizeOptionWrapper::get_option('autoptimize_service_availablity');
54 54
 
55
-        if ( empty( $value['availabilities'] ) ) {
56
-            $value['availabilities'] = autoptimizeUtils::check_service_availability( true );
55
+        if (empty($value['availabilities'])) {
56
+            $value['availabilities'] = autoptimizeUtils::check_service_availability(true);
57 57
         }
58 58
 
59 59
         return $value;
@@ -66,9 +66,9 @@  discard block
 block discarded – undo
66 66
         // and does not use/ request the availablity data (which could slow things down).
67 67
         static $imgopt_active = null;
68 68
 
69
-        if ( null === $imgopt_active ) {
70
-            $opts = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_settings', '' );
71
-            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'] ) {
69
+        if (null === $imgopt_active) {
70
+            $opts = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_settings', '');
71
+            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']) {
72 72
                 $imgopt_active = true;
73 73
             } else {
74 74
                 $imgopt_active = false;
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
      */
89 89
     public static function instance()
90 90
     {
91
-        if ( null === self::$instance ) {
91
+        if (null === self::$instance) {
92 92
             self::$instance = new self();
93 93
         }
94 94
 
@@ -97,34 +97,34 @@  discard block
 block discarded – undo
97 97
 
98 98
     public function run()
99 99
     {
100
-        if ( is_admin() ) {
101
-            if ( is_multisite() && is_network_admin() && autoptimizeOptionWrapper::is_ao_active_for_network() ) {
102
-                add_action( 'network_admin_menu', array( $this, 'imgopt_admin_menu' ) );
100
+        if (is_admin()) {
101
+            if (is_multisite() && is_network_admin() && autoptimizeOptionWrapper::is_ao_active_for_network()) {
102
+                add_action('network_admin_menu', array($this, 'imgopt_admin_menu'));
103 103
             } else {
104
-                add_action( 'admin_menu', array( $this, 'imgopt_admin_menu' ) );
104
+                add_action('admin_menu', array($this, 'imgopt_admin_menu'));
105 105
             }
106
-            add_filter( 'autoptimize_filter_settingsscreen_tabs', array( $this, 'add_imgopt_tab' ), 9 );
106
+            add_filter('autoptimize_filter_settingsscreen_tabs', array($this, 'add_imgopt_tab'), 9);
107 107
         } else {
108
-            add_action( 'wp', array( $this, 'run_on_frontend' ) );
108
+            add_action('wp', array($this, 'run_on_frontend'));
109 109
         }
110 110
     }
111 111
 
112 112
     public function run_on_frontend() {
113
-        if ( ! $this->should_run() ) {
114
-            if ( $this->should_lazyload() ) {
113
+        if (!$this->should_run()) {
114
+            if ($this->should_lazyload()) {
115 115
                 add_filter(
116 116
                     'wp_lazy_loading_enabled',
117 117
                     '__return_false'
118 118
                 );
119 119
                 add_filter(
120 120
                     'autoptimize_html_after_minify',
121
-                    array( $this, 'filter_lazyload_images' ),
121
+                    array($this, 'filter_lazyload_images'),
122 122
                     10,
123 123
                     1
124 124
                 );
125 125
                 add_action(
126 126
                     'wp_footer',
127
-                    array( $this, 'add_lazyload_js_footer' ),
127
+                    array($this, 'add_lazyload_js_footer'),
128 128
                     10,
129 129
                     0
130 130
                 );
@@ -134,43 +134,43 @@  discard block
 block discarded – undo
134 134
 
135 135
         $active = false;
136 136
 
137
-        if ( apply_filters( 'autoptimize_filter_imgopt_do', true ) ) {
137
+        if (apply_filters('autoptimize_filter_imgopt_do', true)) {
138 138
             add_filter(
139 139
                 'autoptimize_html_after_minify',
140
-                array( $this, 'filter_optimize_images' ),
140
+                array($this, 'filter_optimize_images'),
141 141
                 10,
142 142
                 1
143 143
             );
144 144
             $active = true;
145 145
         }
146 146
 
147
-        if ( apply_filters( 'autoptimize_filter_imgopt_do_css', true ) ) {
147
+        if (apply_filters('autoptimize_filter_imgopt_do_css', true)) {
148 148
             add_filter(
149 149
                 'autoptimize_filter_base_replace_cdn',
150
-                array( $this, 'filter_optimize_css_images' ),
150
+                array($this, 'filter_optimize_css_images'),
151 151
                 10,
152 152
                 1
153 153
             );
154 154
             $active = true;
155 155
         }
156 156
 
157
-        if ( $active ) {
157
+        if ($active) {
158 158
             add_filter(
159 159
                 'autoptimize_extra_filter_tobepreconn',
160
-                array( $this, 'filter_preconnect_imgopt_url' ),
160
+                array($this, 'filter_preconnect_imgopt_url'),
161 161
                 10,
162 162
                 1
163 163
             );
164 164
         }
165 165
 
166
-        if ( $this->should_lazyload() ) {
166
+        if ($this->should_lazyload()) {
167 167
             add_filter(
168 168
                 'wp_lazy_loading_enabled',
169 169
                 '__return_false'
170 170
             );
171 171
             add_action(
172 172
                 'wp_footer',
173
-                array( $this, 'add_lazyload_js_footer' ),
173
+                array($this, 'add_lazyload_js_footer'),
174 174
                 10,
175 175
                 0
176 176
             );
@@ -185,12 +185,12 @@  discard block
 block discarded – undo
185 185
     protected function should_run()
186 186
     {
187 187
         $opts              = $this->options;
188
-        $service_not_down  = ( 'down' !== $opts['availabilities']['extra_imgopt']['status'] );
189
-        $not_launch_status = ( 'launch' !== $opts['availabilities']['extra_imgopt']['status'] );
188
+        $service_not_down  = ('down' !== $opts['availabilities']['extra_imgopt']['status']);
189
+        $not_launch_status = ('launch' !== $opts['availabilities']['extra_imgopt']['status']);
190 190
 
191 191
         $do_cdn      = true;
192 192
         $_userstatus = $this->get_imgopt_provider_userstatus();
193
-        if ( isset( $_userstatus['Status'] ) && ( -2 == $_userstatus['Status'] || -3 == $_userstatus['Status'] ) ) {
193
+        if (isset($_userstatus['Status']) && ( -2 == $_userstatus['Status'] || -3 == $_userstatus['Status'] )) {
194 194
             // don't even attempt to put images on CDN if heavily exceeded threshold or if site not reachable.
195 195
             $do_cdn = false;
196 196
         }
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
             $this->imgopt_active()
200 200
             && $do_cdn
201 201
             && $service_not_down
202
-            && ( $not_launch_status || $this->launch_ok() )
202
+            && ($not_launch_status || $this->launch_ok())
203 203
         ) {
204 204
             return true;
205 205
         }
@@ -210,13 +210,13 @@  discard block
 block discarded – undo
210 210
     {
211 211
         static $imgopt_host = null;
212 212
 
213
-        if ( null === $imgopt_host ) {
213
+        if (null === $imgopt_host) {
214 214
             $imgopt_host  = 'https://cdn.shortpixel.ai/';
215 215
             $avail_imgopt = $this->options['availabilities']['extra_imgopt'];
216
-            if ( ! empty( $avail_imgopt ) && array_key_exists( 'hosts', $avail_imgopt ) && is_array( $avail_imgopt['hosts'] ) ) {
217
-                $imgopt_host = array_rand( array_flip( $avail_imgopt['hosts'] ) );
216
+            if (!empty($avail_imgopt) && array_key_exists('hosts', $avail_imgopt) && is_array($avail_imgopt['hosts'])) {
217
+                $imgopt_host = array_rand(array_flip($avail_imgopt['hosts']));
218 218
             }
219
-            $imgopt_host = apply_filters( 'autoptimize_filter_imgopt_host', $imgopt_host );
219
+            $imgopt_host = apply_filters('autoptimize_filter_imgopt_host', $imgopt_host);
220 220
         }
221 221
 
222 222
         return $imgopt_host;
@@ -231,7 +231,7 @@  discard block
 block discarded – undo
231 231
 
232 232
     public static function get_service_url_suffix()
233 233
     {
234
-        $suffix = '/af/SPZURYE109483/' . AUTOPTIMIZE_SITE_DOMAIN;
234
+        $suffix = '/af/SPZURYE109483/'.AUTOPTIMIZE_SITE_DOMAIN;
235 235
 
236 236
         return $suffix;
237 237
     }
@@ -240,12 +240,12 @@  discard block
 block discarded – undo
240 240
     {
241 241
         static $quality = null;
242 242
 
243
-        if ( null === $quality ) {
243
+        if (null === $quality) {
244 244
             $q_array = $this->get_img_quality_array();
245 245
             $setting = $this->get_img_quality_setting();
246 246
             $quality = apply_filters(
247 247
                 'autoptimize_filter_imgopt_quality',
248
-                'q_' . $q_array[ $setting ]
248
+                'q_'.$q_array[$setting]
249 249
             );
250 250
         }
251 251
 
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
     {
257 257
         static $map = null;
258 258
 
259
-        if ( null === $map ) {
259
+        if (null === $map) {
260 260
             $map = array(
261 261
                 '1' => 'lossy',
262 262
                 '2' => 'glossy',
@@ -275,12 +275,12 @@  discard block
 block discarded – undo
275 275
     {
276 276
         static $q = null;
277 277
 
278
-        if ( null === $q ) {
279
-            if ( is_array( $this->options ) && array_key_exists( 'autoptimize_imgopt_select_field_2', $this->options ) ) {
278
+        if (null === $q) {
279
+            if (is_array($this->options) && array_key_exists('autoptimize_imgopt_select_field_2', $this->options)) {
280 280
                 $setting = $this->options['autoptimize_imgopt_select_field_2'];
281 281
             }
282 282
 
283
-            if ( ! isset( $setting ) || empty( $setting ) || ( '1' !== $setting && '3' !== $setting ) ) {
283
+            if (!isset($setting) || empty($setting) || ('1' !== $setting && '3' !== $setting)) {
284 284
                 // default image opt. value is 2 ("glossy").
285 285
                 $q = '2';
286 286
             } else {
@@ -291,10 +291,10 @@  discard block
 block discarded – undo
291 291
         return $q;
292 292
     }
293 293
 
294
-    public function filter_preconnect_imgopt_url( array $in )
294
+    public function filter_preconnect_imgopt_url(array $in)
295 295
     {
296
-        $url_parts = parse_url( $this->get_imgopt_base_url() );
297
-        $in[]      = $url_parts['scheme'] . '://' . $url_parts['host'];
296
+        $url_parts = parse_url($this->get_imgopt_base_url());
297
+        $in[]      = $url_parts['scheme'].'://'.$url_parts['host'];
298 298
 
299 299
         return $in;
300 300
     }
@@ -307,20 +307,20 @@  discard block
 block discarded – undo
307 307
      *
308 308
      * @return string
309 309
      */
310
-    private function normalize_img_url( $in )
310
+    private function normalize_img_url($in)
311 311
     {
312 312
         // Only parse the site url once.
313 313
         static $parsed_site_url = null;
314
-        if ( null === $parsed_site_url ) {
315
-            $parsed_site_url = parse_url( site_url() );
314
+        if (null === $parsed_site_url) {
315
+            $parsed_site_url = parse_url(site_url());
316 316
         }
317 317
 
318 318
         // get CDN domain once.
319 319
         static $cdn_domain = null;
320
-        if ( is_null( $cdn_domain ) ) {
320
+        if (is_null($cdn_domain)) {
321 321
             $cdn_url = $this->get_cdn_url();
322
-            if ( ! empty( $cdn_url ) ) {
323
-                $cdn_domain = parse_url( $cdn_url, PHP_URL_HOST );
322
+            if (!empty($cdn_url)) {
323
+                $cdn_domain = parse_url($cdn_url, PHP_URL_HOST);
324 324
             } else {
325 325
                 $cdn_domain = '';
326 326
             }
@@ -336,47 +336,47 @@  discard block
 block discarded – undo
336 336
          * identical string operations).
337 337
          */
338 338
         static $cache = null;
339
-        if ( null === $cache ) {
339
+        if (null === $cache) {
340 340
             $cache = array();
341 341
         }
342 342
 
343 343
         // Do the work on cache miss only.
344
-        if ( ! isset( $cache[ $in ] ) ) {
344
+        if (!isset($cache[$in])) {
345 345
             // Default to (the trimmed version of) what was given to us.
346
-            $result = trim( $in );
346
+            $result = trim($in);
347 347
 
348 348
             // Some silly plugins wrap background images in html-encoded quotes, so remove those from the img url.
349
-            $result = $this->fix_silly_bgimg_quotes( $result );
349
+            $result = $this->fix_silly_bgimg_quotes($result);
350 350
 
351
-            if ( autoptimizeUtils::is_protocol_relative( $result ) ) {
352
-                $result = $parsed_site_url['scheme'] . ':' . $result;
353
-            } elseif ( 0 === strpos( $result, '/' ) ) {
351
+            if (autoptimizeUtils::is_protocol_relative($result)) {
352
+                $result = $parsed_site_url['scheme'].':'.$result;
353
+            } elseif (0 === strpos($result, '/')) {
354 354
                 // Root-relative...
355
-                $result = $parsed_site_url['scheme'] . '://' . $parsed_site_url['host'] . $result;
356
-            } elseif ( ! empty( $cdn_domain ) && strpos( $result, $cdn_domain ) !== 0 ) {
357
-                $result = str_replace( $cdn_domain, $parsed_site_url['host'], $result );
355
+                $result = $parsed_site_url['scheme'].'://'.$parsed_site_url['host'].$result;
356
+            } elseif (!empty($cdn_domain) && strpos($result, $cdn_domain) !== 0) {
357
+                $result = str_replace($cdn_domain, $parsed_site_url['host'], $result);
358 358
             }
359 359
 
360 360
             // filter (default off) to remove QS from image URL's to avoid eating away optimization credits.
361
-            if ( apply_filters( 'autoptimize_filter_imgopt_no_querystring', false ) && strpos( $result, '?' ) !== false ) {
362
-                $result = strtok( $result, '?' );
361
+            if (apply_filters('autoptimize_filter_imgopt_no_querystring', false) && strpos($result, '?') !== false) {
362
+                $result = strtok($result, '?');
363 363
             }
364 364
 
365
-            $result = apply_filters( 'autoptimize_filter_imgopt_normalized_url', $result );
365
+            $result = apply_filters('autoptimize_filter_imgopt_normalized_url', $result);
366 366
 
367 367
             // Store in cache.
368
-            $cache[ $in ] = $result;
368
+            $cache[$in] = $result;
369 369
         }
370 370
 
371
-        return $cache[ $in ];
371
+        return $cache[$in];
372 372
     }
373 373
 
374
-    public function filter_optimize_css_images( $in )
374
+    public function filter_optimize_css_images($in)
375 375
     {
376
-        $in = $this->normalize_img_url( $in );
376
+        $in = $this->normalize_img_url($in);
377 377
 
378
-        if ( $this->can_optimize_image( $in ) ) {
379
-            return $this->build_imgopt_url( $in, '', '' );
378
+        if ($this->can_optimize_image($in)) {
379
+            return $this->build_imgopt_url($in, '', '');
380 380
         } else {
381 381
             return $in;
382 382
         }
@@ -386,53 +386,53 @@  discard block
 block discarded – undo
386 386
     {
387 387
         static $imgopt_base_url = null;
388 388
 
389
-        if ( null === $imgopt_base_url ) {
389
+        if (null === $imgopt_base_url) {
390 390
             $imgopt_host     = $this->get_imgopt_host();
391 391
             $quality         = $this->get_img_quality_string();
392
-            $ret_val         = apply_filters( 'autoptimize_filter_imgopt_wait', 'ret_img' ); // values: ret_wait, ret_img, ret_json, ret_blank.
393
-            $imgopt_base_url = $imgopt_host . 'client/' . $quality . ',' . $ret_val;
394
-            $imgopt_base_url = apply_filters( 'autoptimize_filter_imgopt_base_url', $imgopt_base_url );
392
+            $ret_val         = apply_filters('autoptimize_filter_imgopt_wait', 'ret_img'); // values: ret_wait, ret_img, ret_json, ret_blank.
393
+            $imgopt_base_url = $imgopt_host.'client/'.$quality.','.$ret_val;
394
+            $imgopt_base_url = apply_filters('autoptimize_filter_imgopt_base_url', $imgopt_base_url);
395 395
         }
396 396
 
397 397
         return $imgopt_base_url;
398 398
     }
399 399
 
400
-    private function can_optimize_image( $url, $tag = '', $testing = false )
400
+    private function can_optimize_image($url, $tag = '', $testing = false)
401 401
     {
402 402
         static $cdn_url      = null;
403 403
         static $nopti_images = null;
404 404
 
405
-        if ( null === $cdn_url ) {
405
+        if (null === $cdn_url) {
406 406
             $cdn_url = apply_filters(
407 407
                 'autoptimize_filter_base_cdnurl',
408
-                autoptimizeOptionWrapper::get_option( 'autoptimize_cdn_url', '' )
408
+                autoptimizeOptionWrapper::get_option('autoptimize_cdn_url', '')
409 409
             );
410 410
         }
411 411
 
412
-        if ( null === $nopti_images || $testing ) {
413
-            if ( is_array( $this->options ) && array_key_exists( 'autoptimize_imgopt_text_field_6', $this->options ) ) {
412
+        if (null === $nopti_images || $testing) {
413
+            if (is_array($this->options) && array_key_exists('autoptimize_imgopt_text_field_6', $this->options)) {
414 414
                 $nopti_images = $this->options['autoptimize_imgopt_text_field_6'];
415 415
             }
416
-            $nopti_images = apply_filters( 'autoptimize_filter_imgopt_noptimize', $nopti_images );
416
+            $nopti_images = apply_filters('autoptimize_filter_imgopt_noptimize', $nopti_images);
417 417
         }
418 418
 
419 419
         $site_host  = AUTOPTIMIZE_SITE_DOMAIN;
420
-        $url        = $this->normalize_img_url( $url );
421
-        $url_parsed = parse_url( $url );
420
+        $url        = $this->normalize_img_url($url);
421
+        $url_parsed = parse_url($url);
422 422
 
423
-        if ( array_key_exists( 'host', $url_parsed ) && $url_parsed['host'] !== $site_host && empty( $cdn_url ) ) {
423
+        if (array_key_exists('host', $url_parsed) && $url_parsed['host'] !== $site_host && empty($cdn_url)) {
424 424
             return false;
425
-        } elseif ( ! empty( $cdn_url ) && strpos( $url, $cdn_url ) === false && array_key_exists( 'host', $url_parsed ) && $url_parsed['host'] !== $site_host ) {
425
+        } elseif (!empty($cdn_url) && strpos($url, $cdn_url) === false && array_key_exists('host', $url_parsed) && $url_parsed['host'] !== $site_host) {
426 426
             return false;
427
-        } elseif ( strpos( $url, '.php' ) !== false ) {
427
+        } elseif (strpos($url, '.php') !== false) {
428 428
             return false;
429
-        } elseif ( str_ireplace( array( '.png', '.gif', '.jpg', '.jpeg', '.webp', '.avif' ), '', $url_parsed['path'] ) === $url_parsed['path'] ) {
429
+        } elseif (str_ireplace(array('.png', '.gif', '.jpg', '.jpeg', '.webp', '.avif'), '', $url_parsed['path']) === $url_parsed['path']) {
430 430
             // fixme: better check against end of string.
431 431
             return false;
432
-        } elseif ( ! empty( $nopti_images ) ) {
433
-            $nopti_images_array = array_filter( array_map( 'trim', explode( ',', $nopti_images ) ) );
434
-            foreach ( $nopti_images_array as $nopti_image ) {
435
-                if ( strpos( $url, $nopti_image ) !== false || ( ( '' !== $tag && strpos( $tag, $nopti_image ) !== false ) ) ) {
432
+        } elseif (!empty($nopti_images)) {
433
+            $nopti_images_array = array_filter(array_map('trim', explode(',', $nopti_images)));
434
+            foreach ($nopti_images_array as $nopti_image) {
435
+                if (strpos($url, $nopti_image) !== false || (('' !== $tag && strpos($tag, $nopti_image) !== false))) {
436 436
                     return false;
437 437
                 }
438 438
             }
@@ -440,13 +440,13 @@  discard block
 block discarded – undo
440 440
         return true;
441 441
     }
442 442
 
443
-    private function build_imgopt_url( $orig_url, $width = 0, $height = 0 )
443
+    private function build_imgopt_url($orig_url, $width = 0, $height = 0)
444 444
     {
445 445
         // sanitize width and height.
446
-        if ( strpos( $width, '%' ) !== false ) {
446
+        if (strpos($width, '%') !== false) {
447 447
             $width = 0;
448 448
         }
449
-        if ( strpos( $height, '%' ) !== false ) {
449
+        if (strpos($height, '%') !== false) {
450 450
             $height = 0;
451 451
         }
452 452
         $width  = (int) $width;
@@ -460,52 +460,52 @@  discard block
 block discarded – undo
460 460
         );
461 461
 
462 462
         // If filter modified the url, return that.
463
-        if ( $filtered_url !== $orig_url ) {
463
+        if ($filtered_url !== $orig_url) {
464 464
             return $filtered_url;
465 465
         }
466 466
 
467
-        $normalized_url = $this->normalize_img_url( $orig_url );
467
+        $normalized_url = $this->normalize_img_url($orig_url);
468 468
 
469 469
         // if the URL is ascii we check if we have a real URL with filter_var (which only works on ascii url's) and if not a real URL we return the original one.
470
-        if ( apply_filters( 'autoptimize_filter_imgopt_check_normalized_url', true ) && ! preg_match( '/[^\x20-\x7e]/', $normalized_url ) && false === filter_var( $normalized_url, FILTER_VALIDATE_URL ) ) {
470
+        if (apply_filters('autoptimize_filter_imgopt_check_normalized_url', true) && !preg_match('/[^\x20-\x7e]/', $normalized_url) && false === filter_var($normalized_url, FILTER_VALIDATE_URL)) {
471 471
             return $orig_url;
472 472
         }
473 473
 
474 474
         $imgopt_base_url = $this->get_imgopt_base_url();
475 475
         $imgopt_size     = '';
476 476
 
477
-        if ( $width && 0 !== $width ) {
478
-            $imgopt_size = ',w_' . $width;
477
+        if ($width && 0 !== $width) {
478
+            $imgopt_size = ',w_'.$width;
479 479
         }
480 480
 
481
-        if ( $height && 0 !== $height ) {
482
-            $imgopt_size .= ',h_' . $height;
481
+        if ($height && 0 !== $height) {
482
+            $imgopt_size .= ',h_'.$height;
483 483
         }
484 484
 
485
-        $url = $imgopt_base_url . $imgopt_size . '/' . $normalized_url;
485
+        $url = $imgopt_base_url.$imgopt_size.'/'.$normalized_url;
486 486
 
487 487
         return $url;
488 488
     }
489 489
 
490
-    public function replace_data_thumbs( $matches )
490
+    public function replace_data_thumbs($matches)
491 491
     {
492
-        return $this->replace_img_callback( $matches, 150, 150 );
492
+        return $this->replace_img_callback($matches, 150, 150);
493 493
     }
494 494
 
495
-    public function replace_img_callback( $matches, $width = 0, $height = 0 )
495
+    public function replace_img_callback($matches, $width = 0, $height = 0)
496 496
     {
497
-        $_normalized_img_url = $this->normalize_img_url( $matches[1] );
498
-        if ( $this->can_optimize_image( $matches[1], $matches[0] ) ) {
499
-            return str_replace( $matches[1], $this->build_imgopt_url( $_normalized_img_url, $width, $height ), $matches[0] );
497
+        $_normalized_img_url = $this->normalize_img_url($matches[1]);
498
+        if ($this->can_optimize_image($matches[1], $matches[0])) {
499
+            return str_replace($matches[1], $this->build_imgopt_url($_normalized_img_url, $width, $height), $matches[0]);
500 500
         } else {
501 501
             return $matches[0];
502 502
         }
503 503
     }
504 504
 
505
-    public function replace_icon_callback( $matches )
505
+    public function replace_icon_callback($matches)
506 506
     {
507
-        if ( array_key_exists( '2', $matches ) ) {
508
-            $sizes  = explode( 'x', $matches[2] );
507
+        if (array_key_exists('2', $matches)) {
508
+            $sizes  = explode('x', $matches[2]);
509 509
             $width  = $sizes[0];
510 510
             $height = $sizes[1];
511 511
         } else {
@@ -514,14 +514,14 @@  discard block
 block discarded – undo
514 514
         }
515 515
 
516 516
         // make sure we're not trying to optimize a *.ico file
517
-        if ( strpos( $matches[1], '.ico' ) === false ) {
518
-            return $this->replace_img_callback( $matches, $width, $height );
517
+        if (strpos($matches[1], '.ico') === false) {
518
+            return $this->replace_img_callback($matches, $width, $height);
519 519
         } else {
520 520
             return $matches[0];
521 521
         }
522 522
     }
523 523
 
524
-    public function filter_optimize_images( $in, $testing = false )
524
+    public function filter_optimize_images($in, $testing = false)
525 525
     {
526 526
         /*
527 527
          * potential future functional improvements:
@@ -531,7 +531,7 @@  discard block
 block discarded – undo
531 531
         $to_replace = array();
532 532
 
533 533
         // hide noscript tags to avoid nesting noscript tags (as lazyloaded images add noscript).
534
-        if ( $this->should_lazyload() ) {
534
+        if ($this->should_lazyload()) {
535 535
             $in = autoptimizeBase::replace_contents_with_marker_if_exists(
536 536
                 'SCRIPT',
537 537
                 '<script',
@@ -541,165 +541,165 @@  discard block
 block discarded – undo
541 541
         }
542 542
 
543 543
         // extract img tags.
544
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $in, $matches ) ) {
545
-            foreach ( $matches[0] as $tag ) {
546
-                $tag = apply_filters( 'autoptimize_filter_imgopt_tag_preopt' , $tag );
544
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $in, $matches)) {
545
+            foreach ($matches[0] as $tag) {
546
+                $tag = apply_filters('autoptimize_filter_imgopt_tag_preopt', $tag);
547 547
 
548 548
                 $orig_tag = $tag;
549 549
                 $imgopt_w = '';
550 550
                 $imgopt_h = '';
551 551
 
552 552
                 // first do (data-)srcsets.
553
-                if ( preg_match_all( '#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER ) ) {
554
-                    foreach ( $allsrcsets as $srcset ) {
553
+                if (preg_match_all('#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER)) {
554
+                    foreach ($allsrcsets as $srcset) {
555 555
                         $srcset      = $srcset[2];
556 556
                         $orig_srcset = $srcset;
557
-                        $srcsets     = explode( ',', $srcset );
558
-                        foreach ( $srcsets as $indiv_srcset ) {
559
-                            $indiv_srcset_parts = explode( ' ', trim( $indiv_srcset ) );
560
-                            if ( isset( $indiv_srcset_parts[1] ) && rtrim( $indiv_srcset_parts[1], 'w' ) !== $indiv_srcset_parts[1] ) {
561
-                                $imgopt_w = rtrim( $indiv_srcset_parts[1], 'w' );
557
+                        $srcsets     = explode(',', $srcset);
558
+                        foreach ($srcsets as $indiv_srcset) {
559
+                            $indiv_srcset_parts = explode(' ', trim($indiv_srcset));
560
+                            if (isset($indiv_srcset_parts[1]) && rtrim($indiv_srcset_parts[1], 'w') !== $indiv_srcset_parts[1]) {
561
+                                $imgopt_w = rtrim($indiv_srcset_parts[1], 'w');
562 562
                             }
563
-                            if ( $this->can_optimize_image( $indiv_srcset_parts[0], $tag, $testing ) ) {
564
-                                $imgopt_url = $this->build_imgopt_url( $indiv_srcset_parts[0], $imgopt_w, '' );
565
-                                $srcset     = str_replace( $indiv_srcset_parts[0], $imgopt_url, $srcset );
563
+                            if ($this->can_optimize_image($indiv_srcset_parts[0], $tag, $testing)) {
564
+                                $imgopt_url = $this->build_imgopt_url($indiv_srcset_parts[0], $imgopt_w, '');
565
+                                $srcset     = str_replace($indiv_srcset_parts[0], $imgopt_url, $srcset);
566 566
                             }
567 567
                         }
568
-                        $tag = str_replace( $orig_srcset, $srcset, $tag );
568
+                        $tag = str_replace($orig_srcset, $srcset, $tag);
569 569
                     }
570 570
                 }
571 571
 
572 572
                 // proceed with img src.
573 573
                 // get width and height and add to $imgopt_size.
574
-                $_get_size = $this->get_size_from_tag( $tag );
574
+                $_get_size = $this->get_size_from_tag($tag);
575 575
                 $imgopt_w  = $_get_size['width'];
576 576
                 $imgopt_h  = $_get_size['height'];
577 577
 
578 578
                 // then start replacing images src.
579
-                if ( preg_match_all( '#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER ) ) {
580
-                    foreach ( $urls as $url ) {
579
+                if (preg_match_all('#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER)) {
580
+                    foreach ($urls as $url) {
581 581
                         $full_src_orig = $url[0];
582 582
                         $url           = $url[1];
583
-                        if ( $this->can_optimize_image( $url, $tag, $testing ) ) {
584
-                            $imgopt_url      = $this->build_imgopt_url( $url, $imgopt_w, $imgopt_h );
585
-                            $full_imgopt_src = str_replace( $url, $imgopt_url, $full_src_orig );
586
-                            $tag             = str_replace( $full_src_orig, $full_imgopt_src, $tag );
583
+                        if ($this->can_optimize_image($url, $tag, $testing)) {
584
+                            $imgopt_url      = $this->build_imgopt_url($url, $imgopt_w, $imgopt_h);
585
+                            $full_imgopt_src = str_replace($url, $imgopt_url, $full_src_orig);
586
+                            $tag             = str_replace($full_src_orig, $full_imgopt_src, $tag);
587 587
                         }
588 588
                     }
589 589
                 }
590 590
 
591 591
                 // do lazyload stuff.
592
-                if ( $this->should_lazyload( $in ) && ! empty( $url ) ) {
592
+                if ($this->should_lazyload($in) && !empty($url)) {
593 593
                     // first do lpiq placeholder logic.
594
-                    if ( strpos( $url, $this->get_imgopt_host() ) === 0 ) {
594
+                    if (strpos($url, $this->get_imgopt_host()) === 0) {
595 595
                         // if all img src have been replaced during srcset, we have to extract the
596 596
                         // origin url from the imgopt one to be able to set a lqip placeholder.
597
-                        $_url = substr( $url, strpos( $url, '/http' ) + 1 );
597
+                        $_url = substr($url, strpos($url, '/http') + 1);
598 598
                     } else {
599 599
                         $_url = $url;
600 600
                     }
601 601
 
602
-                    $_url = $this->normalize_img_url( $_url );
602
+                    $_url = $this->normalize_img_url($_url);
603 603
 
604 604
                     $placeholder = '';
605
-                    if ( $this->can_optimize_image( $_url, $tag ) && apply_filters( 'autoptimize_filter_imgopt_lazyload_dolqip', true, $_url ) ) {
605
+                    if ($this->can_optimize_image($_url, $tag) && apply_filters('autoptimize_filter_imgopt_lazyload_dolqip', true, $_url)) {
606 606
                         $lqip_w = '';
607 607
                         $lqip_h = '';
608
-                        if ( isset( $imgopt_w ) && ! empty( $imgopt_w ) ) {
609
-                            $lqip_w = ',w_' . $imgopt_w;
608
+                        if (isset($imgopt_w) && !empty($imgopt_w)) {
609
+                            $lqip_w = ',w_'.$imgopt_w;
610 610
                         }
611
-                        if ( isset( $imgopt_h ) && ! empty( $imgopt_h ) ) {
612
-                            $lqip_h = ',h_' . $imgopt_h;
611
+                        if (isset($imgopt_h) && !empty($imgopt_h)) {
612
+                            $lqip_h = ',h_'.$imgopt_h;
613 613
                         }
614
-                        $placeholder = $this->get_imgopt_host() . 'client/q_lqip,ret_wait' . $lqip_w . $lqip_h . '/' . $_url;
614
+                        $placeholder = $this->get_imgopt_host().'client/q_lqip,ret_wait'.$lqip_w.$lqip_h.'/'.$_url;
615 615
                     }
616 616
                     // then call add_lazyload-function with lpiq placeholder if set.
617
-                    $tag = $this->add_lazyload( $tag, $placeholder );
617
+                    $tag = $this->add_lazyload($tag, $placeholder);
618 618
                 }
619 619
 
620
-                $tag = apply_filters( 'autoptimize_filter_imgopt_tag_postopt' , $tag );
620
+                $tag = apply_filters('autoptimize_filter_imgopt_tag_postopt', $tag);
621 621
 
622 622
                 // and add tag to array for later replacement.
623
-                if ( $tag !== $orig_tag ) {
624
-                    $to_replace[ $orig_tag ] = $tag;
623
+                if ($tag !== $orig_tag) {
624
+                    $to_replace[$orig_tag] = $tag;
625 625
                 }
626 626
             }
627 627
         }
628 628
 
629 629
         // and replace all.
630
-        $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $in );
630
+        $out = str_replace(array_keys($to_replace), array_values($to_replace), $in);
631 631
 
632 632
         // img thumbnails in e.g. woocommerce.
633
-        if ( strpos( $out, 'data-thumb' ) !== false && apply_filters( 'autoptimize_filter_imgopt_datathumbs', true ) ) {
633
+        if (strpos($out, 'data-thumb') !== false && apply_filters('autoptimize_filter_imgopt_datathumbs', true)) {
634 634
             $out = preg_replace_callback(
635 635
                 '/\<div(?:[^>]?)\sdata-thumb\=(?:\"|\')(.+?)(?:\"|\')(?:[^>]*)?\>/s',
636
-                array( $this, 'replace_data_thumbs' ),
636
+                array($this, 'replace_data_thumbs'),
637 637
                 $out
638 638
             );
639 639
         }
640 640
 
641 641
         // background-image in inline style.
642
-        if ( strpos( $out, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) {
642
+        if (strpos($out, 'background-image:') !== false && apply_filters('autoptimize_filter_imgopt_backgroundimages', true)) {
643 643
             $out = preg_replace_callback(
644 644
                 '/style=(?:"|\')[^<>]*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/',
645
-                array( $this, 'replace_img_callback' ),
645
+                array($this, 'replace_img_callback'),
646 646
                 $out
647 647
             );
648 648
         }
649 649
 
650 650
         // act on icon links.
651
-        if ( ( strpos( $out, '<link rel="icon"' ) !== false || ( strpos( $out, "<link rel='icon'" ) !== false ) ) && apply_filters( 'autoptimize_filter_imgopt_linkicon', true ) ) {
651
+        if ((strpos($out, '<link rel="icon"') !== false || (strpos($out, "<link rel='icon'") !== false)) && apply_filters('autoptimize_filter_imgopt_linkicon', true)) {
652 652
             $out = preg_replace_callback(
653 653
                 '/<link\srel=(?:"|\')(?:apple-touch-)?icon(?:"|\').*\shref=(?:"|\')(.*)(?:"|\')(?:\ssizes=(?:"|\')(\d*x\d*)(?:"|\'))?\s\/>/Um',
654
-                array( $this, 'replace_icon_callback' ),
654
+                array($this, 'replace_icon_callback'),
655 655
                 $out
656 656
             );
657 657
         }
658 658
 
659 659
         // lazyload: restore noscript tags + lazyload picture source tags and bgimage.
660
-        if ( $this->should_lazyload() ) {
660
+        if ($this->should_lazyload()) {
661 661
             $out = autoptimizeBase::restore_marked_content(
662 662
                 'SCRIPT',
663 663
                 $out
664 664
             );
665 665
 
666
-            $out = $this->process_picture_tag( $out, true, true );
667
-            $out = $this->process_bgimage( $out );
666
+            $out = $this->process_picture_tag($out, true, true);
667
+            $out = $this->process_bgimage($out);
668 668
         } else {
669
-            $out = $this->process_picture_tag( $out, true, false );
669
+            $out = $this->process_picture_tag($out, true, false);
670 670
         }
671 671
 
672 672
         return $out;
673 673
     }
674 674
 
675
-    public function get_size_from_tag( $tag ) {
675
+    public function get_size_from_tag($tag) {
676 676
         // reusable function to extract widht and height from an image tag
677 677
         // enforcing a filterable maximum width and height (default 4999X4999).
678 678
         $width  = '';
679 679
         $height = '';
680 680
 
681
-        if ( preg_match( '#width=("|\')(.*)("|\')#Usmi', $tag, $_width ) ) {
682
-            if ( strpos( $_width[2], '%' ) === false ) {
681
+        if (preg_match('#width=("|\')(.*)("|\')#Usmi', $tag, $_width)) {
682
+            if (strpos($_width[2], '%') === false) {
683 683
                 $width = (int) $_width[2];
684 684
             }
685 685
         }
686
-        if ( preg_match( '#height=("|\')(.*)("|\')#Usmi', $tag, $_height ) ) {
687
-            if ( strpos( $_height[2], '%' ) === false ) {
686
+        if (preg_match('#height=("|\')(.*)("|\')#Usmi', $tag, $_height)) {
687
+            if (strpos($_height[2], '%') === false) {
688 688
                 $height = (int) $_height[2];
689 689
             }
690 690
         }
691 691
 
692 692
         // check for and enforce (filterable) max sizes.
693
-        $_max_width = apply_filters( 'autoptimize_filter_imgopt_max_width', 4999 );
694
-        if ( $width > $_max_width ) {
693
+        $_max_width = apply_filters('autoptimize_filter_imgopt_max_width', 4999);
694
+        if ($width > $_max_width) {
695 695
             $_width = $_max_width;
696
-            $height = $_width / $width * $height;
696
+            $height = $_width/$width*$height;
697 697
             $width  = $_width;
698 698
         }
699
-        $_max_height = apply_filters( 'autoptimize_filter_imgopt_max_height', 4999 );
700
-        if ( $height > $_max_height ) {
699
+        $_max_height = apply_filters('autoptimize_filter_imgopt_max_height', 4999);
700
+        if ($height > $_max_height) {
701 701
             $_height = $_max_height;
702
-            $width   = $_height / $height * $width;
702
+            $width   = $_height/$height*$width;
703 703
             $height  = $_height;
704 704
         }
705 705
 
@@ -718,26 +718,26 @@  discard block
 block discarded – undo
718 718
         return $self->should_lazyload();
719 719
     }
720 720
 
721
-    public function should_lazyload( $context = '' ) {
722
-        if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_3'] ) && false === $this->check_nolazy() ) {
721
+    public function should_lazyload($context = '') {
722
+        if (!empty($this->options['autoptimize_imgopt_checkbox_field_3']) && false === $this->check_nolazy()) {
723 723
             $lazyload_return = true;
724 724
         } else {
725 725
             $lazyload_return = false;
726 726
         }
727
-        $lazyload_return = apply_filters( 'autoptimize_filter_imgopt_should_lazyload', $lazyload_return, $context );
727
+        $lazyload_return = apply_filters('autoptimize_filter_imgopt_should_lazyload', $lazyload_return, $context);
728 728
 
729 729
         return $lazyload_return;
730 730
     }
731 731
 
732 732
     public function check_nolazy() {
733
-        if ( array_key_exists( 'ao_nolazy', $_GET ) && '1' === $_GET['ao_nolazy'] ) {
733
+        if (array_key_exists('ao_nolazy', $_GET) && '1' === $_GET['ao_nolazy']) {
734 734
             return true;
735 735
         } else {
736 736
             return false;
737 737
         }
738 738
     }
739 739
 
740
-    public function filter_lazyload_images( $in )
740
+    public function filter_lazyload_images($in)
741 741
     {
742 742
         // only used is image optimization is NOT active but lazyload is.
743 743
         $to_replace = array();
@@ -751,20 +751,20 @@  discard block
 block discarded – undo
751 751
         );
752 752
 
753 753
         // extract img tags and add lazyload attribs.
754
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $out, $matches ) ) {
755
-            foreach ( $matches[0] as $tag ) {
756
-                if ( $this->should_lazyload( $out ) ) {
757
-                    $to_replace[ $tag ] = $this->add_lazyload( $tag );
754
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $out, $matches)) {
755
+            foreach ($matches[0] as $tag) {
756
+                if ($this->should_lazyload($out)) {
757
+                    $to_replace[$tag] = $this->add_lazyload($tag);
758 758
                 }
759 759
             }
760
-            $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $out );
760
+            $out = str_replace(array_keys($to_replace), array_values($to_replace), $out);
761 761
         }
762 762
 
763 763
         // and also lazyload picture tag.
764
-        $out = $this->process_picture_tag( $out, false, true );
764
+        $out = $this->process_picture_tag($out, false, true);
765 765
 
766 766
         // and inline style blocks with background-image.
767
-        $out = $this->process_bgimage( $out );
767
+        $out = $this->process_bgimage($out);
768 768
 
769 769
         // restore noscript tags.
770 770
         $out = autoptimizeBase::restore_marked_content(
@@ -775,92 +775,92 @@  discard block
 block discarded – undo
775 775
         return $out;
776 776
     }
777 777
 
778
-    public function add_lazyload( $tag, $placeholder = '' ) {
778
+    public function add_lazyload($tag, $placeholder = '') {
779 779
         // adds actual lazyload-attributes to an image node.
780 780
         $this->lazyload_counter++;
781 781
 
782 782
         $_lazyload_from_nth = '';
783
-        if ( array_key_exists( 'autoptimize_imgopt_number_field_7', $this->options ) ) {
783
+        if (array_key_exists('autoptimize_imgopt_number_field_7', $this->options)) {
784 784
             $_lazyload_from_nth = $this->options['autoptimize_imgopt_number_field_7'];
785 785
         }
786
-        $_lazyload_from_nth = apply_filters( 'autoptimize_filter_imgopt_lazyload_from_nth', $_lazyload_from_nth );
786
+        $_lazyload_from_nth = apply_filters('autoptimize_filter_imgopt_lazyload_from_nth', $_lazyload_from_nth);
787 787
 
788
-        if ( str_ireplace( $this->get_lazyload_exclusions(), '', $tag ) === $tag && $this->lazyload_counter >= $_lazyload_from_nth ) {
789
-            $tag = $this->maybe_fix_missing_quotes( $tag );
788
+        if (str_ireplace($this->get_lazyload_exclusions(), '', $tag) === $tag && $this->lazyload_counter >= $_lazyload_from_nth) {
789
+            $tag = $this->maybe_fix_missing_quotes($tag);
790 790
 
791 791
             // store original tag for use in noscript version.
792
-            $noscript_tag = '<noscript>' . autoptimizeUtils::remove_id_from_node( $tag ) . '</noscript>';
792
+            $noscript_tag = '<noscript>'.autoptimizeUtils::remove_id_from_node($tag).'</noscript>';
793 793
 
794
-            $lazyload_class = apply_filters( 'autoptimize_filter_imgopt_lazyload_class', 'lazyload' );
794
+            $lazyload_class = apply_filters('autoptimize_filter_imgopt_lazyload_class', 'lazyload');
795 795
 
796 796
             // insert lazyload class.
797
-            $tag = $this->inject_classes_in_tag( $tag, "$lazyload_class " );
797
+            $tag = $this->inject_classes_in_tag($tag, "$lazyload_class ");
798 798
 
799
-            if ( ! $placeholder || empty( $placeholder ) ) {
799
+            if (!$placeholder || empty($placeholder)) {
800 800
                 // get image width & heigth for placeholder fun (and to prevent content reflow).
801
-                $_get_size = $this->get_size_from_tag( $tag );
801
+                $_get_size = $this->get_size_from_tag($tag);
802 802
                 $width     = $_get_size['width'];
803 803
                 $height    = $_get_size['height'];
804
-                if ( false === $width || empty( $width ) ) {
804
+                if (false === $width || empty($width)) {
805 805
                     $width = 210; // default width for SVG placeholder.
806 806
                 }
807
-                if ( false === $height || empty( $height ) ) {
808
-                    $height = $width / 3 * 2; // if no height, base it on width using the 3/2 aspect ratio.
807
+                if (false === $height || empty($height)) {
808
+                    $height = $width/3*2; // if no height, base it on width using the 3/2 aspect ratio.
809 809
                 }
810 810
 
811 811
                 // insert the actual lazyload stuff.
812 812
                 // see https://css-tricks.com/preventing-content-reflow-from-lazy-loaded-images/ for great read on why we're using empty svg's.
813
-                $placeholder = apply_filters( 'autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder( $width, $height ) );
813
+                $placeholder = apply_filters('autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder($width, $height));
814 814
             }
815 815
 
816
-            $tag = preg_replace( '/(\s)src=/', ' src=\'' . $placeholder . '\' data-src=', $tag );
817
-            $tag = preg_replace( '/(\s)srcset=/', ' data-srcset=', $tag );
816
+            $tag = preg_replace('/(\s)src=/', ' src=\''.$placeholder.'\' data-src=', $tag);
817
+            $tag = preg_replace('/(\s)srcset=/', ' data-srcset=', $tag);
818 818
 
819 819
             // move sizes to data-sizes unless filter says no.
820
-            if ( apply_filters( 'autoptimize_filter_imgopt_lazyload_move_sizes', true ) ) {
821
-                $tag = str_replace( ' sizes=', ' data-sizes=', $tag );
820
+            if (apply_filters('autoptimize_filter_imgopt_lazyload_move_sizes', true)) {
821
+                $tag = str_replace(' sizes=', ' data-sizes=', $tag);
822 822
             }
823 823
 
824 824
             // add the noscript-tag from earlier.
825
-            $tag = $noscript_tag . $tag;
826
-            $tag = apply_filters( 'autoptimize_filter_imgopt_lazyloaded_img', $tag );
825
+            $tag = $noscript_tag.$tag;
826
+            $tag = apply_filters('autoptimize_filter_imgopt_lazyloaded_img', $tag);
827 827
         }
828 828
 
829 829
         return $tag;
830 830
     }
831 831
 
832 832
     public function add_lazyload_js_footer() {
833
-        if ( false === autoptimizeMain::should_buffer() ) {
833
+        if (false === autoptimizeMain::should_buffer()) {
834 834
             return;
835 835
         }
836 836
 
837 837
         // The JS will by default be excluded form autoptimization but this can be changed with a filter.
838 838
         $noptimize_flag = '';
839
-        if ( apply_filters( 'autoptimize_filter_imgopt_lazyload_js_noptimize', true ) ) {
839
+        if (apply_filters('autoptimize_filter_imgopt_lazyload_js_noptimize', true)) {
840 840
             $noptimize_flag = ' data-noptimize="1"';
841 841
         }
842 842
 
843
-        $lazysizes_js = plugins_url( 'external/js/lazysizes.min.js?ao_version=' . AUTOPTIMIZE_PLUGIN_VERSION, __FILE__ );
843
+        $lazysizes_js = plugins_url('external/js/lazysizes.min.js?ao_version='.AUTOPTIMIZE_PLUGIN_VERSION, __FILE__);
844 844
         $cdn_url      = $this->get_cdn_url();
845
-        if ( ! empty( $cdn_url ) ) {
846
-            $cdn_url      = rtrim( $cdn_url, '/' );
847
-            $lazysizes_js = str_replace( AUTOPTIMIZE_WP_SITE_URL, $cdn_url, $lazysizes_js );
845
+        if (!empty($cdn_url)) {
846
+            $cdn_url      = rtrim($cdn_url, '/');
847
+            $lazysizes_js = str_replace(AUTOPTIMIZE_WP_SITE_URL, $cdn_url, $lazysizes_js);
848 848
         }
849 849
 
850 850
         $type_js = '';
851
-        if ( apply_filters( 'autoptimize_filter_cssjs_addtype', false ) ) {
851
+        if (apply_filters('autoptimize_filter_cssjs_addtype', false)) {
852 852
             $type_js = ' type="text/javascript"';
853 853
         }
854 854
 
855 855
         // Adds lazyload CSS & JS to footer, using echo because wp_enqueue_script seems not to support pushing attributes (async).
856
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_cssoutput', '<noscript><style>.lazyload{display:none;}</style></noscript>' );
857
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_jsconfig', '<script' . $type_js . $noptimize_flag . '>window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script>' );
858
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_js', '<script async' . $type_js . $noptimize_flag . ' src=\'' . $lazysizes_js . '\'></script>' );
856
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_cssoutput', '<noscript><style>.lazyload{display:none;}</style></noscript>');
857
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_jsconfig', '<script'.$type_js.$noptimize_flag.'>window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script>');
858
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_js', '<script async'.$type_js.$noptimize_flag.' src=\''.$lazysizes_js.'\'></script>');
859 859
 
860 860
         // And add webp detection and loading JS.
861
-        if ( $this->should_ngimg() ) {
861
+        if ($this->should_ngimg()) {
862 862
             // Add AVIF code, can be disabled for now to only do webp.
863
-            if ( apply_filters( 'autoptimize_filter_imgopt_do_avif', true ) ) {
863
+            if (apply_filters('autoptimize_filter_imgopt_do_avif', true)) {
864 864
                 $_ngimg_detect = 'function c_img(a,b){src="avif"==b?"data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABoAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACJtZGF0EgAKCBgADsgQEAwgMgwf8AAAWAAAAACvJ+o=":"data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==";var c=new Image;c.onload=function(){var d=0<c.width&&0<c.height;a(d,b)},c.onerror=function(){a(!1,b)},c.src=src}function s_img(a,b){w=window,"avif"==b?!1==a?c_img(s_img,"webp"):w.ngImg="avif":!1==a?w.ngImg=!1:w.ngImg="webp"}c_img(s_img,"avif");';
865 865
                 $_ngimg_load   = 'document.addEventListener("lazybeforeunveil",function({target:a}){window.ngImg&&["data-src","data-srcset"].forEach(function(b){attr=a.getAttribute(b),null!==attr&&-1==attr.indexOf("/client/to_")&&a.setAttribute(b,attr.replace(/\/client\//,"/client/to_"+window.ngImg+","))})});';
866 866
             } else {
@@ -868,8 +868,8 @@  discard block
 block discarded – undo
868 868
                 $_ngimg_load   = "document.addEventListener('lazybeforeunveil',function({target:b}){window.supportsWebP&&['data-src','data-srcset'].forEach(function(c){attr=b.getAttribute(c),null!==attr&&-1==attr.indexOf('/client/to_webp')&&b.setAttribute(c,attr.replace(/\/client\//,'/client/to_webp,'))})});";
869 869
             }
870 870
             // Keeping autoptimize_filter_imgopt_webp_js filter for now, but it is deprecated as not only for webp any more.
871
-            $_ngimg_output = apply_filters( 'autoptimize_filter_imgopt_webp_js', '<script' . $type_js . $noptimize_flag . '>' . $_ngimg_detect . $_ngimg_load . '</script>' );
872
-            echo apply_filters( 'autoptimize_filter_imgopt_ngimg_js', $_ngimg_output );
871
+            $_ngimg_output = apply_filters('autoptimize_filter_imgopt_webp_js', '<script'.$type_js.$noptimize_flag.'>'.$_ngimg_detect.$_ngimg_load.'</script>');
872
+            echo apply_filters('autoptimize_filter_imgopt_ngimg_js', $_ngimg_output);
873 873
         }
874 874
     }
875 875
 
@@ -877,10 +877,10 @@  discard block
 block discarded – undo
877 877
         // getting CDN url here to avoid having to make bigger changes to autoptimizeBase.
878 878
         static $cdn_url = null;
879 879
 
880
-        if ( null === $cdn_url ) {
881
-            $cdn_url = autoptimizeOptionWrapper::get_option( 'autoptimize_cdn_url', '' );
882
-            $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed( $cdn_url );
883
-            $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', $cdn_url );
880
+        if (null === $cdn_url) {
881
+            $cdn_url = autoptimizeOptionWrapper::get_option('autoptimize_cdn_url', '');
882
+            $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed($cdn_url);
883
+            $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', $cdn_url);
884 884
         }
885 885
 
886 886
         return $cdn_url;
@@ -890,47 +890,47 @@  discard block
 block discarded – undo
890 890
         // returns array of strings that if found in an <img tag will stop the img from being lazy-loaded.
891 891
         static $exclude_lazyload_array = null;
892 892
 
893
-        if ( null === $exclude_lazyload_array ) {
893
+        if (null === $exclude_lazyload_array) {
894 894
             $options = $this->options;
895 895
 
896 896
             // set default exclusions.
897
-            $exclude_lazyload_array = array( 'skip-lazy', 'data-no-lazy', 'notlazy', 'data-src', 'data-srcset', 'data:image/', 'data-lazyload', 'rev-slidebg', 'loading="eager"' );
897
+            $exclude_lazyload_array = array('skip-lazy', 'data-no-lazy', 'notlazy', 'data-src', 'data-srcset', 'data:image/', 'data-lazyload', 'rev-slidebg', 'loading="eager"');
898 898
 
899 899
             // add from setting.
900
-            if ( array_key_exists( 'autoptimize_imgopt_text_field_5', $options ) ) {
900
+            if (array_key_exists('autoptimize_imgopt_text_field_5', $options)) {
901 901
                 $exclude_lazyload_option = $options['autoptimize_imgopt_text_field_5'];
902
-                if ( ! empty( $exclude_lazyload_option ) ) {
903
-                    $exclude_lazyload_array = array_merge( $exclude_lazyload_array, array_filter( array_map( 'trim', explode( ',', $options['autoptimize_imgopt_text_field_5'] ) ) ) );
902
+                if (!empty($exclude_lazyload_option)) {
903
+                    $exclude_lazyload_array = array_merge($exclude_lazyload_array, array_filter(array_map('trim', explode(',', $options['autoptimize_imgopt_text_field_5']))));
904 904
                 }
905 905
             }
906 906
 
907 907
             // and filter for developer-initiated changes.
908
-            $exclude_lazyload_array = apply_filters( 'autoptimize_filter_imgopt_lazyload_exclude_array', $exclude_lazyload_array );
908
+            $exclude_lazyload_array = apply_filters('autoptimize_filter_imgopt_lazyload_exclude_array', $exclude_lazyload_array);
909 909
         }
910 910
 
911 911
         return $exclude_lazyload_array;
912 912
     }
913 913
 
914
-    public function inject_classes_in_tag( $tag, $target_class ) {
915
-        if ( strpos( $tag, 'class=' ) !== false ) {
916
-            $tag = preg_replace( '/(\sclass\s?=\s?("|\'))/', '$1' . $target_class, $tag );
914
+    public function inject_classes_in_tag($tag, $target_class) {
915
+        if (strpos($tag, 'class=') !== false) {
916
+            $tag = preg_replace('/(\sclass\s?=\s?("|\'))/', '$1'.$target_class, $tag);
917 917
         } else {
918
-            $tag = preg_replace( '/(<[a-zA-Z]*)\s/', '$1 class="' . trim( $target_class ) . '" ', $tag );
918
+            $tag = preg_replace('/(<[a-zA-Z]*)\s/', '$1 class="'.trim($target_class).'" ', $tag);
919 919
         }
920 920
 
921 921
         return $tag;
922 922
     }
923 923
 
924
-    public function get_default_lazyload_placeholder( $imgopt_w, $imgopt_h ) {
925
-        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';
924
+    public function get_default_lazyload_placeholder($imgopt_w, $imgopt_h) {
925
+        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';
926 926
     }
927 927
 
928 928
     public function should_ngimg() {
929 929
         static $ngimg_return = null;
930 930
 
931
-        if ( is_null( $ngimg_return ) ) {
931
+        if (is_null($ngimg_return)) {
932 932
             // webp only works if imgopt and lazyload are also active.
933
-            if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_4'] ) && ! empty( $this->options['autoptimize_imgopt_checkbox_field_3'] ) && $this->imgopt_active() ) {
933
+            if (!empty($this->options['autoptimize_imgopt_checkbox_field_4']) && !empty($this->options['autoptimize_imgopt_checkbox_field_3']) && $this->imgopt_active()) {
934 934
                 $ngimg_return = true;
935 935
             } else {
936 936
                 $ngimg_return = false;
@@ -940,9 +940,9 @@  discard block
 block discarded – undo
940 940
         return $ngimg_return;
941 941
     }
942 942
 
943
-    public function process_picture_tag( $in, $imgopt = false, $lazy = false ) {
943
+    public function process_picture_tag($in, $imgopt = false, $lazy = false) {
944 944
         // check if "<picture" is present and if filter allows us to process <picture>.
945
-        if ( strpos( $in, '<picture' ) === false || apply_filters( 'autoptimize_filter_imgopt_dopicture', true ) === false ) {
945
+        if (strpos($in, '<picture') === false || apply_filters('autoptimize_filter_imgopt_dopicture', true) === false) {
946 946
             return $in;
947 947
         }
948 948
 
@@ -950,37 +950,37 @@  discard block
 block discarded – undo
950 950
         $to_replace_pict = array();
951 951
 
952 952
         // extract and process each picture-node.
953
-        preg_match_all( '#<picture.*</picture>#Usmi', $in, $_pictures, PREG_SET_ORDER );
954
-        foreach ( $_pictures as $_picture ) {
955
-            $_picture = $this->maybe_fix_missing_quotes( $_picture );
956
-            if ( strpos( $_picture[0], '<source ' ) !== false && preg_match_all( '#<source .*srcset=(?:"|\')(?!data)(.*)(?:"|\').*>#Usmi', $_picture[0], $_sources, PREG_SET_ORDER ) !== false ) {
957
-                foreach ( $_sources as $_source ) {
953
+        preg_match_all('#<picture.*</picture>#Usmi', $in, $_pictures, PREG_SET_ORDER);
954
+        foreach ($_pictures as $_picture) {
955
+            $_picture = $this->maybe_fix_missing_quotes($_picture);
956
+            if (strpos($_picture[0], '<source ') !== false && preg_match_all('#<source .*srcset=(?:"|\')(?!data)(.*)(?:"|\').*>#Usmi', $_picture[0], $_sources, PREG_SET_ORDER) !== false) {
957
+                foreach ($_sources as $_source) {
958 958
                     $_picture_replacement = $_source[0];
959 959
 
960 960
                     // should we optimize the image?
961
-                    if ( $imgopt && $this->can_optimize_image( $_source[1], $_picture[0] ) ) {
962
-                        $_picture_replacement = str_replace( $_source[1], $this->build_imgopt_url( $_source[1] ), $_picture_replacement );
961
+                    if ($imgopt && $this->can_optimize_image($_source[1], $_picture[0])) {
962
+                        $_picture_replacement = str_replace($_source[1], $this->build_imgopt_url($_source[1]), $_picture_replacement);
963 963
                     }
964 964
                     // should we lazy-load?
965
-                    if ( $lazy && $this->should_lazyload() && str_ireplace( $_exclusions, '', $_picture_replacement ) === $_picture_replacement ) {
966
-                        $_picture_replacement = str_replace( ' srcset=', ' data-srcset=', $_picture_replacement );
965
+                    if ($lazy && $this->should_lazyload() && str_ireplace($_exclusions, '', $_picture_replacement) === $_picture_replacement) {
966
+                        $_picture_replacement = str_replace(' srcset=', ' data-srcset=', $_picture_replacement);
967 967
                     }
968
-                    $to_replace_pict[ $_source[0] ] = $_picture_replacement;
968
+                    $to_replace_pict[$_source[0]] = $_picture_replacement;
969 969
                 }
970 970
             }
971 971
         }
972 972
 
973 973
         // and return the fully procesed $in.
974
-        $out = str_replace( array_keys( $to_replace_pict ), array_values( $to_replace_pict ), $in );
974
+        $out = str_replace(array_keys($to_replace_pict), array_values($to_replace_pict), $in);
975 975
 
976 976
         return $out;
977 977
     }
978 978
 
979
-    public function process_bgimage( $in ) {
980
-        if ( strpos( $in, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_lazyload_backgroundimages', true ) ) {
979
+    public function process_bgimage($in) {
980
+        if (strpos($in, 'background-image:') !== false && apply_filters('autoptimize_filter_imgopt_lazyload_backgroundimages', true)) {
981 981
             $out = preg_replace_callback(
982 982
                 '/(<(?:article|aside|body|div|footer|header|p|section|span|table)[^>]*)\sstyle=(?:"|\')[^<>]*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)[^>]*/',
983
-                array( $this, 'lazyload_bgimg_callback' ),
983
+                array($this, 'lazyload_bgimg_callback'),
984 984
                 $in
985 985
             );
986 986
             return $out;
@@ -988,34 +988,34 @@  discard block
 block discarded – undo
988 988
         return $in;
989 989
     }
990 990
 
991
-    public function lazyload_bgimg_callback( $matches ) {
992
-        if ( str_ireplace( $this->get_lazyload_exclusions(), '', $matches[0] ) === $matches[0] ) {
991
+    public function lazyload_bgimg_callback($matches) {
992
+        if (str_ireplace($this->get_lazyload_exclusions(), '', $matches[0]) === $matches[0]) {
993 993
             // get placeholder & lazyload class strings.
994
-            $placeholder    = apply_filters( 'autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder( 500, 300 ) );
995
-            $lazyload_class = apply_filters( 'autoptimize_filter_imgopt_lazyload_class', 'lazyload' );
994
+            $placeholder    = apply_filters('autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder(500, 300));
995
+            $lazyload_class = apply_filters('autoptimize_filter_imgopt_lazyload_class', 'lazyload');
996 996
             // replace background-image URL with SVG placeholder.
997
-            $out = str_replace( 'url(' . $matches[2], 'url(' . $placeholder, $matches[0] );
997
+            $out = str_replace('url('.$matches[2], 'url('.$placeholder, $matches[0]);
998 998
             // sanitize bgimg src for quote sillyness.
999
-            $bgimg_src = $this->fix_silly_bgimg_quotes( $matches[2] );
999
+            $bgimg_src = $this->fix_silly_bgimg_quotes($matches[2]);
1000 1000
             // add data-bg attribute with real background-image URL for lazyload to pick up.
1001
-            $out = str_replace( $matches[1], $matches[1] . ' data-bg="' . $bgimg_src . '"', $out );
1001
+            $out = str_replace($matches[1], $matches[1].' data-bg="'.$bgimg_src.'"', $out);
1002 1002
             // and finally add lazyload class to tag.
1003
-            $out = $this->inject_classes_in_tag( $out, "$lazyload_class " );
1003
+            $out = $this->inject_classes_in_tag($out, "$lazyload_class ");
1004 1004
             return $out;
1005 1005
         }
1006 1006
         return $matches[0];
1007 1007
     }
1008 1008
     
1009
-    public function fix_silly_bgimg_quotes( $tag_in ) {
1009
+    public function fix_silly_bgimg_quotes($tag_in) {
1010 1010
         // some themes/ pagebuilders wrap backgroundimages in HTML-encoded quotes (or linebreaks) which breaks imgopt/ lazyloading, this removes them.
1011
-        return trim( str_replace( array( "\r\n", '&quot;', '&#034;', '&apos;', '&#039;' ), '', $tag_in ) );
1011
+        return trim(str_replace(array("\r\n", '&quot;', '&#034;', '&apos;', '&#039;'), '', $tag_in));
1012 1012
     }
1013 1013
 
1014
-    public function maybe_fix_missing_quotes( $tag_in ) {
1014
+    public function maybe_fix_missing_quotes($tag_in) {
1015 1015
         // W3TC's Minify_HTML class removes quotes around attribute value, this re-adds them for the class and width/height attributes so we can lazyload properly.
1016
-        if ( file_exists( WP_PLUGIN_DIR . '/w3-total-cache/w3-total-cache.php' ) && class_exists( 'Minify_HTML' ) && apply_filters( 'autoptimize_filter_imgopt_fixquotes', true ) ) {
1017
-            $tag_out = preg_replace( '/class\s?=([^("|\')]*)(\s|>)/U', 'class=\'$1\'$2', $tag_in );
1018
-            $tag_out = preg_replace( '/\s(width|height)=(?:"|\')?([^\s"\'>]*)(?:"|\')?/', ' $1=\'$2\'', $tag_out );
1016
+        if (file_exists(WP_PLUGIN_DIR.'/w3-total-cache/w3-total-cache.php') && class_exists('Minify_HTML') && apply_filters('autoptimize_filter_imgopt_fixquotes', true)) {
1017
+            $tag_out = preg_replace('/class\s?=([^("|\')]*)(\s|>)/U', 'class=\'$1\'$2', $tag_in);
1018
+            $tag_out = preg_replace('/\s(width|height)=(?:"|\')?([^\s"\'>]*)(?:"|\')?/', ' $1=\'$2\'', $tag_out);
1019 1019
             return $tag_out;
1020 1020
         } else {
1021 1021
             return $tag_in;
@@ -1028,23 +1028,23 @@  discard block
 block discarded – undo
1028 1028
     public function imgopt_admin_menu()
1029 1029
     {
1030 1030
         // no acces if multisite and not network admin and no site config allowed.
1031
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
1031
+        if (autoptimizeConfig::should_show_menu_tabs()) {
1032 1032
             add_submenu_page(
1033 1033
                 null,
1034 1034
                 'autoptimize_imgopt',
1035 1035
                 'autoptimize_imgopt',
1036 1036
                 'manage_options',
1037 1037
                 'autoptimize_imgopt',
1038
-                array( $this, 'imgopt_options_page' )
1038
+                array($this, 'imgopt_options_page')
1039 1039
             );
1040 1040
         }
1041
-        register_setting( 'autoptimize_imgopt_settings', 'autoptimize_imgopt_settings' );
1041
+        register_setting('autoptimize_imgopt_settings', 'autoptimize_imgopt_settings');
1042 1042
     }
1043 1043
 
1044
-    public function add_imgopt_tab( $in )
1044
+    public function add_imgopt_tab($in)
1045 1045
     {
1046
-        if ( autoptimizeConfig::should_show_menu_tabs() ) {
1047
-            $in = array_merge( $in, array( 'autoptimize_imgopt' => __( 'Images', 'autoptimize' ) ) );
1046
+        if (autoptimizeConfig::should_show_menu_tabs()) {
1047
+            $in = array_merge($in, array('autoptimize_imgopt' => __('Images', 'autoptimize')));
1048 1048
         }
1049 1049
 
1050 1050
         return $in;
@@ -1053,8 +1053,8 @@  discard block
 block discarded – undo
1053 1053
     public function imgopt_options_page()
1054 1054
     {
1055 1055
         // Check querystring for "refreshCacheChecker" and call cachechecker if so.
1056
-        if ( array_key_exists( 'refreshImgProvStats', $_GET ) && 1 == $_GET['refreshImgProvStats'] ) {
1057
-            $this->query_img_provider_stats( true );
1056
+        if (array_key_exists('refreshImgProvStats', $_GET) && 1 == $_GET['refreshImgProvStats']) {
1057
+            $this->query_img_provider_stats(true);
1058 1058
         }
1059 1059
 
1060 1060
         $options       = $this->fetch_options();
@@ -1065,47 +1065,47 @@  discard block
 block discarded – undo
1065 1065
         #ao_settings_form .form-table th {font-weight: normal;}
1066 1066
         #autoptimize_imgopt_descr{font-size: 120%;}
1067 1067
     </style>
1068
-    <script>document.title = "Autoptimize: <?php _e( 'Images', 'autoptimize' ); ?> " + document.title;</script>
1068
+    <script>document.title = "Autoptimize: <?php _e('Images', 'autoptimize'); ?> " + document.title;</script>
1069 1069
     <div class="wrap">
1070
-    <h1><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?></h1>
1070
+    <h1><?php _e('Autoptimize Settings', 'autoptimize'); ?></h1>
1071 1071
         <?php echo autoptimizeConfig::ao_admin_tabs(); ?>
1072
-        <?php if ( 'down' === $options['availabilities']['extra_imgopt']['status'] ) { ?>
1072
+        <?php if ('down' === $options['availabilities']['extra_imgopt']['status']) { ?>
1073 1073
             <div class="notice-warning notice"><p>
1074 1074
             <?php
1075 1075
             // translators: "Autoptimize support forum" will appear in a "a href".
1076
-            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>' );
1076
+            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>');
1077 1077
             ?>
1078 1078
             </p></div>
1079 1079
         <?php } ?>
1080 1080
 
1081
-        <?php if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] && ! autoptimizeImages::instance()->launch_ok() ) { ?>
1081
+        <?php if ('launch' === $options['availabilities']['extra_imgopt']['status'] && !autoptimizeImages::instance()->launch_ok()) { ?>
1082 1082
             <div class="notice-warning notice"><p>
1083
-            <?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' ); ?>
1083
+            <?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'); ?>
1084 1084
             </p></div>
1085 1085
         <?php } ?>
1086 1086
 
1087
-        <?php if ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'get_active_modules' ) && in_array( 'photon', Jetpack::get_active_modules() ) ) { ?>
1087
+        <?php if (class_exists('Jetpack') && method_exists('Jetpack', 'get_active_modules') && in_array('photon', Jetpack::get_active_modules())) { ?>
1088 1088
             <div class="notice-warning notice"><p>
1089 1089
             <?php
1090 1090
             // translators: "disable  Jetpack's site accelerator for images" will appear in a "a href" linking to the jetpack settings page.
1091
-            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>' );
1091
+            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>');
1092 1092
             ?>
1093 1093
             </p></div>
1094 1094
         <?php } ?>
1095
-    <form id='ao_settings_form' action='<?php echo admin_url( 'options.php' ); ?>' method='post'>
1096
-        <?php settings_fields( 'autoptimize_imgopt_settings' ); ?>
1097
-        <h2><?php _e( 'Image optimization', 'autoptimize' ); ?></h2>
1098
-        <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 and AVIF support included!', 'autoptimize' ); ?></span>
1095
+    <form id='ao_settings_form' action='<?php echo admin_url('options.php'); ?>' method='post'>
1096
+        <?php settings_fields('autoptimize_imgopt_settings'); ?>
1097
+        <h2><?php _e('Image optimization', 'autoptimize'); ?></h2>
1098
+        <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 and AVIF support included!', 'autoptimize'); ?></span>
1099 1099
         <table class="form-table">
1100 1100
             <tr>
1101
-                <th scope="row"><?php _e( 'Optimize Images', 'autoptimize' ); ?></th>
1101
+                <th scope="row"><?php _e('Optimize Images', 'autoptimize'); ?></th>
1102 1102
                 <td>
1103
-                    <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>
1103
+                    <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>
1104 1104
                     <?php
1105 1105
                     // show shortpixel status.
1106 1106
                     $_notice = autoptimizeImages::instance()->get_imgopt_status_notice();
1107
-                    if ( $_notice ) {
1108
-                        switch ( $_notice['status'] ) {
1107
+                    if ($_notice) {
1108
+                        switch ($_notice['status']) {
1109 1109
                             case 2:
1110 1110
                                 $_notice_color = 'green';
1111 1111
                                 break;
@@ -1120,35 +1120,35 @@  discard block
 block discarded – undo
1120 1120
                             default:
1121 1121
                                 $_notice_color = 'green';
1122 1122
                         }
1123
-                        echo apply_filters( 'autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:' . $_notice_color . ';">' . __( 'Shortpixel status: ', 'autoptimize' ) . '</span></strong>' . $_notice['notice'] . '</p>' );
1123
+                        echo apply_filters('autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:'.$_notice_color.';">'.__('Shortpixel status: ', 'autoptimize').'</span></strong>'.$_notice['notice'].'</p>');
1124 1124
                     } else {
1125 1125
                         // translators: link points to shortpixel.
1126
-                        $upsell_msg_1 = '<p>' . sprintf( __( 'Get more Google love by speeding up your website. Start serving on-the-fly optimized images (also in the "next-gen" <strong>WebP</strong> and <strong>AVIF</strong> image formats) by %1$sShortPixel%2$s. The optimized images are cached and served from %3$sShortPixel\'s global CDN%2$s.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>', '<a href="https://help.shortpixel.com/article/62-where-does-the-cdn-has-pops" target="_blank">' );
1127
-                        if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] ) {
1128
-                            $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' );
1126
+                        $upsell_msg_1 = '<p>'.sprintf(__('Get more Google love by speeding up your website. Start serving on-the-fly optimized images (also in the "next-gen" <strong>WebP</strong> and <strong>AVIF</strong> image formats) by %1$sShortPixel%2$s. The optimized images are cached and served from %3$sShortPixel\'s global CDN%2$s.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>', '<a href="https://help.shortpixel.com/article/62-where-does-the-cdn-has-pops" target="_blank">');
1127
+                        if ('launch' === $options['availabilities']['extra_imgopt']['status']) {
1128
+                            $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');
1129 1129
                         } else {
1130 1130
                             // translators: link points to shortpixel.
1131
-                            $upsell_msg_2 = sprintf( __( '%1$sSign-up now%2$s to receive x2 more CDN traffic or image optimization credits for free! This offer also applies to any future plan that you\'ll choose to purchase.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>' );
1131
+                            $upsell_msg_2 = sprintf(__('%1$sSign-up now%2$s to receive x2 more CDN traffic or image optimization credits for free! This offer also applies to any future plan that you\'ll choose to purchase.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>');
1132 1132
                         }
1133
-                        echo apply_filters( 'autoptimize_imgopt_imgopt_settings_copy', $upsell_msg_1 . ' ' . $upsell_msg_2 . '</p>' );
1133
+                        echo apply_filters('autoptimize_imgopt_imgopt_settings_copy', $upsell_msg_1.' '.$upsell_msg_2.'</p>');
1134 1134
                     }
1135 1135
                     // translators: link points to shortpixel FAQ.
1136
-                    $faqcopy = sprintf( __( '<strong>Questions</strong>? Have a look at the %1$sAutoptimize + ShortPixel FAQ%2$s!', 'autoptimize' ), '<strong><a href="https://help.shortpixel.com/category/405-autoptimize" target="_blank">', '</strong></a>' );
1137
-                    $faqcopy = $faqcopy . ' ' . __( 'Only works for websites and images that are publicly available.', 'autoptimize' );
1136
+                    $faqcopy = sprintf(__('<strong>Questions</strong>? Have a look at the %1$sAutoptimize + ShortPixel FAQ%2$s!', 'autoptimize'), '<strong><a href="https://help.shortpixel.com/category/405-autoptimize" target="_blank">', '</strong></a>');
1137
+                    $faqcopy = $faqcopy.' '.__('Only works for websites and images that are publicly available.', 'autoptimize');
1138 1138
                     // translators: links points to shortpixel TOS & Privacy Policy.
1139
-                    $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>' );
1140
-                    echo apply_filters( 'autoptimize_imgopt_imgopt_settings_tos', '<p>' . $faqcopy . ' ' . $toscopy . '</p>' );
1139
+                    $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>');
1140
+                    echo apply_filters('autoptimize_imgopt_imgopt_settings_tos', '<p>'.$faqcopy.' '.$toscopy.'</p>');
1141 1141
                     ?>
1142 1142
                 </td>
1143 1143
             </tr>
1144
-            <tr id='autoptimize_imgopt_optimization_exclusions' <?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"'; } ?>>
1145
-                <th scope="row"><?php _e( 'Optimization exclusions', 'autoptimize' ); ?></th>
1144
+            <tr id='autoptimize_imgopt_optimization_exclusions' <?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"'; } ?>>
1145
+                <th scope="row"><?php _e('Optimization exclusions', 'autoptimize'); ?></th>
1146 1146
                 <td>
1147
-                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_optimization_exclusions' name='autoptimize_imgopt_settings[autoptimize_imgopt_text_field_6]' value='<?php if ( ! empty( $options['autoptimize_imgopt_text_field_6'] ) ) { echo esc_attr( $options['autoptimize_imgopt_text_field_6'] ); } ?>'><br /><?php _e( 'Comma-separated list of image classes or filenames that should not be optimized.', 'autoptimize' ); ?></label>
1147
+                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_optimization_exclusions' name='autoptimize_imgopt_settings[autoptimize_imgopt_text_field_6]' value='<?php if (!empty($options['autoptimize_imgopt_text_field_6'])) { echo esc_attr($options['autoptimize_imgopt_text_field_6']); } ?>'><br /><?php _e('Comma-separated list of image classes or filenames that should not be optimized.', 'autoptimize'); ?></label>
1148 1148
                 </td>
1149 1149
             </tr>
1150
-            <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"'; } ?>>
1151
-                <th scope="row"><?php _e( 'Image Optimization quality', 'autoptimize' ); ?></th>
1150
+            <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"'; } ?>>
1151
+                <th scope="row"><?php _e('Image Optimization quality', 'autoptimize'); ?></th>
1152 1152
                 <td>
1153 1153
                     <label>
1154 1154
                     <select name='autoptimize_imgopt_settings[autoptimize_imgopt_select_field_2]'>
@@ -1156,12 +1156,12 @@  discard block
 block discarded – undo
1156 1156
                         $_imgopt_array = autoptimizeImages::instance()->get_img_quality_array();
1157 1157
                         $_imgopt_val   = autoptimizeImages::instance()->get_img_quality_setting();
1158 1158
 
1159
-                        foreach ( $_imgopt_array as $key => $value ) {
1160
-                            echo '<option value="' . $key . '"';
1161
-                            if ( $_imgopt_val == $key ) {
1159
+                        foreach ($_imgopt_array as $key => $value) {
1160
+                            echo '<option value="'.$key.'"';
1161
+                            if ($_imgopt_val == $key) {
1162 1162
                                 echo ' selected';
1163 1163
                             }
1164
-                            echo '>' . ucfirst( $value ) . '</option>';
1164
+                            echo '>'.ucfirst($value).'</option>';
1165 1165
                         }
1166 1166
                         echo "\n";
1167 1167
                         ?>
@@ -1170,37 +1170,37 @@  discard block
 block discarded – undo
1170 1170
                     <p>
1171 1171
                         <?php
1172 1172
                             // translators: link points to shortpixel image test page.
1173
-                            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>' ) );
1173
+                            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>'));
1174 1174
                         ?>
1175 1175
                     </p>
1176 1176
                 </td>
1177 1177
             </tr>
1178
-            <tr id='autoptimize_imgopt_ngimg' <?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"'; } ?>>
1179
-                <th scope="row"><?php _e( 'Load WebP or AVIF in supported browsers?', 'autoptimize' ); ?></th>
1178
+            <tr id='autoptimize_imgopt_ngimg' <?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"'; } ?>>
1179
+                <th scope="row"><?php _e('Load WebP or AVIF in supported browsers?', 'autoptimize'); ?></th>
1180 1180
                 <td>
1181
-                    <label><input type='checkbox' id='autoptimize_imgopt_ngimg_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 or AVIF image formats to any browser that supports it (requires lazy load to be active).', 'autoptimize' ); ?></label>
1181
+                    <label><input type='checkbox' id='autoptimize_imgopt_ngimg_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 or AVIF image formats to any browser that supports it (requires lazy load to be active).', 'autoptimize'); ?></label>
1182 1182
                 </td>
1183 1183
             </tr>
1184 1184
             <tr>
1185
-                <th scope="row"><?php _e( 'Lazy-load images?', 'autoptimize' ); ?></th>
1185
+                <th scope="row"><?php _e('Lazy-load images?', 'autoptimize'); ?></th>
1186 1186
                 <td>
1187
-                    <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>
1187
+                    <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>
1188 1188
                 </td>
1189 1189
             </tr>
1190
-            <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="autoptimize_lazyload_child hidden"'; } else { echo 'class="autoptimize_lazyload_child"'; } ?>>
1191
-                <th scope="row"><?php _e( 'Lazy-load exclusions', 'autoptimize' ); ?></th>
1190
+            <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="autoptimize_lazyload_child hidden"'; } else { echo 'class="autoptimize_lazyload_child"'; } ?>>
1191
+                <th scope="row"><?php _e('Lazy-load exclusions', 'autoptimize'); ?></th>
1192 1192
                 <td>
1193
-                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_lazyload_exclusions_text' 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>
1193
+                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_lazyload_exclusions_text' 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>
1194 1194
                 </td>
1195 1195
             </tr>
1196
-            <tr id='autoptimize_imgopt_lazyload_from_nth_image' <?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="autoptimize_lazyload_child hidden"'; } else { echo 'class="autoptimize_lazyload_child"'; } ?>>
1197
-                <th scope="row"><?php _e( 'Lazy-load from nth image', 'autoptimize' ); ?></th>
1196
+            <tr id='autoptimize_imgopt_lazyload_from_nth_image' <?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="autoptimize_lazyload_child hidden"'; } else { echo 'class="autoptimize_lazyload_child"'; } ?>>
1197
+                <th scope="row"><?php _e('Lazy-load from nth image', 'autoptimize'); ?></th>
1198 1198
                 <td>
1199
-                    <label><input type='number' min='0' max='50' style='width:80%' id='autoptimize_imgopt_lazyload_from_nth_image_number' name='autoptimize_imgopt_settings[autoptimize_imgopt_number_field_7]' value='<?php if ( ! empty( $options['autoptimize_imgopt_number_field_7'] ) ) { echo esc_attr( $options['autoptimize_imgopt_number_field_7'] ); } else { echo '0'; } ?>'><br /><?php _e( 'Don\'t lazyload the first X images, \'0\' lazyloads all.', 'autoptimize' ); ?></label>
1199
+                    <label><input type='number' min='0' max='50' style='width:80%' id='autoptimize_imgopt_lazyload_from_nth_image_number' name='autoptimize_imgopt_settings[autoptimize_imgopt_number_field_7]' value='<?php if (!empty($options['autoptimize_imgopt_number_field_7'])) { echo esc_attr($options['autoptimize_imgopt_number_field_7']); } else { echo '0'; } ?>'><br /><?php _e('Don\'t lazyload the first X images, \'0\' lazyloads all.', 'autoptimize'); ?></label>
1200 1200
                 </td>
1201 1201
             </tr>
1202 1202
         </table>
1203
-        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save Changes', 'autoptimize' ); ?>" /></p>
1203
+        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'autoptimize'); ?>" /></p>
1204 1204
     </form>
1205 1205
     <script>
1206 1206
         jQuery(document).ready(function() {
@@ -1238,50 +1238,50 @@  discard block
 block discarded – undo
1238 1238
      * Ïmg opt status as used on dashboard.
1239 1239
      */
1240 1240
     public function get_imgopt_status_notice() {
1241
-        if ( $this->imgopt_active() ) {
1241
+        if ($this->imgopt_active()) {
1242 1242
             $_imgopt_notice  = '';
1243
-            $_stat           = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_provider_stat', '' );
1243
+            $_stat           = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_provider_stat', '');
1244 1244
             $_site_host      = AUTOPTIMIZE_SITE_DOMAIN;
1245
-            $_imgopt_upsell  = 'https://shortpixel.com/aospai/af/SPZURYE109483/' . $_site_host;
1245
+            $_imgopt_upsell  = 'https://shortpixel.com/aospai/af/SPZURYE109483/'.$_site_host;
1246 1246
             $_imgopt_assoc   = 'https://shortpixel.helpscoutdocs.com/article/94-how-to-associate-a-domain-to-my-account';
1247 1247
             $_imgopt_unreach = 'https://shortpixel.helpscoutdocs.com/article/148-why-are-my-images-redirected-from-cdn-shortpixel-ai';
1248 1248
 
1249
-            if ( is_array( $_stat ) ) {
1250
-                if ( 1 == $_stat['Status'] ) {
1249
+            if (is_array($_stat)) {
1250
+                if (1 == $_stat['Status']) {
1251 1251
                     // translators: "add more credits" will appear in a "a href".
1252
-                    $_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>' );
1252
+                    $_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>');
1253 1253
                 } elseif ( -1 == $_stat['Status'] || -2 == $_stat['Status'] ) {
1254 1254
                     // translators: "add more credits" will appear in a "a href".
1255
-                    $_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>' );
1255
+                    $_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>');
1256 1256
                     // translators: "associate your domain" will appear in a "a href".
1257
-                    $_imgopt_notice = $_imgopt_notice . ' ' . sprintf( __( 'If you have enough CDN quota remaining, 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>' );
1257
+                    $_imgopt_notice = $_imgopt_notice.' '.sprintf(__('If you have enough CDN quota remaining, 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>');
1258 1258
                 } elseif ( -3 == $_stat['Status'] ) {
1259 1259
                     // translators: "check the documentation here" will appear in a "a href".
1260
-                    $_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>' );
1260
+                    $_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>');
1261 1261
                 } else {
1262 1262
                     $_imgopt_upsell = 'https://shortpixel.com/g/af/SPZURYE109483';
1263 1263
                     // translators: "log in to check your account" will appear in a "a href".
1264
-                    $_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>' );
1264
+                    $_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>');
1265 1265
                 }
1266 1266
 
1267 1267
                 // add info on freshness + refresh link if status is not 2 (good shape).
1268
-                if ( 2 != $_stat['Status'] ) {
1269
-                    $_imgopt_stats_refresh_url = add_query_arg( array(
1268
+                if (2 != $_stat['Status']) {
1269
+                    $_imgopt_stats_refresh_url = add_query_arg(array(
1270 1270
                         'page'                => 'autoptimize_imgopt',
1271 1271
                         'refreshImgProvStats' => '1',
1272
-                    ), admin_url( 'options-general.php' ) );
1273
-                    if ( $_stat && array_key_exists( 'timestamp', $_stat ) && ! empty( $_stat['timestamp'] ) ) {
1274
-                        $_imgopt_stats_last_run = __( 'based on status at ', 'autoptimize' ) . date_i18n( autoptimizeOptionWrapper::get_option( 'time_format' ), $_stat['timestamp'] );
1272
+                    ), admin_url('options-general.php'));
1273
+                    if ($_stat && array_key_exists('timestamp', $_stat) && !empty($_stat['timestamp'])) {
1274
+                        $_imgopt_stats_last_run = __('based on status at ', 'autoptimize').date_i18n(autoptimizeOptionWrapper::get_option('time_format'), $_stat['timestamp']);
1275 1275
                     } else {
1276
-                        $_imgopt_stats_last_run = __( 'based on previously fetched data', 'autoptimize' );
1276
+                        $_imgopt_stats_last_run = __('based on previously fetched data', 'autoptimize');
1277 1277
                     }
1278
-                    $_imgopt_notice .= ' (' . $_imgopt_stats_last_run . ', ';
1278
+                    $_imgopt_notice .= ' ('.$_imgopt_stats_last_run.', ';
1279 1279
                     // translators: "here to refresh" links to the Autoptimize Extra page and forces a refresh of the img opt stats.
1280
-                    $_imgopt_notice .= sprintf( __( 'you can click %1$shere to refresh your quota status%2$s', 'autoptimize' ), '<a href="' . $_imgopt_stats_refresh_url . '">', '</a>).' );
1280
+                    $_imgopt_notice .= sprintf(__('you can click %1$shere to refresh your quota status%2$s', 'autoptimize'), '<a href="'.$_imgopt_stats_refresh_url.'">', '</a>).');
1281 1281
                 }
1282 1282
 
1283 1283
                 // and make the full notice filterable.
1284
-                $_imgopt_notice = apply_filters( 'autoptimize_filter_imgopt_notice', $_imgopt_notice );
1284
+                $_imgopt_notice = apply_filters('autoptimize_filter_imgopt_notice', $_imgopt_notice);
1285 1285
 
1286 1286
                 return array(
1287 1287
                     'status' => $_stat['Status'],
@@ -1301,18 +1301,18 @@  discard block
 block discarded – undo
1301 1301
     /**
1302 1302
      * Get img provider stats (used to display notice).
1303 1303
      */
1304
-    public function query_img_provider_stats( $_refresh = false ) {
1305
-        if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_1'] ) ) {
1304
+    public function query_img_provider_stats($_refresh = false) {
1305
+        if (!empty($this->options['autoptimize_imgopt_checkbox_field_1'])) {
1306 1306
             $url      = '';
1307 1307
             $stat_dom = 'https://no-cdn.shortpixel.ai/';
1308
-            $endpoint = $stat_dom . 'read-domain/';
1308
+            $endpoint = $stat_dom.'read-domain/';
1309 1309
             $domain   = AUTOPTIMIZE_SITE_DOMAIN;
1310 1310
 
1311 1311
             // make sure parse_url result makes sense, keeping $url empty if not.
1312
-            if ( $domain && ! empty( $domain ) ) {
1313
-                $url = $endpoint . $domain;
1314
-                if ( true === $_refresh ) {
1315
-                    $url = $url . '/refresh';
1312
+            if ($domain && !empty($domain)) {
1313
+                $url = $endpoint.$domain;
1314
+                if (true === $_refresh) {
1315
+                    $url = $url.'/refresh';
1316 1316
                 }
1317 1317
             }
1318 1318
 
@@ -1323,12 +1323,12 @@  discard block
 block discarded – undo
1323 1323
 
1324 1324
             // only do the remote call if $url is not empty to make sure no parse_url
1325 1325
             // weirdness results in useless calls.
1326
-            if ( ! empty( $url ) ) {
1327
-                $response = wp_remote_get( $url );
1328
-                if ( ! is_wp_error( $response ) ) {
1329
-                    if ( '200' == wp_remote_retrieve_response_code( $response ) ) {
1330
-                        $stats = json_decode( wp_remote_retrieve_body( $response ), true );
1331
-                        autoptimizeOptionWrapper::update_option( 'autoptimize_imgopt_provider_stat', $stats );
1326
+            if (!empty($url)) {
1327
+                $response = wp_remote_get($url);
1328
+                if (!is_wp_error($response)) {
1329
+                    if ('200' == wp_remote_retrieve_response_code($response)) {
1330
+                        $stats = json_decode(wp_remote_retrieve_body($response), true);
1331
+                        autoptimizeOptionWrapper::update_option('autoptimize_imgopt_provider_stat', $stats);
1332 1332
                     }
1333 1333
                 }
1334 1334
             }
@@ -1351,15 +1351,15 @@  discard block
 block discarded – undo
1351 1351
     {
1352 1352
         static $launch_status = null;
1353 1353
 
1354
-        if ( null === $launch_status ) {
1354
+        if (null === $launch_status) {
1355 1355
             $avail_imgopt  = $this->options['availabilities']['extra_imgopt'];
1356
-            $magic_number  = intval( substr( md5( parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) ), 0, 3 ), 16 );
1357
-            $has_launched  = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_launched', '' );
1356
+            $magic_number  = intval(substr(md5(parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST)), 0, 3), 16);
1357
+            $has_launched  = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_launched', '');
1358 1358
             $launch_status = false;
1359
-            if ( $has_launched || ( is_array( $avail_imgopt ) && array_key_exists( 'launch-threshold', $avail_imgopt ) && $magic_number < $avail_imgopt['launch-threshold'] ) ) {
1359
+            if ($has_launched || (is_array($avail_imgopt) && array_key_exists('launch-threshold', $avail_imgopt) && $magic_number < $avail_imgopt['launch-threshold'])) {
1360 1360
                 $launch_status = true;
1361
-                if ( ! $has_launched ) {
1362
-                    autoptimizeOptionWrapper::update_option( 'autoptimize_imgopt_launched', 'on' );
1361
+                if (!$has_launched) {
1362
+                    autoptimizeOptionWrapper::update_option('autoptimize_imgopt_launched', 'on');
1363 1363
                 }
1364 1364
             }
1365 1365
         }
@@ -1376,16 +1376,16 @@  discard block
 block discarded – undo
1376 1376
     public function get_imgopt_provider_userstatus() {
1377 1377
         static $_provider_userstatus = null;
1378 1378
 
1379
-        if ( is_null( $_provider_userstatus ) ) {
1380
-            $_stat = autoptimizeOptionWrapper::get_option( 'autoptimize_imgopt_provider_stat', '' );
1381
-            if ( is_array( $_stat ) ) {
1382
-                if ( array_key_exists( 'Status', $_stat ) ) {
1379
+        if (is_null($_provider_userstatus)) {
1380
+            $_stat = autoptimizeOptionWrapper::get_option('autoptimize_imgopt_provider_stat', '');
1381
+            if (is_array($_stat)) {
1382
+                if (array_key_exists('Status', $_stat)) {
1383 1383
                     $_provider_userstatus['Status'] = $_stat['Status'];
1384 1384
                 } else {
1385 1385
                     // if no stats then we assume all is well.
1386 1386
                     $_provider_userstatus['Status'] = 2;
1387 1387
                 }
1388
-                if ( array_key_exists( 'timestamp', $_stat ) ) {
1388
+                if (array_key_exists('timestamp', $_stat)) {
1389 1389
                     $_provider_userstatus['timestamp'] = $_stat['timestamp'];
1390 1390
                 } else {
1391 1391
                     // if no timestamp then we return "".
Please login to merge, or discard this patch.
classes/autoptimizeCriticalCSSEnqueue.php 1 patch
Spacing   +74 added lines, -74 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Critical CSS job enqueue logic.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -12,27 +12,27 @@  discard block
 block discarded – undo
12 12
     {
13 13
         // fetch all options at once and populate them individually explicitely as globals.
14 14
         $all_options = autoptimizeCriticalCSSBase::fetch_options();
15
-        foreach ( $all_options as $_option => $_value ) {
15
+        foreach ($all_options as $_option => $_value) {
16 16
             global ${$_option};
17 17
             ${$_option} = $_value;
18 18
         }
19 19
     }
20 20
 
21
-    public static function ao_ccss_enqueue( $hash ) {
21
+    public static function ao_ccss_enqueue($hash) {
22 22
         $self = new self();
23 23
         // Get key status.
24
-        $key = autoptimizeCriticalCSSCore::ao_ccss_key_status( false );
24
+        $key = autoptimizeCriticalCSSCore::ao_ccss_key_status(false);
25 25
 
26 26
         // Queue is available to anyone...
27 27
         $enqueue = true;
28 28
 
29 29
         // ... which are not the ones below.
30
-        if ( is_user_logged_in() || is_feed() || is_404() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || $self->ao_ccss_ua() || 'nokey' == $key['status'] || 'invalid' == $key['status'] || false === apply_filters( 'autoptimize_filter_ccss_enqueue_should_enqueue', true ) ) {
30
+        if (is_user_logged_in() || is_feed() || is_404() || (defined('DOING_AJAX') && DOING_AJAX) || $self->ao_ccss_ua() || 'nokey' == $key['status'] || 'invalid' == $key['status'] || false === apply_filters('autoptimize_filter_ccss_enqueue_should_enqueue', true)) {
31 31
             $enqueue = false;
32
-            autoptimizeCriticalCSSCore::ao_ccss_log( "Job queuing is not available for WordPress's logged in users, feeds, error pages, ajax calls, to criticalcss.com itself or when a valid API key is not found", 3 );
32
+            autoptimizeCriticalCSSCore::ao_ccss_log("Job queuing is not available for WordPress's logged in users, feeds, error pages, ajax calls, to criticalcss.com itself or when a valid API key is not found", 3);
33 33
         }
34 34
 
35
-        if ( $enqueue ) {
35
+        if ($enqueue) {
36 36
             // Continue if queue is available
37 37
             // Attach required arrays/ vars.
38 38
             global $ao_ccss_rules;
@@ -42,17 +42,17 @@  discard block
 block discarded – undo
42 42
 
43 43
             // Get request path and page type, and initialize the queue update flag.
44 44
             $req_orig        = $_SERVER['REQUEST_URI'];
45
-            $req_path        = strtok( $req_orig, '?' );
45
+            $req_path        = strtok($req_orig, '?');
46 46
 
47 47
             // Check if we have a lang param. we need to keep as WPML can switch languages based on that
48 48
             // and that includes RTL -> LTR so diff. structure, so rules would be RTL vs LTR
49 49
             // but this needs changes in the structur of the rule object so off by default for now
50 50
             // as now this will simply result in conditional rules being overwritten.
51
-            if ( apply_filters( 'autoptimize_filter_ccss_coreenqueue_honor_lang', false ) && strpos( $req_orig, 'lang=' ) !== false ) {
52
-                $req_params = strtok( '?' );
53
-                parse_str( $req_params, $req_params_arr );
54
-                if ( array_key_exists( 'lang', $req_params_arr ) && !empty( $req_params_arr['lang'] ) ) {
55
-                    $req_path .= '?lang=' . $req_params_arr['lang'];
51
+            if (apply_filters('autoptimize_filter_ccss_coreenqueue_honor_lang', false) && strpos($req_orig, 'lang=') !== false) {
52
+                $req_params = strtok('?');
53
+                parse_str($req_params, $req_params_arr);
54
+                if (array_key_exists('lang', $req_params_arr) && !empty($req_params_arr['lang'])) {
55
+                    $req_path .= '?lang='.$req_params_arr['lang'];
56 56
                 }
57 57
             }
58 58
 
@@ -63,21 +63,21 @@  discard block
 block discarded – undo
63 63
             $queue_update    = false;
64 64
 
65 65
             // Match for paths in rules.
66
-            foreach ( $ao_ccss_rules['paths'] as $path => $props ) {
66
+            foreach ($ao_ccss_rules['paths'] as $path => $props) {
67 67
 
68 68
                 // Prepare rule target and log.
69
-                $target_rule = 'paths|' . $path;
70
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Qualifying path <' . $req_path . '> for job submission by rule <' . $target_rule . '>', 3 );
69
+                $target_rule = 'paths|'.$path;
70
+                autoptimizeCriticalCSSCore::ao_ccss_log('Qualifying path <'.$req_path.'> for job submission by rule <'.$target_rule.'>', 3);
71 71
 
72 72
                 // Path match
73 73
                 // -> exact match needed for AUTO rules
74 74
                 // -> partial match OK for MANUAL rules (which have empty hash and a file with CCSS).
75
-                if ( $path === $req_path || ( false == $props['hash'] && false != $props['file'] && preg_match( '|' . $path . '|', $req_path ) ) ) {
75
+                if ($path === $req_path || (false == $props['hash'] && false != $props['file'] && preg_match('|'.$path.'|', $req_path))) {
76 76
 
77 77
                     // There's a path match in the rule, so job QUALIFIES with a path rule match.
78 78
                     $job_qualify     = true;
79 79
                     $rule_properties = $props;
80
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Path <' . $req_path . '> QUALIFIED for job submission by rule <' . $target_rule . '>', 3 );
80
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Path <'.$req_path.'> QUALIFIED for job submission by rule <'.$target_rule.'>', 3);
81 81
 
82 82
                     // Stop processing other path rules.
83 83
                     break;
@@ -85,19 +85,19 @@  discard block
 block discarded – undo
85 85
             }
86 86
 
87 87
             // Match for types in rules if no path rule matches and if we're not enforcing paths.
88
-            if ( ! $job_qualify && ( ! $ao_ccss_forcepath || ! in_array( $req_type, apply_filters( 'autoptimize_filter_ccss_coreenqueue_forcepathfortype', array( 'is_page' ) ) ) || ! apply_filters( 'autoptimize_filter_ccss_coreenqueue_ignorealltypes', false ) ) ) {
89
-                foreach ( $ao_ccss_rules['types'] as $type => $props ) {
88
+            if (!$job_qualify && (!$ao_ccss_forcepath || !in_array($req_type, apply_filters('autoptimize_filter_ccss_coreenqueue_forcepathfortype', array('is_page'))) || !apply_filters('autoptimize_filter_ccss_coreenqueue_ignorealltypes', false))) {
89
+                foreach ($ao_ccss_rules['types'] as $type => $props) {
90 90
 
91 91
                     // Prepare rule target and log.
92
-                    $target_rule = 'types|' . $type;
93
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Qualifying page type <' . $req_type . '> on path <' . $req_path . '> for job submission by rule <' . $target_rule . '>', 3 );
92
+                    $target_rule = 'types|'.$type;
93
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Qualifying page type <'.$req_type.'> on path <'.$req_path.'> for job submission by rule <'.$target_rule.'>', 3);
94 94
 
95
-                    if ( $req_type == $type ) {
95
+                    if ($req_type == $type) {
96 96
                         // Type match.
97 97
                         // There's a type match in the rule, so job QUALIFIES with a type rule match.
98 98
                         $job_qualify     = true;
99 99
                         $rule_properties = $props;
100
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Page type <' . $req_type . '> on path <' . $req_path . '> QUALIFIED for job submission by rule <' . $target_rule . '>', 3 );
100
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Page type <'.$req_type.'> on path <'.$req_path.'> QUALIFIED for job submission by rule <'.$target_rule.'>', 3);
101 101
 
102 102
                         // Stop processing other type rules.
103 103
                         break;
@@ -105,11 +105,11 @@  discard block
 block discarded – undo
105 105
                 }
106 106
             }
107 107
 
108
-            if ( $job_qualify && ( ( false == $rule_properties['hash'] && false != $rule_properties['file'] ) || strpos( $req_type, 'template_' ) !== false ) ) {
108
+            if ($job_qualify && ((false == $rule_properties['hash'] && false != $rule_properties['file']) || strpos($req_type, 'template_') !== false)) {
109 109
                 // If job qualifies but rule hash is false and file isn't false (MANUAL rule) or if template, job does not qualify despite what previous evaluations says.
110 110
                 $job_qualify = false;
111
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission DISQUALIFIED by MANUAL rule <' . $target_rule . '> with hash <' . $rule_properties['hash'] . '> and file <' . $rule_properties['file'] . '>', 3 );
112
-            } elseif ( ! $job_qualify && empty( $rule_properties ) ) {
111
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission DISQUALIFIED by MANUAL rule <'.$target_rule.'> with hash <'.$rule_properties['hash'].'> and file <'.$rule_properties['file'].'>', 3);
112
+            } elseif (!$job_qualify && empty($rule_properties)) {
113 113
                 // But if job does not qualify and rule properties are set, job qualifies as there is no matching rule for it yet
114 114
                 // Fill-in the new target rule.
115 115
                 $job_qualify = true;
@@ -117,28 +117,28 @@  discard block
 block discarded – undo
117 117
                 // Should we switch to path-base AUTO-rules? Conditions:
118 118
                 // 1. forcepath option has to be enabled (off by default)
119 119
                 // 2. request type should be (by default, but filterable) one of is_page (removed for now: woo_is_product or woo_is_product_category).
120
-                if ( ( $ao_ccss_forcepath && in_array( $req_type, apply_filters( 'autoptimize_filter_ccss_coreenqueue_forcepathfortype', array( 'is_page' ) ) ) ) || apply_filters( 'autoptimize_filter_ccss_coreenqueue_ignorealltypes', false ) ) {
121
-                    if ( '/' !== $req_path ) {
122
-                        $target_rule = 'paths|' . $req_path;
120
+                if (($ao_ccss_forcepath && in_array($req_type, apply_filters('autoptimize_filter_ccss_coreenqueue_forcepathfortype', array('is_page')))) || apply_filters('autoptimize_filter_ccss_coreenqueue_ignorealltypes', false)) {
121
+                    if ('/' !== $req_path) {
122
+                        $target_rule = 'paths|'.$req_path;
123 123
                     } else {
124 124
                         // Exception; we don't want a path-based rule for "/" as that messes things up, hard-switch this to a type-based is_front_page rule.
125
-                        $target_rule = 'types|' . 'is_front_page';
125
+                        $target_rule = 'types|'.'is_front_page';
126 126
                     }
127 127
                 } else {
128
-                    $target_rule = 'types|' . $req_type;
128
+                    $target_rule = 'types|'.$req_type;
129 129
                 }
130
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission QUALIFIED by MISSING rule for page type <' . $req_type . '> on path <' . $req_path . '>, new rule target is <' . $target_rule . '>', 3 );
130
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission QUALIFIED by MISSING rule for page type <'.$req_type.'> on path <'.$req_path.'>, new rule target is <'.$target_rule.'>', 3);
131 131
             } else {
132 132
                 // Or just log a job qualified by a matching rule.
133
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job submission QUALIFIED by AUTO rule <' . $target_rule . '> with hash <' . $rule_properties['hash'] . '> and file <' . $rule_properties['file'] . '>', 3 );
133
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job submission QUALIFIED by AUTO rule <'.$target_rule.'> with hash <'.$rule_properties['hash'].'> and file <'.$rule_properties['file'].'>', 3);
134 134
             }
135 135
 
136 136
             // Submit job.
137
-            if ( $job_qualify ) {
138
-                if ( ! array_key_exists( $req_path, $ao_ccss_queue ) ) {
137
+            if ($job_qualify) {
138
+                if (!array_key_exists($req_path, $ao_ccss_queue)) {
139 139
                     // This is a NEW job
140 140
                     // Merge job into the queue.
141
-                    $ao_ccss_queue[ $req_path ] = $self->ao_ccss_define_job(
141
+                    $ao_ccss_queue[$req_path] = $self->ao_ccss_define_job(
142 142
                         $req_path,
143 143
                         $target_rule,
144 144
                         $req_type,
@@ -154,30 +154,30 @@  discard block
 block discarded – undo
154 154
                 } else {
155 155
                     // This is an existing job
156 156
                     // The job is still NEW, most likely this is extra CSS file for the same page that needs a hash.
157
-                    if ( 'NEW' == $ao_ccss_queue[ $req_path ]['jqstat'] ) {
157
+                    if ('NEW' == $ao_ccss_queue[$req_path]['jqstat']) {
158 158
                         // Add hash if it's not already in the job.
159
-                        if ( ! in_array( $hash, $ao_ccss_queue[ $req_path ]['hashes'] ) ) {
159
+                        if (!in_array($hash, $ao_ccss_queue[$req_path]['hashes'])) {
160 160
                             // Push new hash to its array and update flag.
161
-                            $queue_update = array_push( $ao_ccss_queue[ $req_path ]['hashes'], $hash );
161
+                            $queue_update = array_push($ao_ccss_queue[$req_path]['hashes'], $hash);
162 162
 
163 163
                             // Log job update.
164
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Hashes UPDATED on local job id <' . $ao_ccss_queue[ $req_path ]['ljid'] . '>, job status NEW, target rule <' . $ao_ccss_queue[ $req_path ]['rtarget'] . '>, hash added: ' . $hash, 3 );
164
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Hashes UPDATED on local job id <'.$ao_ccss_queue[$req_path]['ljid'].'>, job status NEW, target rule <'.$ao_ccss_queue[$req_path]['rtarget'].'>, hash added: '.$hash, 3);
165 165
 
166 166
                             // Return from here as the hash array is already updated.
167 167
                             return true;
168 168
                         }
169
-                    } elseif ( 'NEW' != $ao_ccss_queue[ $req_path ]['jqstat'] && 'JOB_QUEUED' != $ao_ccss_queue[ $req_path ]['jqstat'] && 'JOB_ONGOING' != $ao_ccss_queue[ $req_path ]['jqstat'] ) {
169
+                    } elseif ('NEW' != $ao_ccss_queue[$req_path]['jqstat'] && 'JOB_QUEUED' != $ao_ccss_queue[$req_path]['jqstat'] && 'JOB_ONGOING' != $ao_ccss_queue[$req_path]['jqstat']) {
170 170
                         // Allow requeuing jobs that are not NEW, JOB_QUEUED or JOB_ONGOING
171 171
                         // Merge new job keeping some previous job values.
172
-                        $ao_ccss_queue[ $req_path ] = $self->ao_ccss_define_job(
172
+                        $ao_ccss_queue[$req_path] = $self->ao_ccss_define_job(
173 173
                             $req_path,
174 174
                             $target_rule,
175 175
                             $req_type,
176 176
                             $hash,
177
-                            $ao_ccss_queue[ $req_path ]['file'],
178
-                            $ao_ccss_queue[ $req_path ]['jid'],
179
-                            $ao_ccss_queue[ $req_path ]['jrstat'],
180
-                            $ao_ccss_queue[ $req_path ]['jvstat'],
177
+                            $ao_ccss_queue[$req_path]['file'],
178
+                            $ao_ccss_queue[$req_path]['jid'],
179
+                            $ao_ccss_queue[$req_path]['jrstat'],
180
+                            $ao_ccss_queue[$req_path]['jvstat'],
181 181
                             false
182 182
                         );
183 183
                         // Set update flag.
@@ -185,14 +185,14 @@  discard block
 block discarded – undo
185 185
                     }
186 186
                 }
187 187
 
188
-                if ( $queue_update ) {
188
+                if ($queue_update) {
189 189
                     // Persist the job to the queue and return.
190
-                    $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
191
-                    update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
190
+                    $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
191
+                    update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
192 192
                     return true;
193 193
                 } else {
194 194
                     // Or just return false if no job was added.
195
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'A job for path <' . $req_path . '> already exist with NEW or PENDING status, skipping job creation', 3 );
195
+                    autoptimizeCriticalCSSCore::ao_ccss_log('A job for path <'.$req_path.'> already exist with NEW or PENDING status, skipping job creation', 3);
196 196
                     return false;
197 197
                 }
198 198
             }
@@ -209,33 +209,33 @@  discard block
 block discarded – undo
209 209
         $page_type = false;
210 210
 
211 211
         // Iterates over the array to match a type.
212
-        foreach ( $ao_ccss_types as $type ) {
213
-            if ( is_404() ) {
212
+        foreach ($ao_ccss_types as $type) {
213
+            if (is_404()) {
214 214
                 $page_type = 'is_404';
215 215
                 break;
216
-            } elseif ( is_front_page() ) {
216
+            } elseif (is_front_page()) {
217 217
                 // identify frontpage immediately to avoid it also matching a CPT or template.
218 218
                 $page_type = 'is_front_page';
219 219
                 break;
220
-            } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $ao_ccss_forcepath || ! is_page() ) ) {
220
+            } elseif (strpos($type, 'custom_post_') !== false && (!$ao_ccss_forcepath || !is_page())) {
221 221
                 // Match custom post types and not page or page not forced to path-based.
222
-                if ( get_post_type( get_the_ID() ) === substr( $type, 12 ) ) {
222
+                if (get_post_type(get_the_ID()) === substr($type, 12)) {
223 223
                     $page_type = $type;
224 224
                     break;
225 225
                 }
226
-            } elseif ( strpos( $type, 'template_' ) !== false && ( ! $ao_ccss_forcepath || ! is_page() ) ) {
226
+            } elseif (strpos($type, 'template_') !== false && (!$ao_ccss_forcepath || !is_page())) {
227 227
                 // Match templates if not page or if page is not forced to path-based.
228
-                if ( is_page_template( substr( $type, 9 ) ) ) {
228
+                if (is_page_template(substr($type, 9))) {
229 229
                     $page_type = $type;
230 230
                     break;
231 231
                 }
232 232
             } else {
233 233
                 // Match all other existing types
234 234
                 // but remove prefix to be able to check if the function exists & returns true.
235
-                $_type = str_replace( array( 'woo_', 'bp_', 'bbp_', 'edd_' ), '', $type );
236
-                if ( function_exists( $_type ) && call_user_func( $_type ) ) {
235
+                $_type = str_replace(array('woo_', 'bp_', 'bbp_', 'edd_'), '', $type);
236
+                if (function_exists($_type) && call_user_func($_type)) {
237 237
                     // Make sure we only return for one page, not for the "paged pages" (/page/2 ..).
238
-                    if ( ! is_page() || ! is_paged() ) {
238
+                    if (!is_page() || !is_paged()) {
239 239
                         $page_type = $type;
240 240
                         break;
241 241
                     }
@@ -247,44 +247,44 @@  discard block
 block discarded – undo
247 247
         return $page_type;
248 248
     }
249 249
 
250
-    public function ao_ccss_define_job( $path, $target, $type, $hash, $file, $jid, $jrstat, $jvstat, $create ) {
250
+    public function ao_ccss_define_job($path, $target, $type, $hash, $file, $jid, $jrstat, $jvstat, $create) {
251 251
         // Define a job entry to be created or updated
252 252
         // Define commom job properties.
253 253
         $path            = array();
254 254
         $path['ljid']    = $this->ao_ccss_job_id();
255 255
         $path['rtarget'] = $target;
256 256
         $path['ptype']   = $type;
257
-        $path['hashes']  = array( $hash );
257
+        $path['hashes']  = array($hash);
258 258
         $path['hash']    = $hash;
259 259
         $path['file']    = $file;
260 260
         $path['jid']     = $jid;
261 261
         $path['jqstat']  = 'NEW';
262 262
         $path['jrstat']  = $jrstat;
263 263
         $path['jvstat']  = $jvstat;
264
-        $path['jctime']  = microtime( true );
264
+        $path['jctime']  = microtime(true);
265 265
         $path['jftime']  = null;
266 266
 
267 267
         // Set operation requested.
268
-        if ( $create ) {
268
+        if ($create) {
269 269
             $operation = 'CREATED';
270 270
         } else {
271 271
             $operation = 'UPDATED';
272 272
         }
273 273
 
274 274
         // Log job creation.
275
-        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job ' . $operation . ' with local job id <' . $path['ljid'] . '> for target rule <' . $target . '>', 3 );
275
+        autoptimizeCriticalCSSCore::ao_ccss_log('Job '.$operation.' with local job id <'.$path['ljid'].'> for target rule <'.$target.'>', 3);
276 276
 
277 277
         return $path;
278 278
     }
279 279
 
280
-    public function ao_ccss_job_id( $length = 6 ) {
280
+    public function ao_ccss_job_id($length = 6) {
281 281
         // Generate random strings for the local job ID
282 282
         // Based on https://stackoverflow.com/a/4356295 .
283 283
         $characters        = '0123456789abcdefghijklmnopqrstuvwxyz';
284
-        $characters_length = strlen( $characters );
284
+        $characters_length = strlen($characters);
285 285
         $random_string     = 'j-';
286
-        for ( $i = 0; $i < $length; $i++ ) {
287
-            $random_string .= $characters[ rand( 0, $characters_length - 1 ) ];
286
+        for ($i = 0; $i < $length; $i++) {
287
+            $random_string .= $characters[rand(0, $characters_length - 1)];
288 288
         }
289 289
         return $random_string;
290 290
     }
@@ -292,17 +292,17 @@  discard block
 block discarded – undo
292 292
     public function ao_ccss_ua() {
293 293
         // Check for criticalcss.com user agent.
294 294
         $agent = '';
295
-        if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
295
+        if (isset($_SERVER['HTTP_USER_AGENT'])) {
296 296
             $agent = $_SERVER['HTTP_USER_AGENT'];
297 297
         }
298 298
 
299 299
         // Check for UA and return TRUE when criticalcss.com is the detected UA, false when not.
300
-        $rtn = strpos( $agent, AO_CCSS_URL );
301
-        if ( 0 === $rtn ) {
300
+        $rtn = strpos($agent, AO_CCSS_URL);
301
+        if (0 === $rtn) {
302 302
             $rtn = true;
303 303
         } else {
304 304
             $rtn = false;
305 305
         }
306
-        return ( $rtn );
306
+        return ($rtn);
307 307
     }
308 308
 }
Please login to merge, or discard this patch.
classes/autoptimizeMain.php 1 patch
Spacing   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Wraps base plugin logic/hooks and handles activation/deactivation/uninstall.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
      * @param string $version Version.
34 34
      * @param string $filepath Filepath. Needed for activation/deactivation/uninstall hooks.
35 35
      */
36
-    public function __construct( $version, $filepath )
36
+    public function __construct($version, $filepath)
37 37
     {
38 38
         $this->version  = $version;
39 39
         $this->filepath = $filepath;
@@ -50,101 +50,101 @@  discard block
 block discarded – undo
50 50
 
51 51
     protected function add_hooks()
52 52
     {
53
-        if ( ! defined( 'AUTOPTIMIZE_SETUP_INITHOOK' ) ) {
54
-            define( 'AUTOPTIMIZE_SETUP_INITHOOK', 'plugins_loaded' );
53
+        if (!defined('AUTOPTIMIZE_SETUP_INITHOOK')) {
54
+            define('AUTOPTIMIZE_SETUP_INITHOOK', 'plugins_loaded');
55 55
         }
56 56
 
57
-        add_action( AUTOPTIMIZE_SETUP_INITHOOK, array( $this, 'setup' ) );
58
-        add_action( AUTOPTIMIZE_SETUP_INITHOOK, array( $this, 'hook_page_cache_purge' ) );
57
+        add_action(AUTOPTIMIZE_SETUP_INITHOOK, array($this, 'setup'));
58
+        add_action(AUTOPTIMIZE_SETUP_INITHOOK, array($this, 'hook_page_cache_purge'));
59 59
 
60
-        add_action( 'autoptimize_setup_done', array( $this, 'version_upgrades_check' ) );
61
-        add_action( 'autoptimize_setup_done', array( $this, 'check_cache_and_run' ) );
62
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_ao_extra' ), 15 );
63
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_partners_tab' ), 20 );
64
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_criticalcss' ), 11 );
65
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_notfound_fallback' ), 10 );
60
+        add_action('autoptimize_setup_done', array($this, 'version_upgrades_check'));
61
+        add_action('autoptimize_setup_done', array($this, 'check_cache_and_run'));
62
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_ao_extra'), 15);
63
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_partners_tab'), 20);
64
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_criticalcss'), 11);
65
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_notfound_fallback'), 10);
66 66
 
67
-        add_action( 'init', array( $this, 'load_textdomain' ) );
67
+        add_action('init', array($this, 'load_textdomain'));
68 68
 
69
-        if ( is_multisite() && is_admin() ) {
69
+        if (is_multisite() && is_admin()) {
70 70
             // Only if multisite and if in admin we want to check if we need to save options on network level.
71
-            add_action( 'init', 'autoptimizeOptionWrapper::check_multisite_on_saving_options' );
71
+            add_action('init', 'autoptimizeOptionWrapper::check_multisite_on_saving_options');
72 72
         }
73 73
 
74 74
         // register uninstall & deactivation hooks.
75
-        register_uninstall_hook( $this->filepath, 'autoptimizeMain::on_uninstall' );
76
-        register_deactivation_hook( $this->filepath, 'autoptimizeMain::on_deactivation' );
75
+        register_uninstall_hook($this->filepath, 'autoptimizeMain::on_uninstall');
76
+        register_deactivation_hook($this->filepath, 'autoptimizeMain::on_deactivation');
77 77
     }
78 78
 
79 79
     public function load_textdomain()
80 80
     {
81
-        load_plugin_textdomain( 'autoptimize' );
81
+        load_plugin_textdomain('autoptimize');
82 82
     }
83 83
 
84 84
     public function setup()
85 85
     {
86 86
         // Do we gzip in php when caching or is the webserver doing it?
87
-        define( 'AUTOPTIMIZE_CACHE_NOGZIP', (bool) autoptimizeOptionWrapper::get_option( 'autoptimize_cache_nogzip' ) );
87
+        define('AUTOPTIMIZE_CACHE_NOGZIP', (bool) autoptimizeOptionWrapper::get_option('autoptimize_cache_nogzip'));
88 88
 
89 89
         // These can be overridden by specifying them in wp-config.php or such.
90
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_NAME' ) ) {
91
-            define( 'AUTOPTIMIZE_WP_CONTENT_NAME', '/' . wp_basename( WP_CONTENT_DIR ) );
90
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_NAME')) {
91
+            define('AUTOPTIMIZE_WP_CONTENT_NAME', '/'.wp_basename(WP_CONTENT_DIR));
92 92
         }
93
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_CHILD_DIR' ) ) {
94
-            define( 'AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/' );
93
+        if (!defined('AUTOPTIMIZE_CACHE_CHILD_DIR')) {
94
+            define('AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/');
95 95
         }
96
-        if ( ! defined( 'AUTOPTIMIZE_CACHEFILE_PREFIX' ) ) {
97
-            define( 'AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_' );
96
+        if (!defined('AUTOPTIMIZE_CACHEFILE_PREFIX')) {
97
+            define('AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_');
98 98
         }
99 99
         // Note: trailing slash is not optional!
100
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
101
-            define( 'AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname() );
100
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
101
+            define('AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname());
102 102
         }
103 103
 
104
-        define( 'WP_ROOT_DIR', substr( WP_CONTENT_DIR, 0, strlen( WP_CONTENT_DIR ) - strlen( AUTOPTIMIZE_WP_CONTENT_NAME ) ) );
104
+        define('WP_ROOT_DIR', substr(WP_CONTENT_DIR, 0, strlen(WP_CONTENT_DIR) - strlen(AUTOPTIMIZE_WP_CONTENT_NAME)));
105 105
 
106
-        if ( ! defined( 'AUTOPTIMIZE_WP_SITE_URL' ) ) {
107
-            if ( function_exists( 'domain_mapping_siteurl' ) ) {
108
-                define( 'AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl( get_current_blog_id() ) );
106
+        if (!defined('AUTOPTIMIZE_WP_SITE_URL')) {
107
+            if (function_exists('domain_mapping_siteurl')) {
108
+                define('AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl(get_current_blog_id()));
109 109
             } else {
110
-                define( 'AUTOPTIMIZE_WP_SITE_URL', site_url() );
110
+                define('AUTOPTIMIZE_WP_SITE_URL', site_url());
111 111
             }
112 112
         }
113
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_URL' ) ) {
114
-            if ( function_exists( 'get_original_url' ) ) {
115
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', str_replace( get_original_url( AUTOPTIMIZE_WP_SITE_URL ), AUTOPTIMIZE_WP_SITE_URL, content_url() ) );
113
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_URL')) {
114
+            if (function_exists('get_original_url')) {
115
+                define('AUTOPTIMIZE_WP_CONTENT_URL', str_replace(get_original_url(AUTOPTIMIZE_WP_SITE_URL), AUTOPTIMIZE_WP_SITE_URL, content_url()));
116 116
             } else {
117
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', content_url() );
117
+                define('AUTOPTIMIZE_WP_CONTENT_URL', content_url());
118 118
             }
119 119
         }
120
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_URL' ) ) {
121
-            if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
120
+        if (!defined('AUTOPTIMIZE_CACHE_URL')) {
121
+            if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
122 122
                 $blog_id = get_current_blog_id();
123
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR . $blog_id . '/' );
123
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR.$blog_id.'/');
124 124
             } else {
125
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR );
125
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR);
126 126
             }
127 127
         }
128
-        if ( ! defined( 'AUTOPTIMIZE_WP_ROOT_URL' ) ) {
129
-            define( 'AUTOPTIMIZE_WP_ROOT_URL', str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL ) );
128
+        if (!defined('AUTOPTIMIZE_WP_ROOT_URL')) {
129
+            define('AUTOPTIMIZE_WP_ROOT_URL', str_replace(AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL));
130 130
         }
131
-        if ( ! defined( 'AUTOPTIMIZE_HASH' ) ) {
132
-            define( 'AUTOPTIMIZE_HASH', wp_hash( AUTOPTIMIZE_CACHE_URL ) );
131
+        if (!defined('AUTOPTIMIZE_HASH')) {
132
+            define('AUTOPTIMIZE_HASH', wp_hash(AUTOPTIMIZE_CACHE_URL));
133 133
         }
134
-        if ( ! defined( 'AUTOPTIMIZE_SITE_DOMAIN' ) ) {
135
-            define( 'AUTOPTIMIZE_SITE_DOMAIN', parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) );
134
+        if (!defined('AUTOPTIMIZE_SITE_DOMAIN')) {
135
+            define('AUTOPTIMIZE_SITE_DOMAIN', parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST));
136 136
         }
137 137
 
138 138
         // Multibyte-capable string replacements are available with a filter.
139 139
         // Also requires 'mbstring' extension.
140
-        $with_mbstring = apply_filters( 'autoptimize_filter_main_use_mbstring', false );
141
-        if ( $with_mbstring ) {
142
-            autoptimizeUtils::mbstring_available( \extension_loaded( 'mbstring' ) );
140
+        $with_mbstring = apply_filters('autoptimize_filter_main_use_mbstring', false);
141
+        if ($with_mbstring) {
142
+            autoptimizeUtils::mbstring_available(\extension_loaded('mbstring'));
143 143
         } else {
144
-            autoptimizeUtils::mbstring_available( false );
144
+            autoptimizeUtils::mbstring_available(false);
145 145
         }
146 146
 
147
-        do_action( 'autoptimize_setup_done' );
147
+        do_action('autoptimize_setup_done');
148 148
     }
149 149
 
150 150
     /**
@@ -154,61 +154,61 @@  discard block
 block discarded – undo
154 154
      */
155 155
     public function version_upgrades_check()
156 156
     {
157
-        autoptimizeVersionUpdatesHandler::check_installed_and_update( $this->version );
157
+        autoptimizeVersionUpdatesHandler::check_installed_and_update($this->version);
158 158
     }
159 159
 
160 160
     public function check_cache_and_run()
161 161
     {
162
-        if ( autoptimizeCache::cacheavail() ) {
162
+        if (autoptimizeCache::cacheavail()) {
163 163
             $conf = autoptimizeConfig::instance();
164
-            if ( $conf->get( 'autoptimize_html' ) || $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper() ) {
165
-                if ( ! defined( 'AUTOPTIMIZE_NOBUFFER_OPTIMIZE' ) ) {
164
+            if ($conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper()) {
165
+                if (!defined('AUTOPTIMIZE_NOBUFFER_OPTIMIZE')) {
166 166
                     // Hook into WordPress frontend.
167
-                    if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
167
+                    if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
168 168
                         add_action(
169 169
                             'init',
170
-                            array( $this, 'start_buffering' ),
170
+                            array($this, 'start_buffering'),
171 171
                             self::INIT_EARLIER_PRIORITY
172 172
                         );
173 173
                     } else {
174
-                        if ( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) ) {
175
-                            define( 'AUTOPTIMIZE_HOOK_INTO', 'template_redirect' );
174
+                        if (!defined('AUTOPTIMIZE_HOOK_INTO')) {
175
+                            define('AUTOPTIMIZE_HOOK_INTO', 'template_redirect');
176 176
                         }
177 177
                         add_action(
178
-                            constant( 'AUTOPTIMIZE_HOOK_INTO' ),
179
-                            array( $this, 'start_buffering' ),
178
+                            constant('AUTOPTIMIZE_HOOK_INTO'),
179
+                            array($this, 'start_buffering'),
180 180
                             self::DEFAULT_HOOK_PRIORITY
181 181
                         );
182 182
                     }
183 183
                 }
184 184
 
185 185
                 // And disable Jetpack's site accelerator if JS or CSS opt. are active.
186
-                if ( class_exists( 'Jetpack' ) && apply_filters( 'autoptimize_filter_main_disable_jetpack_cdn', true ) && ( $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) ) ) {
187
-                    add_filter( 'jetpack_force_disable_site_accelerator', '__return_true' );
186
+                if (class_exists('Jetpack') && apply_filters('autoptimize_filter_main_disable_jetpack_cdn', true) && ($conf->get('autoptimize_js') || $conf->get('autoptimize_css'))) {
187
+                    add_filter('jetpack_force_disable_site_accelerator', '__return_true');
188 188
                 }
189 189
             }
190 190
         } else {
191
-            add_action( 'admin_notices', 'autoptimizeMain::notice_cache_unavailable' );
191
+            add_action('admin_notices', 'autoptimizeMain::notice_cache_unavailable');
192 192
         }
193 193
     }
194 194
 
195 195
     public function maybe_run_ao_extra()
196 196
     {
197
-        if ( apply_filters( 'autoptimize_filter_extra_activate', true ) ) {
197
+        if (apply_filters('autoptimize_filter_extra_activate', true)) {
198 198
             $ao_imgopt = new autoptimizeImages();
199 199
             $ao_imgopt->run();
200 200
             $ao_extra = new autoptimizeExtra();
201 201
             $ao_extra->run();
202 202
 
203 203
             // And show the imgopt notice.
204
-            add_action( 'admin_notices', 'autoptimizeMain::notice_plug_imgopt' );
204
+            add_action('admin_notices', 'autoptimizeMain::notice_plug_imgopt');
205 205
         }
206 206
     }
207 207
 
208 208
     public function maybe_run_partners_tab()
209 209
     {
210 210
         // Loads partners tab code if in admin (and not in admin-ajax.php)!
211
-        if ( autoptimizeConfig::is_admin_and_not_ajax() ) {
211
+        if (autoptimizeConfig::is_admin_and_not_ajax()) {
212 212
             new autoptimizePartners();
213 213
         }
214 214
     }
@@ -216,22 +216,22 @@  discard block
 block discarded – undo
216 216
     public function maybe_run_criticalcss()
217 217
     {
218 218
         // Loads criticalcss if the power-up is not active and if the filter returns true.
219
-        if ( apply_filters( 'autoptimize_filter_criticalcss_active', true ) && ! autoptimizeUtils::is_plugin_active( 'autoptimize-criticalcss/ao_criticss_aas.php' ) ) {
219
+        if (apply_filters('autoptimize_filter_criticalcss_active', true) && !autoptimizeUtils::is_plugin_active('autoptimize-criticalcss/ao_criticss_aas.php')) {
220 220
             new autoptimizeCriticalCSSBase();
221 221
         }
222 222
     }
223 223
 
224 224
     public function maybe_run_notfound_fallback()
225 225
     {
226
-        if ( autoptimizeCache::do_fallback() ) {
227
-            add_action( 'template_redirect', array( 'autoptimizeCache', 'wordpress_notfound_fallback' ) );
226
+        if (autoptimizeCache::do_fallback()) {
227
+            add_action('template_redirect', array('autoptimizeCache', 'wordpress_notfound_fallback'));
228 228
         }
229 229
     }
230 230
 
231 231
     public function hook_page_cache_purge()
232 232
     {
233 233
         // hook into a collection of page cache purge actions if filter allows.
234
-        if ( apply_filters( 'autoptimize_filter_main_hookpagecachepurge', true ) ) {
234
+        if (apply_filters('autoptimize_filter_main_hookpagecachepurge', true)) {
235 235
             $page_cache_purge_actions = array(
236 236
                 'after_rocket_clean_domain', // exists.
237 237
                 'hyper_cache_purged', // Stefano confirmed this will be added.
@@ -246,9 +246,9 @@  discard block
 block discarded – undo
246 246
                 'wpo_cache_flush', // wp-optimize.
247 247
                 'rt_nginx_helper_after_fastcgi_purge_all', // nginx helper.
248 248
             );
249
-            $page_cache_purge_actions = apply_filters( 'autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions );
250
-            foreach ( $page_cache_purge_actions as $purge_action ) {
251
-                add_action( $purge_action, 'autoptimizeCache::clearall_actionless' );
249
+            $page_cache_purge_actions = apply_filters('autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions);
250
+            foreach ($page_cache_purge_actions as $purge_action) {
251
+                add_action($purge_action, 'autoptimizeCache::clearall_actionless');
252 252
             }
253 253
         }
254 254
     }
@@ -260,38 +260,38 @@  discard block
 block discarded – undo
260 260
      */
261 261
     public function start_buffering()
262 262
     {
263
-        if ( $this->should_buffer() ) {
263
+        if ($this->should_buffer()) {
264 264
 
265 265
             // Load speedupper conditionally (true by default).
266
-            if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
266
+            if (apply_filters('autoptimize_filter_speedupper', true)) {
267 267
                 $ao_speedupper = new autoptimizeSpeedupper();
268 268
             }
269 269
 
270 270
             $conf = autoptimizeConfig::instance();
271 271
 
272
-            if ( $conf->get( 'autoptimize_js' ) ) {
273
-                if ( ! defined( 'CONCATENATE_SCRIPTS' ) ) {
274
-                    define( 'CONCATENATE_SCRIPTS', false );
272
+            if ($conf->get('autoptimize_js')) {
273
+                if (!defined('CONCATENATE_SCRIPTS')) {
274
+                    define('CONCATENATE_SCRIPTS', false);
275 275
                 }
276
-                if ( ! defined( 'COMPRESS_SCRIPTS' ) ) {
277
-                    define( 'COMPRESS_SCRIPTS', false );
276
+                if (!defined('COMPRESS_SCRIPTS')) {
277
+                    define('COMPRESS_SCRIPTS', false);
278 278
                 }
279 279
             }
280 280
 
281
-            if ( $conf->get( 'autoptimize_css' ) ) {
282
-                if ( ! defined( 'COMPRESS_CSS' ) ) {
283
-                    define( 'COMPRESS_CSS', false );
281
+            if ($conf->get('autoptimize_css')) {
282
+                if (!defined('COMPRESS_CSS')) {
283
+                    define('COMPRESS_CSS', false);
284 284
                 }
285 285
             }
286 286
 
287
-            if ( apply_filters( 'autoptimize_filter_obkiller', false ) ) {
288
-                while ( ob_get_level() > 0 ) {
287
+            if (apply_filters('autoptimize_filter_obkiller', false)) {
288
+                while (ob_get_level() > 0) {
289 289
                     ob_end_clean();
290 290
                 }
291 291
             }
292 292
 
293 293
             // Now, start the real thing!
294
-            ob_start( array( $this, 'end_buffering' ) );
294
+            ob_start(array($this, 'end_buffering'));
295 295
         }
296 296
     }
297 297
 
@@ -302,31 +302,31 @@  discard block
 block discarded – undo
302 302
      *                          deciding once per request (for use in tests).
303 303
      * @return bool
304 304
      */
305
-    public static function should_buffer( $doing_tests = false )
305
+    public static function should_buffer($doing_tests = false)
306 306
     {
307 307
         static $do_buffering = null;
308 308
 
309 309
         // Only check once in case we're called multiple times by others but
310 310
         // still allows multiple calls when doing tests.
311
-        if ( null === $do_buffering || $doing_tests ) {
311
+        if (null === $do_buffering || $doing_tests) {
312 312
 
313 313
             $ao_noptimize = false;
314 314
 
315 315
             // Checking for DONOTMINIFY constant as used by e.g. WooCommerce POS.
316
-            if ( defined( 'DONOTMINIFY' ) && ( constant( 'DONOTMINIFY' ) === true || constant( 'DONOTMINIFY' ) === 'true' ) ) {
316
+            if (defined('DONOTMINIFY') && (constant('DONOTMINIFY') === true || constant('DONOTMINIFY') === 'true')) {
317 317
                 $ao_noptimize = true;
318 318
             }
319 319
 
320 320
             // Skip checking query strings if they're disabled.
321
-            if ( apply_filters( 'autoptimize_filter_honor_qs_noptimize', true ) ) {
321
+            if (apply_filters('autoptimize_filter_honor_qs_noptimize', true)) {
322 322
                 // Check for `ao_noptimize` (and other) keys in the query string
323 323
                 // to get non-optimized page for debugging.
324 324
                 $keys = array(
325 325
                     'ao_noptimize',
326 326
                     'ao_noptirocket',
327 327
                 );
328
-                foreach ( $keys as $key ) {
329
-                    if ( array_key_exists( $key, $_GET ) && '1' === $_GET[ $key ] ) {
328
+                foreach ($keys as $key) {
329
+                    if (array_key_exists($key, $_GET) && '1' === $_GET[$key]) {
330 330
                         $ao_noptimize = true;
331 331
                         break;
332 332
                     }
@@ -334,15 +334,15 @@  discard block
 block discarded – undo
334 334
             }
335 335
 
336 336
             // If setting says not to optimize logged in user and user is logged in...
337
-            if ( false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_optimize_logged', 'on' ) && is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
337
+            if (false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_optimize_logged', 'on') && is_user_logged_in() && current_user_can('edit_posts')) {
338 338
                 $ao_noptimize = true;
339 339
             }
340 340
 
341 341
             // If setting says not to optimize cart/checkout.
342
-            if ( false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option( 'autoptimize_optimize_checkout', 'off' ) ) {
342
+            if (false === $ao_noptimize && 'on' !== autoptimizeOptionWrapper::get_option('autoptimize_optimize_checkout', 'off')) {
343 343
                 // Checking for woocommerce, easy digital downloads and wp ecommerce...
344
-                foreach ( array( 'is_checkout', 'is_cart', 'is_account_page', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout' ) as $func ) {
345
-                    if ( function_exists( $func ) && $func() ) {
344
+                foreach (array('is_checkout', 'is_cart', 'is_account_page', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout') as $func) {
345
+                    if (function_exists($func) && $func()) {
346 346
                         $ao_noptimize = true;
347 347
                         break;
348 348
                     }
@@ -350,10 +350,10 @@  discard block
 block discarded – undo
350 350
             }
351 351
 
352 352
             // And make sure pagebuilder previews don't get optimized HTML/ JS/ CSS/ ...
353
-            if ( false === $ao_noptimize ) {
354
-                $_qs_pagebuilders = array( 'tve', 'elementor-preview', 'fl_builder', 'vc_action', 'et_fb', 'bt-beaverbuildertheme', 'ct_builder', 'fb-edit', 'siteorigin_panels_live_editor' );
355
-                foreach ( $_qs_pagebuilders as $_pagebuilder ) {
356
-                    if ( array_key_exists( $_pagebuilder, $_GET ) ) {
353
+            if (false === $ao_noptimize) {
354
+                $_qs_pagebuilders = array('tve', 'elementor-preview', 'fl_builder', 'vc_action', 'et_fb', 'bt-beaverbuildertheme', 'ct_builder', 'fb-edit', 'siteorigin_panels_live_editor');
355
+                foreach ($_qs_pagebuilders as $_pagebuilder) {
356
+                    if (array_key_exists($_pagebuilder, $_GET)) {
357 357
                         $ao_noptimize = true;
358 358
                         break;
359 359
                     }
@@ -362,16 +362,16 @@  discard block
 block discarded – undo
362 362
 
363 363
             // Also honor PageSpeed=off parameter as used by mod_pagespeed, in use by some pagebuilders,
364 364
             // see https://www.modpagespeed.com/doc/experiment#ModPagespeed for info on that.
365
-            if ( false === $ao_noptimize && array_key_exists( 'PageSpeed', $_GET ) && 'off' === $_GET['PageSpeed'] ) {
365
+            if (false === $ao_noptimize && array_key_exists('PageSpeed', $_GET) && 'off' === $_GET['PageSpeed']) {
366 366
                 $ao_noptimize = true;
367 367
             }
368 368
 
369 369
             // And finally allows blocking of autoptimization on your own terms regardless of above decisions.
370
-            $ao_noptimize = (bool) apply_filters( 'autoptimize_filter_noptimize', $ao_noptimize );
370
+            $ao_noptimize = (bool) apply_filters('autoptimize_filter_noptimize', $ao_noptimize);
371 371
 
372 372
             // Check for site being previewed in the Customizer (available since WP 4.0).
373 373
             $is_customize_preview = false;
374
-            if ( function_exists( 'is_customize_preview' ) && is_customize_preview() ) {
374
+            if (function_exists('is_customize_preview') && is_customize_preview()) {
375 375
                 $is_customize_preview = is_customize_preview();
376 376
             }
377 377
 
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
              * while the main query hasn't been ran yet. Thats why we use
383 383
              * AUTOPTIMIZE_INIT_EARLIER in tests.
384 384
              */
385
-            $do_buffering = ( ! is_admin() && ! is_feed() && ! is_embed() && ! $ao_noptimize && ! $is_customize_preview );
385
+            $do_buffering = (!is_admin() && !is_feed() && !is_embed() && !$ao_noptimize && !$is_customize_preview);
386 386
         }
387 387
 
388 388
         return $do_buffering;
@@ -395,25 +395,25 @@  discard block
 block discarded – undo
395 395
      *
396 396
      * @return bool
397 397
      */
398
-    public function is_valid_buffer( $content )
398
+    public function is_valid_buffer($content)
399 399
     {
400 400
         // Defaults to true.
401 401
         $valid = true;
402 402
 
403
-        $has_no_html_tag    = ( false === stripos( $content, '<html' ) );
404
-        $has_xsl_stylesheet = ( false !== stripos( $content, '<xsl:stylesheet' ) || false !== stripos( $content, '<?xml-stylesheet' ) );
405
-        $has_html5_doctype  = ( preg_match( '/^<!DOCTYPE.+html>/i', ltrim( $content ) ) > 0 );
406
-        $has_noptimize_page = ( false !== stripos( $content, '<!-- noptimize-page -->' ) );
403
+        $has_no_html_tag    = (false === stripos($content, '<html'));
404
+        $has_xsl_stylesheet = (false !== stripos($content, '<xsl:stylesheet') || false !== stripos($content, '<?xml-stylesheet'));
405
+        $has_html5_doctype  = (preg_match('/^<!DOCTYPE.+html>/i', ltrim($content)) > 0);
406
+        $has_noptimize_page = (false !== stripos($content, '<!-- noptimize-page -->'));
407 407
 
408
-        if ( $has_no_html_tag ) {
408
+        if ($has_no_html_tag) {
409 409
             // Can't be valid amp markup without an html tag preceding it.
410 410
             $is_amp_markup = false;
411 411
         } else {
412
-            $is_amp_markup = self::is_amp_markup( $content );
412
+            $is_amp_markup = self::is_amp_markup($content);
413 413
         }
414 414
 
415 415
         // If it's not html, or if it's amp or contains xsl stylesheets we don't touch it.
416
-        if ( $has_no_html_tag && ! $has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet || $has_noptimize_page ) {
416
+        if ($has_no_html_tag && !$has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet || $has_noptimize_page) {
417 417
             $valid = false;
418 418
         }
419 419
 
@@ -428,7 +428,7 @@  discard block
 block discarded – undo
428 428
      *
429 429
      * @return bool
430 430
      */
431
-    public static function is_amp_markup( $content )
431
+    public static function is_amp_markup($content)
432 432
     {
433 433
         // Short-circuit if the page is already AMP from the start.
434 434
         if (
@@ -446,9 +446,9 @@  discard block
 block discarded – undo
446 446
         }
447 447
 
448 448
         // Or else short-circuit if the AMP plugin will be processing the output to be an AMP page.
449
-        if ( function_exists( 'amp_is_request' ) ) {
449
+        if (function_exists('amp_is_request')) {
450 450
             return amp_is_request(); // For AMP plugin v2.0+.
451
-        } elseif ( function_exists( 'is_amp_endpoint' ) ) {
451
+        } elseif (function_exists('is_amp_endpoint')) {
452 452
             return is_amp_endpoint(); // For older/other AMP plugins (still supported in 2.0 as an alias).
453 453
         }
454 454
 
@@ -463,10 +463,10 @@  discard block
 block discarded – undo
463 463
      *
464 464
      * @return string
465 465
      */
466
-    public function end_buffering( $content )
466
+    public function end_buffering($content)
467 467
     {
468 468
         // Bail early without modifying anything if we can't handle the content.
469
-        if ( ! $this->is_valid_buffer( $content ) ) {
469
+        if (!$this->is_valid_buffer($content)) {
470 470
             return $content;
471 471
         }
472 472
 
@@ -474,74 +474,74 @@  discard block
 block discarded – undo
474 474
 
475 475
         // Determine what needs to be ran.
476 476
         $classes = array();
477
-        if ( $conf->get( 'autoptimize_js' ) ) {
477
+        if ($conf->get('autoptimize_js')) {
478 478
             $classes[] = 'autoptimizeScripts';
479 479
         }
480
-        if ( $conf->get( 'autoptimize_css' ) ) {
480
+        if ($conf->get('autoptimize_css')) {
481 481
             $classes[] = 'autoptimizeStyles';
482 482
         }
483
-        if ( $conf->get( 'autoptimize_html' ) ) {
483
+        if ($conf->get('autoptimize_html')) {
484 484
             $classes[] = 'autoptimizeHTML';
485 485
         }
486 486
 
487 487
         $classoptions = array(
488 488
             'autoptimizeScripts' => array(
489
-                'aggregate'           => $conf->get( 'autoptimize_js_aggregate' ),
490
-                'defer_not_aggregate' => $conf->get( 'autoptimize_js_defer_not_aggregate' ),
491
-                'justhead'            => $conf->get( 'autoptimize_js_justhead' ),
492
-                'forcehead'           => $conf->get( 'autoptimize_js_forcehead' ),
493
-                'trycatch'            => $conf->get( 'autoptimize_js_trycatch' ),
494
-                'js_exclude'          => $conf->get( 'autoptimize_js_exclude' ),
495
-                'cdn_url'             => $conf->get( 'autoptimize_cdn_url' ),
496
-                'include_inline'      => $conf->get( 'autoptimize_js_include_inline' ),
497
-                'minify_excluded'     => $conf->get( 'autoptimize_minify_excluded' ),
489
+                'aggregate'           => $conf->get('autoptimize_js_aggregate'),
490
+                'defer_not_aggregate' => $conf->get('autoptimize_js_defer_not_aggregate'),
491
+                'justhead'            => $conf->get('autoptimize_js_justhead'),
492
+                'forcehead'           => $conf->get('autoptimize_js_forcehead'),
493
+                'trycatch'            => $conf->get('autoptimize_js_trycatch'),
494
+                'js_exclude'          => $conf->get('autoptimize_js_exclude'),
495
+                'cdn_url'             => $conf->get('autoptimize_cdn_url'),
496
+                'include_inline'      => $conf->get('autoptimize_js_include_inline'),
497
+                'minify_excluded'     => $conf->get('autoptimize_minify_excluded'),
498 498
             ),
499 499
             'autoptimizeStyles'  => array(
500
-                'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
501
-                'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
502
-                'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
503
-                'defer'           => $conf->get( 'autoptimize_css_defer' ),
504
-                'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
505
-                'inline'          => $conf->get( 'autoptimize_css_inline' ),
506
-                'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
507
-                'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
508
-                'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
509
-                'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
510
-                'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
500
+                'aggregate'       => $conf->get('autoptimize_css_aggregate'),
501
+                'justhead'        => $conf->get('autoptimize_css_justhead'),
502
+                'datauris'        => $conf->get('autoptimize_css_datauris'),
503
+                'defer'           => $conf->get('autoptimize_css_defer'),
504
+                'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
505
+                'inline'          => $conf->get('autoptimize_css_inline'),
506
+                'css_exclude'     => $conf->get('autoptimize_css_exclude'),
507
+                'cdn_url'         => $conf->get('autoptimize_cdn_url'),
508
+                'include_inline'  => $conf->get('autoptimize_css_include_inline'),
509
+                'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
510
+                'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
511 511
             ),
512 512
             'autoptimizeHTML'    => array(
513
-                'keepcomments' => $conf->get( 'autoptimize_html_keepcomments' ),
513
+                'keepcomments' => $conf->get('autoptimize_html_keepcomments'),
514 514
             ),
515 515
         );
516 516
 
517
-        $content = apply_filters( 'autoptimize_filter_html_before_minify', $content );
517
+        $content = apply_filters('autoptimize_filter_html_before_minify', $content);
518 518
 
519 519
         // Run the classes!
520
-        foreach ( $classes as $name ) {
521
-            $instance = new $name( $content );
522
-            if ( $instance->read( $classoptions[ $name ] ) ) {
520
+        foreach ($classes as $name) {
521
+            $instance = new $name($content);
522
+            if ($instance->read($classoptions[$name])) {
523 523
                 $instance->minify();
524 524
                 $instance->cache();
525 525
                 $content = $instance->getcontent();
526 526
             }
527
-            unset( $instance );
527
+            unset($instance);
528 528
         }
529 529
 
530
-        $content = apply_filters( 'autoptimize_html_after_minify', $content );
530
+        $content = apply_filters('autoptimize_html_after_minify', $content);
531 531
 
532 532
         return $content;
533 533
     }
534 534
 
535
-    public static function autoptimize_nobuffer_optimize( $html_in ) {
535
+    public static function autoptimize_nobuffer_optimize($html_in) {
536 536
         $html_out = $html_in;
537 537
 
538
-        if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
538
+        if (apply_filters('autoptimize_filter_speedupper', true)) {
539 539
             $ao_speedupper = new autoptimizeSpeedupper();
540 540
         }
541 541
 
542
-        $self = new self( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
543
-        if ( $self->should_buffer() ) {
544
-            $html_out = $self->end_buffering( $html_in );
542
+        $self = new self(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
543
+        if ($self->should_buffer()) {
544
+            $html_out = $self->end_buffering($html_in);
545 545
         }
546 546
         return $html_out;
547 547
     }
@@ -605,45 +605,45 @@  discard block
 block discarded – undo
605 605
             'autoptimize_ccss_unloadccss',
606 606
         );
607 607
 
608
-        if ( ! is_multisite() ) {
609
-            foreach ( $delete_options as $del_opt ) {
610
-                delete_option( $del_opt );
608
+        if (!is_multisite()) {
609
+            foreach ($delete_options as $del_opt) {
610
+                delete_option($del_opt);
611 611
             }
612 612
             autoptimizeMain::remove_cronjobs();
613 613
         } else {
614 614
             global $wpdb;
615
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
615
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
616 616
             $original_blog_id = get_current_blog_id();
617
-            foreach ( $blog_ids as $blog_id ) {
618
-                switch_to_blog( $blog_id );
619
-                foreach ( $delete_options as $del_opt ) {
620
-                    delete_option( $del_opt );
617
+            foreach ($blog_ids as $blog_id) {
618
+                switch_to_blog($blog_id);
619
+                foreach ($delete_options as $del_opt) {
620
+                    delete_option($del_opt);
621 621
                 }
622 622
                 autoptimizeMain::remove_cronjobs();
623 623
             }
624
-            switch_to_blog( $original_blog_id );
624
+            switch_to_blog($original_blog_id);
625 625
         }
626 626
 
627 627
         // Remove AO CCSS cached files and directory.
628
-        $ao_ccss_dir = WP_CONTENT_DIR . '/uploads/ao_ccss/';
629
-        if ( file_exists( $ao_ccss_dir ) && is_dir( $ao_ccss_dir ) ) {
628
+        $ao_ccss_dir = WP_CONTENT_DIR.'/uploads/ao_ccss/';
629
+        if (file_exists($ao_ccss_dir) && is_dir($ao_ccss_dir)) {
630 630
             // fixme: should check for subdirs when in multisite and remove contents of those as well.
631
-            array_map( 'unlink', glob( $ao_ccss_dir . '*.{css,html,json,log,zip,lock}', GLOB_BRACE ) );
632
-            rmdir( $ao_ccss_dir );
631
+            array_map('unlink', glob($ao_ccss_dir.'*.{css,html,json,log,zip,lock}', GLOB_BRACE));
632
+            rmdir($ao_ccss_dir);
633 633
         }
634 634
     }
635 635
 
636 636
     public static function on_deactivation()
637 637
     {
638
-        if ( is_multisite() && is_network_admin() ) {
638
+        if (is_multisite() && is_network_admin()) {
639 639
             global $wpdb;
640
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
640
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
641 641
             $original_blog_id = get_current_blog_id();
642
-            foreach ( $blog_ids as $blog_id ) {
643
-                switch_to_blog( $blog_id );
642
+            foreach ($blog_ids as $blog_id) {
643
+                switch_to_blog($blog_id);
644 644
                 autoptimizeMain::remove_cronjobs();
645 645
             }
646
-            switch_to_blog( $original_blog_id );
646
+            switch_to_blog($original_blog_id);
647 647
         } else {
648 648
             autoptimizeMain::remove_cronjobs();
649 649
         }
@@ -652,9 +652,9 @@  discard block
 block discarded – undo
652 652
 
653 653
     public static function remove_cronjobs() {
654 654
         // Remove scheduled events.
655
-        foreach ( array( 'ao_cachechecker', 'ao_ccss_queue', 'ao_ccss_maintenance' ) as $_event ) {
656
-            if ( wp_get_schedule( $_event ) ) {
657
-                wp_clear_scheduled_hook( $_event );
655
+        foreach (array('ao_cachechecker', 'ao_ccss_queue', 'ao_ccss_maintenance') as $_event) {
656
+            if (wp_get_schedule($_event)) {
657
+                wp_clear_scheduled_hook($_event);
658 658
             }
659 659
         }
660 660
     }
@@ -663,36 +663,36 @@  discard block
 block discarded – undo
663 663
     {
664 664
         echo '<div class="error"><p>';
665 665
         // Translators: %s is the cache directory location.
666
-        printf( __( 'Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize' ), AUTOPTIMIZE_CACHE_DIR );
666
+        printf(__('Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize'), AUTOPTIMIZE_CACHE_DIR);
667 667
         echo '</p></div>';
668 668
     }
669 669
 
670 670
     public static function notice_installed()
671 671
     {
672 672
         echo '<div class="updated"><p>';
673
-        _e( 'Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize' );
673
+        _e('Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize');
674 674
         echo '</p></div>';
675 675
     }
676 676
 
677 677
     public static function notice_updated()
678 678
     {
679 679
         echo '<div class="updated"><p>';
680
-        _e( 'Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize' );
680
+        _e('Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize');
681 681
         echo '</p></div>';
682 682
     }
683 683
 
684 684
     public static function notice_plug_imgopt()
685 685
     {
686 686
         // Translators: the URL added points to the Autopmize Extra settings.
687
-        $_ao_imgopt_plug_notice      = sprintf( __( 'Did you know Autoptimize includes on-the-fly image optimization (with support for WebP and AVIF) and CDN via ShortPixel? Check out the %1$sAutoptimize Image settings%2$s to activate this option.', 'autoptimize' ), '<a href="options-general.php?page=autoptimize_imgopt">', '</a>' );
688
-        $_ao_imgopt_plug_notice      = apply_filters( 'autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice );
687
+        $_ao_imgopt_plug_notice      = sprintf(__('Did you know Autoptimize includes on-the-fly image optimization (with support for WebP and AVIF) and CDN via ShortPixel? Check out the %1$sAutoptimize Image settings%2$s to activate this option.', 'autoptimize'), '<a href="options-general.php?page=autoptimize_imgopt">', '</a>');
688
+        $_ao_imgopt_plug_notice      = apply_filters('autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice);
689 689
         $_ao_imgopt_launch_ok        = autoptimizeImages::launch_ok_wrapper();
690 690
         $_ao_imgopt_plug_dismissible = 'ao-img-opt-plug-123';
691 691
         $_ao_imgopt_active           = autoptimizeImages::imgopt_active();
692
-        $_is_ao_settings_page        = ( str_replace( array( 'autoptimize', 'autoptimize_imgopt', 'ao_critcss', 'autoptimize_extra', 'ao_partners' ), '', $_SERVER['REQUEST_URI'] ) !== $_SERVER['REQUEST_URI'] ? true : false );
692
+        $_is_ao_settings_page        = (str_replace(array('autoptimize', 'autoptimize_imgopt', 'ao_critcss', 'autoptimize_extra', 'ao_partners'), '', $_SERVER['REQUEST_URI']) !== $_SERVER['REQUEST_URI'] ? true : false);
693 693
 
694
-        if ( current_user_can( 'manage_options' ) && $_is_ao_settings_page && '' !== $_ao_imgopt_plug_notice && ! $_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active( $_ao_imgopt_plug_dismissible ) ) {
695
-            echo '<div class="notice notice-info is-dismissible" data-dismissible="' . $_ao_imgopt_plug_dismissible . '"><p>';
694
+        if (current_user_can('manage_options') && $_is_ao_settings_page && '' !== $_ao_imgopt_plug_notice && !$_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active($_ao_imgopt_plug_dismissible)) {
695
+            echo '<div class="notice notice-info is-dismissible" data-dismissible="'.$_ao_imgopt_plug_dismissible.'"><p>';
696 696
             echo $_ao_imgopt_plug_notice;
697 697
             echo '</p></div>';
698 698
         }
Please login to merge, or discard this patch.
classes/critcss-inc/admin_settings_rules.php 1 patch
Spacing   +70 added lines, -70 removed lines patch added patch discarded remove patch
@@ -13,12 +13,12 @@  discard block
 block discarded – undo
13 13
 ?>
14 14
     <ul id="rules-panel">
15 15
         <li class="itemDetail">
16
-            <h2 class="itemTitle"><?php _e( 'Rules', 'autoptimize' ); ?></h2>
16
+            <h2 class="itemTitle"><?php _e('Rules', 'autoptimize'); ?></h2>
17 17
 
18 18
             <!-- BEGIN Rule dialogs -->
19 19
             <!-- Unsaved dialog -->
20 20
             <div id="unSavedWarning" class="hidden updated settings-error notice notice-warning is-dismissible">
21
-                <p><?php _e( "<strong>Rules or Queue changed!</strong> Don't forget to save your changes!", 'autoptimize' ); ?></p>
21
+                <p><?php _e("<strong>Rules or Queue changed!</strong> Don't forget to save your changes!", 'autoptimize'); ?></p>
22 22
             </div>
23 23
 
24 24
             <!-- Create/edit rule dialog -->
@@ -26,97 +26,97 @@  discard block
 block discarded – undo
26 26
                 <table class="form-table rules">
27 27
                     <tr id="critcss_addedit_type_wrapper">
28 28
                         <th scope="row">
29
-                            <?php _e( 'Rule Type', 'autoptimize' ); ?>
29
+                            <?php _e('Rule Type', 'autoptimize'); ?>
30 30
                         </th>
31 31
                         <td>
32 32
                             <select id="critcss_addedit_type" style="width:100%;">
33
-                                <option value="paths"><?php _e( 'Path', 'autoptimize' ); ?></option>
34
-                                <option value="types"><?php _e( 'Conditional Tag', 'autoptimize' ); ?></option>
33
+                                <option value="paths"><?php _e('Path', 'autoptimize'); ?></option>
34
+                                <option value="types"><?php _e('Conditional Tag', 'autoptimize'); ?></option>
35 35
                             </select>
36 36
                         </td>
37 37
                     </tr>
38 38
                     <tr id="critcss_addedit_path_wrapper">
39 39
                         <th scope="row">
40
-                            <?php _e( 'String in Path', 'autoptimize' ); ?>
40
+                            <?php _e('String in Path', 'autoptimize'); ?>
41 41
                         </th>
42 42
                         <td>
43
-                            <input type="text" id="critcss_addedit_path" placeholder="<?php _e( "Enter a part of the URL that identifies the page(s) you're targetting.", 'autoptimize' ); ?>" style="width:100%;" value="">
43
+                            <input type="text" id="critcss_addedit_path" placeholder="<?php _e("Enter a part of the URL that identifies the page(s) you're targetting.", 'autoptimize'); ?>" style="width:100%;" value="">
44 44
                         </td>
45 45
                     </tr>
46 46
                     <tr id="critcss_addedit_pagetype_wrapper">
47 47
                         <th scope="row">
48
-                            <?php _e( 'Conditional Tag, Custom Post Type or Page Template', 'autoptimize' ); ?>
48
+                            <?php _e('Conditional Tag, Custom Post Type or Page Template', 'autoptimize'); ?>
49 49
                         </th>
50 50
                         <td>
51 51
                             <select id="critcss_addedit_pagetype" style="width:100%;">
52
-                                <option value="" disabled selected><?php _e( 'Select from the list below...', 'autoptimize' ); ?></option>
53
-                                <optgroup label="<?php _e( 'Standard Conditional Tags', 'autoptimize' ); ?>">
52
+                                <option value="" disabled selected><?php _e('Select from the list below...', 'autoptimize'); ?></option>
53
+                                <optgroup label="<?php _e('Standard Conditional Tags', 'autoptimize'); ?>">
54 54
                                     <?php
55 55
                                     // Render grouped simple conditional tags.
56
-                                    foreach ( $ao_ccss_types as $ctag ) {
57
-                                        $optgrp = substr( $ctag, 0, 3 );
58
-                                        if ( substr( $ctag, 0, 3 ) === 'is_' ) {
59
-                                            echo '<option value="' . $ctag . '">' . $ctag . '</option>';
56
+                                    foreach ($ao_ccss_types as $ctag) {
57
+                                        $optgrp = substr($ctag, 0, 3);
58
+                                        if (substr($ctag, 0, 3) === 'is_') {
59
+                                            echo '<option value="'.$ctag.'">'.$ctag.'</option>';
60 60
                                         }
61
-                                        $prevgrp = substr( $ctag, 0, 3 );
61
+                                        $prevgrp = substr($ctag, 0, 3);
62 62
                                     }
63 63
 
64 64
                                     // Render grouped custom post types, templates and specific conditional tags.
65
-                                    foreach ( $ao_ccss_types as $type ) {
66
-                                        $optgrp = substr( $type, 0, 3 );
65
+                                    foreach ($ao_ccss_types as $type) {
66
+                                        $optgrp = substr($type, 0, 3);
67 67
 
68 68
                                         // Option groups labels.
69
-                                        if ( $optgrp !== $prevgrp && 'is_' !== $optgrp ) {
69
+                                        if ($optgrp !== $prevgrp && 'is_' !== $optgrp) {
70 70
                                             ?>
71 71
                                             </optgroup>
72 72
                                             <?php
73
-                                            if ( substr( $type, 0, 12 ) === 'custom_post_' ) {
73
+                                            if (substr($type, 0, 12) === 'custom_post_') {
74 74
                                                 ?>
75
-                                                <optgroup label="<?php _e( 'Custom Post Types', 'autoptimize' ); ?>">
75
+                                                <optgroup label="<?php _e('Custom Post Types', 'autoptimize'); ?>">
76 76
                                                 <?php
77
-                                            } elseif ( substr( $type, 0, 9 ) === 'template_' ) {
77
+                                            } elseif (substr($type, 0, 9) === 'template_') {
78 78
                                                 ?>
79
-                                                <optgroup label="<?php _e( 'Page Templates', 'autoptimize' ); ?>">
79
+                                                <optgroup label="<?php _e('Page Templates', 'autoptimize'); ?>">
80 80
                                                 <?php
81
-                                            } elseif ( substr( $type, 0, 4 ) === 'bbp_' ) {
81
+                                            } elseif (substr($type, 0, 4) === 'bbp_') {
82 82
                                                 ?>
83
-                                                <optgroup label="<?php _e( 'BBPress Conditional Tags', 'autoptimize' ); ?>">
83
+                                                <optgroup label="<?php _e('BBPress Conditional Tags', 'autoptimize'); ?>">
84 84
                                                 <?php
85
-                                            } elseif ( substr( $type, 0, 3 ) === 'bp_' ) {
85
+                                            } elseif (substr($type, 0, 3) === 'bp_') {
86 86
                                                 ?>
87
-                                                <optgroup label="<?php _e( 'BuddyPress Conditional Tags', 'autoptimize' ); ?>">
87
+                                                <optgroup label="<?php _e('BuddyPress Conditional Tags', 'autoptimize'); ?>">
88 88
                                                 <?php
89
-                                            } elseif ( substr( $type, 0, 4 ) === 'edd_' ) {
89
+                                            } elseif (substr($type, 0, 4) === 'edd_') {
90 90
                                                 ?>
91
-                                                <optgroup label="<?php _e( 'Easy Digital Downloads Conditional Tags', 'autoptimize' ); ?>">
91
+                                                <optgroup label="<?php _e('Easy Digital Downloads Conditional Tags', 'autoptimize'); ?>">
92 92
                                                 <?php
93
-                                            } elseif ( substr( $type, 0, 4 ) === 'woo_' ) {
93
+                                            } elseif (substr($type, 0, 4) === 'woo_') {
94 94
                                                 ?>
95
-                                                <optgroup label="<?php _e( 'WooCommerce Conditional Tags', 'autoptimize' ); ?>">
95
+                                                <optgroup label="<?php _e('WooCommerce Conditional Tags', 'autoptimize'); ?>">
96 96
                                                 <?php
97 97
                                             }
98 98
                                         }
99 99
 
100 100
                                         // Options.
101
-                                        if ( 'is_' !== $optgrp ) {
101
+                                        if ('is_' !== $optgrp) {
102 102
                                             // Remove prefix from custom post types, templates and some specific conditional tags.
103
-                                            if ( substr( $type, 0, 12 ) === 'custom_post_' ) {
104
-                                                $_type = str_replace( 'custom_post_', '', $type );
105
-                                            } elseif ( substr( $type, 0, 9 ) === 'template_' ) {
106
-                                                $_type = str_replace( 'template_', '', $type );
107
-                                            } elseif ( 'bbp_is_bbpress' == $type ) {
108
-                                                $_type = str_replace( 'bbp_', '', $type );
109
-                                            } elseif ( 'bp_is_buddypress' == $type ) {
110
-                                                $_type = str_replace( 'bp_', '', $type );
111
-                                            } elseif ( substr( $type, 0, 4 ) === 'woo_' ) {
112
-                                                $_type = str_replace( 'woo_', '', $type );
113
-                                            } elseif ( substr( $type, 0, 4 ) === 'edd_' ) {
114
-                                                $_type = str_replace( 'edd_', '', $type );
103
+                                            if (substr($type, 0, 12) === 'custom_post_') {
104
+                                                $_type = str_replace('custom_post_', '', $type);
105
+                                            } elseif (substr($type, 0, 9) === 'template_') {
106
+                                                $_type = str_replace('template_', '', $type);
107
+                                            } elseif ('bbp_is_bbpress' == $type) {
108
+                                                $_type = str_replace('bbp_', '', $type);
109
+                                            } elseif ('bp_is_buddypress' == $type) {
110
+                                                $_type = str_replace('bp_', '', $type);
111
+                                            } elseif (substr($type, 0, 4) === 'woo_') {
112
+                                                $_type = str_replace('woo_', '', $type);
113
+                                            } elseif (substr($type, 0, 4) === 'edd_') {
114
+                                                $_type = str_replace('edd_', '', $type);
115 115
                                             } else {
116 116
                                                 $_type = $type;
117 117
                                             }
118 118
 
119
-                                            echo '<option value="' . $type . '">' . $_type . '</option>';
119
+                                            echo '<option value="'.$type.'">'.$_type.'</option>';
120 120
                                             $prevgrp = $optgrp;
121 121
                                         }
122 122
                                     }
@@ -127,10 +127,10 @@  discard block
 block discarded – undo
127 127
                     </tr>
128 128
                     <tr>
129 129
                         <th scope="row">
130
-                            <?php _e( 'Custom Critical CSS', 'autoptimize' ); ?>
130
+                            <?php _e('Custom Critical CSS', 'autoptimize'); ?>
131 131
                         </th>
132 132
                         <td>
133
-                            <textarea id="critcss_addedit_css" rows="13" cols="10" style="width:100%;" placeholder="<?php _e( 'Paste your specific critical CSS here and hit submit to save.', 'autoptimize' ); ?>"></textarea>
133
+                            <textarea id="critcss_addedit_css" rows="13" cols="10" style="width:100%;" placeholder="<?php _e('Paste your specific critical CSS here and hit submit to save.', 'autoptimize'); ?>"></textarea>
134 134
                             <input type="hidden" id="critcss_addedit_file">
135 135
                             <input type="hidden" id="critcss_addedit_id">
136 136
                         </td>
@@ -139,23 +139,23 @@  discard block
 block discarded – undo
139 139
             </div>
140 140
 
141 141
             <!-- Remove dialog -->
142
-            <div id="confirm-rm" title="<?php _e( 'Delete Rule', 'autoptimize' ); ?>" class="hidden">
143
-                <p><?php _e( 'This Critical CSS rule will be deleted immediately and cannot be recovered.<br /><br /><strong>Are you sure?</strong>', 'autoptimize' ); ?></p>
142
+            <div id="confirm-rm" title="<?php _e('Delete Rule', 'autoptimize'); ?>" class="hidden">
143
+                <p><?php _e('This Critical CSS rule will be deleted immediately and cannot be recovered.<br /><br /><strong>Are you sure?</strong>', 'autoptimize'); ?></p>
144 144
             </div>
145 145
 
146 146
             <!-- Remove All dialog -->
147
-            <div id="confirm-rm-all" title="<?php _e( 'Delete all Rules and Jobs', 'autoptimize' ); ?>" class="hidden">
148
-                <p><?php _e( 'All Critical CSS rules will be deleted immediately and cannot be recovered.<br /><br /><strong>Are you sure?</strong>', 'autoptimize' ); ?></p>
147
+            <div id="confirm-rm-all" title="<?php _e('Delete all Rules and Jobs', 'autoptimize'); ?>" class="hidden">
148
+                <p><?php _e('All Critical CSS rules will be deleted immediately and cannot be recovered.<br /><br /><strong>Are you sure?</strong>', 'autoptimize'); ?></p>
149 149
             </div>
150 150
 
151 151
             <!-- Add/edit default critical CSS dialog -->
152 152
             <div id="default_critcss_wrapper" class="hidden">
153
-                <textarea id="dummyDefault" rows="19" cols="10" style="width:100%;" placeholder="<?php _e( 'Paste your MINIFIED default critical CSS here and hit submit to save. This is the critical CSS to be used for every page NOT MATCHING any rule.', 'autoptimize' ); ?>"></textarea>
153
+                <textarea id="dummyDefault" rows="19" cols="10" style="width:100%;" placeholder="<?php _e('Paste your MINIFIED default critical CSS here and hit submit to save. This is the critical CSS to be used for every page NOT MATCHING any rule.', 'autoptimize'); ?>"></textarea>
154 154
             </div>
155 155
 
156 156
             <!-- Add/edit additional critical CSS dialog -->
157 157
             <div id="additional_critcss_wrapper" class="hidden">
158
-                <textarea id="dummyAdditional" rows="19" cols="10" style="width:100%;" placeholder="<?php _e( 'Paste your MINIFIED additional critical CSS here and hit submit to save. This is the CSS to be added AT THE END of every critical CSS provided by a matching rule, or the default one.', 'autoptimize' ); ?>"></textarea>
158
+                <textarea id="dummyAdditional" rows="19" cols="10" style="width:100%;" placeholder="<?php _e('Paste your MINIFIED additional critical CSS here and hit submit to save. This is the CSS to be added AT THE END of every critical CSS provided by a matching rule, or the default one.', 'autoptimize'); ?>"></textarea>
159 159
             </div>
160 160
 
161 161
             <!-- Wrapper for in screen notices -->
@@ -165,38 +165,38 @@  discard block
 block discarded – undo
165 165
             <!-- BEGIN Rules UI -->
166 166
             <div class="howto">
167 167
                 <div class="title-wrap">
168
-                    <h4 class="title"><?php _e( 'How To Use Autoptimize CriticalCSS Power-Up Rules', 'autoptimize' ); ?></h4>
169
-                    <p class="subtitle"><?php _e( 'Click the side arrow to toggle instructions', 'autoptimize' ); ?></p>
168
+                    <h4 class="title"><?php _e('How To Use Autoptimize CriticalCSS Power-Up Rules', 'autoptimize'); ?></h4>
169
+                    <p class="subtitle"><?php _e('Click the side arrow to toggle instructions', 'autoptimize'); ?></p>
170 170
                 </div>
171 171
                 <button type="button" class="toggle-btn">
172 172
                     <span class="toggle-indicator dashicons dashicons-arrow-up dashicons-arrow-down"></span>
173 173
                 </button>
174 174
                 <div class="howto-wrap hidden">
175
-                <p><?php _e( "TL;DR:<br />Critical CSS files from <span class='badge auto'>AUTO</span> <strong>rules are updated automatically</strong> while from <span class='badge manual'>MANUAL</span> <strong>rules are not.</strong>", 'autoptimize' ); ?></p>
175
+                <p><?php _e("TL;DR:<br />Critical CSS files from <span class='badge auto'>AUTO</span> <strong>rules are updated automatically</strong> while from <span class='badge manual'>MANUAL</span> <strong>rules are not.</strong>", 'autoptimize'); ?></p>
176 176
                     <ol>
177
-                        <li><?php _e( 'When a valid <a href="https://criticalcss.com/?aff=1" target="_blank">criticalcss.com</a> API key is in place, Autoptimize CriticalCSS Power-Up starts to operate <strong>automatically</strong>.', 'autoptimize' ); ?></li>
178
-                        <li><?php _e( 'Upon a request to any of the frontend pages made by a <strong>not logged in user</strong>, it will <strong>asynchronously</strong> fetch and update the critical CSS from <a href="https://criticalcss.com/?aff=1" target="_blank">criticalcss.com</a> for conditional tags you have on your site (e.g. is_page, is_single, is_archive etc.)', 'autoptimize' ); ?></li>
179
-                        <li><?php _e( 'These requests also creates an <span class="badge auto">AUTO</span> rule for you. The critical CSS files from <span class="badge auto">AUTO</span> <strong>rules are updated automatically</strong> when a CSS file in your theme or frontend plugins changes.', 'autoptimize' ); ?></li>
180
-                        <li><?php _e( 'If you want to make any fine tunning in the critical CSS file of an <span class="badge auto">AUTO</span> rule, click on "Edit" button of that rule, change what you need, submit and save it. The rule you\'ve just edited becomes a <span class="badge manual">MANUAL</span> rule then.', 'autoptimize' ); ?></li>
181
-                        <li><?php _e( 'You can create <span class="badge manual">MANUAL</span> rules for specific page paths (URL). Longer, more specific paths have higher priority over shorter ones, which in turn have higher priority over <span class="badge auto">AUTO</span> rules. Also, critical CSS files from <span class="badge manual">MANUAL</span> <strong>rules are NEVER updated automatically.</strong>', 'autoptimize' ); ?></li>
182
-                        <li><?php _e( 'You can also create an <span class="badge auto">AUTO</span> rule for a path by leaving its critical CSS content empty. The critical CSS for that path will be automatically fetched from <a href="https://criticalcss.com/?aff=1" target="_blank">criticalcss.com</a> for you and updated whenever it changes.', 'autoptimize' ); ?></li>
183
-                        <li><?php _e( "If you see an <span class='badge auto'>AUTO</span> rule with a <span class='badge review'>R</span> besides it (R is after REVIEW), it means that the fetched critical CSS for that rule is not 100% guaranteed to work according to <a href='https://criticalcss.com/?aff=1' target='_blank'>criticalcss.com</a> analysis. It's advised that you edit and review that rule to make any required adjustments.", 'autoptimize' ); ?></li>
184
-                        <li><?php _e( 'At any time you can delete an <span class="badge auto">AUTO</span> or <span class="badge manual">MANUAL</span> rule by cliking on "Remove" button of the desired rule and saving your changes.', 'autoptimize' ); ?></li>
177
+                        <li><?php _e('When a valid <a href="https://criticalcss.com/?aff=1" target="_blank">criticalcss.com</a> API key is in place, Autoptimize CriticalCSS Power-Up starts to operate <strong>automatically</strong>.', 'autoptimize'); ?></li>
178
+                        <li><?php _e('Upon a request to any of the frontend pages made by a <strong>not logged in user</strong>, it will <strong>asynchronously</strong> fetch and update the critical CSS from <a href="https://criticalcss.com/?aff=1" target="_blank">criticalcss.com</a> for conditional tags you have on your site (e.g. is_page, is_single, is_archive etc.)', 'autoptimize'); ?></li>
179
+                        <li><?php _e('These requests also creates an <span class="badge auto">AUTO</span> rule for you. The critical CSS files from <span class="badge auto">AUTO</span> <strong>rules are updated automatically</strong> when a CSS file in your theme or frontend plugins changes.', 'autoptimize'); ?></li>
180
+                        <li><?php _e('If you want to make any fine tunning in the critical CSS file of an <span class="badge auto">AUTO</span> rule, click on "Edit" button of that rule, change what you need, submit and save it. The rule you\'ve just edited becomes a <span class="badge manual">MANUAL</span> rule then.', 'autoptimize'); ?></li>
181
+                        <li><?php _e('You can create <span class="badge manual">MANUAL</span> rules for specific page paths (URL). Longer, more specific paths have higher priority over shorter ones, which in turn have higher priority over <span class="badge auto">AUTO</span> rules. Also, critical CSS files from <span class="badge manual">MANUAL</span> <strong>rules are NEVER updated automatically.</strong>', 'autoptimize'); ?></li>
182
+                        <li><?php _e('You can also create an <span class="badge auto">AUTO</span> rule for a path by leaving its critical CSS content empty. The critical CSS for that path will be automatically fetched from <a href="https://criticalcss.com/?aff=1" target="_blank">criticalcss.com</a> for you and updated whenever it changes.', 'autoptimize'); ?></li>
183
+                        <li><?php _e("If you see an <span class='badge auto'>AUTO</span> rule with a <span class='badge review'>R</span> besides it (R is after REVIEW), it means that the fetched critical CSS for that rule is not 100% guaranteed to work according to <a href='https://criticalcss.com/?aff=1' target='_blank'>criticalcss.com</a> analysis. It's advised that you edit and review that rule to make any required adjustments.", 'autoptimize'); ?></li>
184
+                        <li><?php _e('At any time you can delete an <span class="badge auto">AUTO</span> or <span class="badge manual">MANUAL</span> rule by cliking on "Remove" button of the desired rule and saving your changes.', 'autoptimize'); ?></li>
185 185
                     </ol>
186 186
                 </div>
187 187
             </div>
188
-            <textarea id="autoptimize_css_defer_inline" name="autoptimize_css_defer_inline" rows="19" cols="10" style="width:100%;"><?php echo get_option( 'autoptimize_css_defer_inline', '' ); ?></textarea>
189
-            <textarea id="autoptimize_ccss_additional" name="autoptimize_ccss_additional" rows="19" cols="10" style="width:100%;"><?php echo get_option( 'autoptimize_ccss_additional', '' ); ?></textarea>
188
+            <textarea id="autoptimize_css_defer_inline" name="autoptimize_css_defer_inline" rows="19" cols="10" style="width:100%;"><?php echo get_option('autoptimize_css_defer_inline', ''); ?></textarea>
189
+            <textarea id="autoptimize_ccss_additional" name="autoptimize_ccss_additional" rows="19" cols="10" style="width:100%;"><?php echo get_option('autoptimize_ccss_additional', ''); ?></textarea>
190 190
             <table class="rules-list" cellspacing="0"><tbody id="rules-list"></tbody></table>
191
-            <input class="hidden" type="text" id="critCssOrigin" name="autoptimize_ccss_rules" value='<?php echo ( json_encode( $ao_ccss_rules, JSON_FORCE_OBJECT ) ); ?>'>
191
+            <input class="hidden" type="text" id="critCssOrigin" name="autoptimize_ccss_rules" value='<?php echo (json_encode($ao_ccss_rules, JSON_FORCE_OBJECT)); ?>'>
192 192
             <div class="submit rules-btn">
193 193
                 <div class="alignleft">
194
-                    <span id="addCritCssButton" class="button-secondary"><?php _e( 'Add New Rule', 'autoptimize' ); ?></span>
195
-                    <span id="editDefaultButton" class="button-secondary"><?php _e( 'Edit Default Rule CSS', 'autoptimize' ); ?></span>
196
-                    <span id="editAdditionalButton" class="button-secondary"><?php _e( 'Add CSS To All Rules', 'autoptimize' ); ?></span>
194
+                    <span id="addCritCssButton" class="button-secondary"><?php _e('Add New Rule', 'autoptimize'); ?></span>
195
+                    <span id="editDefaultButton" class="button-secondary"><?php _e('Edit Default Rule CSS', 'autoptimize'); ?></span>
196
+                    <span id="editAdditionalButton" class="button-secondary"><?php _e('Add CSS To All Rules', 'autoptimize'); ?></span>
197 197
                 </div>
198 198
                 <div class="alignright">
199
-                    <span id="removeAllRules" class="button-secondary" style="color:red;"><?php _e( 'Remove all rules', 'autoptimize' ); ?></span>
199
+                    <span id="removeAllRules" class="button-secondary" style="color:red;"><?php _e('Remove all rules', 'autoptimize'); ?></span>
200 200
                 </div>
201 201
             </div>
202 202
             <!-- END Rules UI -->
Please login to merge, or discard this patch.
classes/critcss-inc/admin_settings_adv.php 1 patch
Spacing   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
     global $ao_ccss_unloadccss;
20 20
 
21 21
     // In case domain is not set yet (done in cron.php).
22
-    if ( empty( $ao_ccss_domain ) ) {
22
+    if (empty($ao_ccss_domain)) {
23 23
         $ao_ccss_domain = get_site_url();
24 24
     }
25 25
 
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 ?>
29 29
     <ul id="adv-panel">
30 30
         <li class="itemDetail">
31
-            <h2 class="itemTitle fleft"><?php _e( 'Advanced Settings', 'autoptimize' ); ?></h2>
31
+            <h2 class="itemTitle fleft"><?php _e('Advanced Settings', 'autoptimize'); ?></h2>
32 32
             <button type="button" class="toggle-btn">
33 33
                 <span class="toggle-indicator dashicons dashicons-arrow-up dashicons-arrow-down"></span>
34 34
             </button>
@@ -36,114 +36,114 @@  discard block
 block discarded – undo
36 36
                 <table id="key" class="form-table">
37 37
                     <tr>
38 38
                         <th scope="row">
39
-                            <?php _e( 'Viewport Size', 'autoptimize' ); ?>
39
+                            <?php _e('Viewport Size', 'autoptimize'); ?>
40 40
                         </th>
41 41
                         <td>
42
-                            <label for="autoptimize_ccss_vw"><?php _e( 'Width', 'autoptimize' ); ?>:</label> <input type="number" id="autoptimize_ccss_vw" name="autoptimize_ccss_viewport[w]" min="800" max="4096" placeholder="1400" value="<?php echo $viewport['w']; ?>" />&nbsp;&nbsp;
43
-                            <label for="autoptimize_ccss_vh"><?php _e( 'Height', 'autoptimize' ); ?>:</label> <input type="number" id="autoptimize_ccss_vh" name="autoptimize_ccss_viewport[h]" min="600" max="2160" placeholder="1080" value="<?php echo $viewport['h']; ?>" />
42
+                            <label for="autoptimize_ccss_vw"><?php _e('Width', 'autoptimize'); ?>:</label> <input type="number" id="autoptimize_ccss_vw" name="autoptimize_ccss_viewport[w]" min="800" max="4096" placeholder="1400" value="<?php echo $viewport['w']; ?>" />&nbsp;&nbsp;
43
+                            <label for="autoptimize_ccss_vh"><?php _e('Height', 'autoptimize'); ?>:</label> <input type="number" id="autoptimize_ccss_vh" name="autoptimize_ccss_viewport[h]" min="600" max="2160" placeholder="1080" value="<?php echo $viewport['h']; ?>" />
44 44
                             <p class="notes">
45
-                                <?php _e( '<a href="https://criticalcss.com/account/api-keys?aff=1" target="_blank">criticalcss.com</a> default viewport size is 1400x1080 pixels (width x height). You can change this size by typing a desired width and height values above. Allowed value ranges are from 800 to 4096 for width and from 600 to 2160 for height.', 'autoptimize' ); ?>
45
+                                <?php _e('<a href="https://criticalcss.com/account/api-keys?aff=1" target="_blank">criticalcss.com</a> default viewport size is 1400x1080 pixels (width x height). You can change this size by typing a desired width and height values above. Allowed value ranges are from 800 to 4096 for width and from 600 to 2160 for height.', 'autoptimize'); ?>
46 46
                             </p>
47 47
                         </td>
48 48
                     </tr>
49 49
                     <tr>
50 50
                         <th scope="row">
51
-                            <?php _e( 'Force Include CSS selectors', 'autoptimize' ); ?>
51
+                            <?php _e('Force Include CSS selectors', 'autoptimize'); ?>
52 52
                         </th>
53 53
                         <td>
54
-                            <textarea id="autoptimize_ccss_finclude" name="autoptimize_ccss_finclude" rows='3' maxlenght='500' style="width:100%;" placeholder="<?php _e( '.button-special,//#footer', 'autoptimize' ); ?>"><?php echo trim( $ao_ccss_finclude ); ?></textarea>
54
+                            <textarea id="autoptimize_ccss_finclude" name="autoptimize_ccss_finclude" rows='3' maxlenght='500' style="width:100%;" placeholder="<?php _e('.button-special,//#footer', 'autoptimize'); ?>"><?php echo trim($ao_ccss_finclude); ?></textarea>
55 55
                             <p class="notes">
56
-                                <?php _e( 'Force include CSS selectors can be used to style dynamic content that is not part of the HTML that is seen during the Critical CSS generation. To use this feature, add comma separated values with both simple strings and/or regular expressions to match the desired selectors. Regular expressions must be preceeded by two forward slashes. For instance: <code>.button-special,//#footer</code>. In this example <code>.button-special</code> will match <code>.button-special</code> selector only, while <code>//#footer</code> will match <code>#footer</code>, <code>#footer-address</code> and <code>#footer-phone</code> selectors in case they exist.<br />Do take into account that changing this setting will only affect new/ updated rules, so you might want to remove old rules and clear your page cache to expedite the forceIncludes becoming used.', 'autoptimize' ); ?>
56
+                                <?php _e('Force include CSS selectors can be used to style dynamic content that is not part of the HTML that is seen during the Critical CSS generation. To use this feature, add comma separated values with both simple strings and/or regular expressions to match the desired selectors. Regular expressions must be preceeded by two forward slashes. For instance: <code>.button-special,//#footer</code>. In this example <code>.button-special</code> will match <code>.button-special</code> selector only, while <code>//#footer</code> will match <code>#footer</code>, <code>#footer-address</code> and <code>#footer-phone</code> selectors in case they exist.<br />Do take into account that changing this setting will only affect new/ updated rules, so you might want to remove old rules and clear your page cache to expedite the forceIncludes becoming used.', 'autoptimize'); ?>
57 57
                             </p>
58 58
                         </td>
59 59
                     </tr>
60 60
                     <tr>
61 61
                         <th scope="row">
62
-                            <?php _e( 'Queue processing time limit', 'autoptimize' ); ?>
62
+                            <?php _e('Queue processing time limit', 'autoptimize'); ?>
63 63
                         </th>
64 64
                         <td>
65 65
                             <input type="number" id="autoptimize_ccss_rtimelimit" name="autoptimize_ccss_rtimelimit" min="0" max="240" placeholder="0" value="<?php echo $ao_ccss_rtimelimit; ?>" />
66 66
                             <p class="notes">
67
-                                <?php _e( 'The cronned queue processing is an asynchronous process triggerd by (WordPress) cron. To avoid this process from running too long and potentially getting killed, you can set the number of seconds here, 0 means no limit.', 'autoptimize' ); ?>
67
+                                <?php _e('The cronned queue processing is an asynchronous process triggerd by (WordPress) cron. To avoid this process from running too long and potentially getting killed, you can set the number of seconds here, 0 means no limit.', 'autoptimize'); ?>
68 68
                             </p>
69 69
                         </td>
70 70
                     </tr>
71 71
                     <tr>
72 72
                         <th scope="row">
73
-                            <?php _e( 'Fetch Original CSS', 'autoptimize' ); ?>
73
+                            <?php _e('Fetch Original CSS', 'autoptimize'); ?>
74 74
                         </th>
75 75
                         <td>
76
-                            <input type="checkbox" id="autoptimize_ccss_noptimize" name="autoptimize_ccss_noptimize" value="1" <?php checked( 1 == $ao_ccss_noptimize ); ?>>
76
+                            <input type="checkbox" id="autoptimize_ccss_noptimize" name="autoptimize_ccss_noptimize" value="1" <?php checked(1 == $ao_ccss_noptimize); ?>>
77 77
                             <p class="notes">
78
-                                <?php _e( 'In some (rare) cases the generation of critical CSS works better with the original CSS instead of the Autoptimized one, this option enables that behavior.', 'autoptimize' ); ?>
78
+                                <?php _e('In some (rare) cases the generation of critical CSS works better with the original CSS instead of the Autoptimized one, this option enables that behavior.', 'autoptimize'); ?>
79 79
                             </p>
80 80
                         </td>
81 81
                     </tr>
82 82
                     <tr>
83 83
                         <th scope="row">
84
-                            <?php _e( 'Add CCSS for logged in users?', 'autoptimize' ); ?>
84
+                            <?php _e('Add CCSS for logged in users?', 'autoptimize'); ?>
85 85
                         </th>
86 86
                         <td>
87
-                            <input type="checkbox" id="autoptimize_ccss_loggedin" name="autoptimize_ccss_loggedin" value="1" <?php checked( 1 == $ao_ccss_loggedin ); ?>>
87
+                            <input type="checkbox" id="autoptimize_ccss_loggedin" name="autoptimize_ccss_loggedin" value="1" <?php checked(1 == $ao_ccss_loggedin); ?>>
88 88
                             <p class="notes">
89
-                                <?php _e( 'Critical CSS is generated by criticalcss.com from your pages as seen by an "anonymous visitor". Disable this option if you don\'t want the "visitor" critical CSS to be used for logged in users.', 'autoptimize' ); ?>
89
+                                <?php _e('Critical CSS is generated by criticalcss.com from your pages as seen by an "anonymous visitor". Disable this option if you don\'t want the "visitor" critical CSS to be used for logged in users.', 'autoptimize'); ?>
90 90
                             </p>
91 91
                         </td>
92 92
                     </tr>
93 93
                     <tr>
94 94
                         <th scope="row">
95
-                            <?php _e( 'Force path-based rules to be generated for pages?', 'autoptimize' ); ?>
95
+                            <?php _e('Force path-based rules to be generated for pages?', 'autoptimize'); ?>
96 96
                         </th>
97 97
                         <td>
98
-                            <input type="checkbox" id="autoptimize_ccss_forcepath" name="autoptimize_ccss_forcepath" value="1" <?php checked( 1 == $ao_ccss_forcepath ); ?>>
98
+                            <input type="checkbox" id="autoptimize_ccss_forcepath" name="autoptimize_ccss_forcepath" value="1" <?php checked(1 == $ao_ccss_forcepath); ?>>
99 99
                             <p class="notes">
100
-                                <?php _e( 'By default for each page a separate rule is generated. If your pages have (semi-)identical above the fold look and feel and you want to keep the rules lean, you can disable that so one rule is created to all pages.', 'autoptimize' ); ?>
100
+                                <?php _e('By default for each page a separate rule is generated. If your pages have (semi-)identical above the fold look and feel and you want to keep the rules lean, you can disable that so one rule is created to all pages.', 'autoptimize'); ?>
101 101
                             </p>
102 102
                         </td>
103 103
                     </tr>
104 104
                     <tr>
105 105
                         <th scope="row">
106
-                            <?php _e( 'Defer jQuery and other non-aggregated JS-files?', 'autoptimize' ); ?>
106
+                            <?php _e('Defer jQuery and other non-aggregated JS-files?', 'autoptimize'); ?>
107 107
                         </th>
108 108
                         <td>
109
-                            <input type="checkbox" id="autoptimize_ccss_deferjquery" name="autoptimize_ccss_deferjquery" value="1" <?php checked( 1 == $ao_ccss_deferjquery ); ?>>
109
+                            <input type="checkbox" id="autoptimize_ccss_deferjquery" name="autoptimize_ccss_deferjquery" value="1" <?php checked(1 == $ao_ccss_deferjquery); ?>>
110 110
                             <p class="notes">
111
-                                <?php _e( 'Defer all non-aggregated JS, including jQuery and inline JS to fix remaining render-blocking issues. Make sure to test your site thoroughly when activating this option!', 'autoptimize' ); ?>
111
+                                <?php _e('Defer all non-aggregated JS, including jQuery and inline JS to fix remaining render-blocking issues. Make sure to test your site thoroughly when activating this option!', 'autoptimize'); ?>
112 112
                             </p>
113 113
                         </td>
114 114
                     </tr>
115 115
                     <tr>
116 116
                         <th scope="row">
117
-                            <?php _e( 'Unload critical CSS after page load?', 'autoptimize' ); ?>
117
+                            <?php _e('Unload critical CSS after page load?', 'autoptimize'); ?>
118 118
                         </th>
119 119
                         <td>
120
-                            <input type="checkbox" id="autoptimize_ccss_unloadccss" name="autoptimize_ccss_unloadccss" value="1" <?php checked( 1 == $ao_ccss_unloadccss ); ?>>
120
+                            <input type="checkbox" id="autoptimize_ccss_unloadccss" name="autoptimize_ccss_unloadccss" value="1" <?php checked(1 == $ao_ccss_unloadccss); ?>>
121 121
                             <p class="notes">
122
-                                <?php _e( 'In rare cases the critical CSS needs to be removed once the full CSS loads, this option makes it so!', 'autoptimize' ); ?>
122
+                                <?php _e('In rare cases the critical CSS needs to be removed once the full CSS loads, this option makes it so!', 'autoptimize'); ?>
123 123
                             </p>
124 124
                         </td>
125 125
                     </tr>
126 126
                     <tr>
127 127
                         <th scope="row">
128
-                            <?php _e( 'Bound domain', 'autoptimize' ); ?>
128
+                            <?php _e('Bound domain', 'autoptimize'); ?>
129 129
                         </th>
130 130
                         <td>
131
-                            <input type="text" id="autoptimize_ccss_domain" name="autoptimize_ccss_domain" style="width:100%;" placeholder="<?php _e( 'Don\'t leave this empty, put e.g. https://example.net/ or simply \'none\' to disable domain binding.', 'autoptimize' ); ?>" value="<?php echo trim( $ao_ccss_domain ); ?>">
131
+                            <input type="text" id="autoptimize_ccss_domain" name="autoptimize_ccss_domain" style="width:100%;" placeholder="<?php _e('Don\'t leave this empty, put e.g. https://example.net/ or simply \'none\' to disable domain binding.', 'autoptimize'); ?>" value="<?php echo trim($ao_ccss_domain); ?>">
132 132
                             <p class="notes">
133
-                                <?php _e( 'Only requests from this domain will be sent for Critical CSS generation (pricing is per domain/ month).', 'autoptimize' ); ?>
133
+                                <?php _e('Only requests from this domain will be sent for Critical CSS generation (pricing is per domain/ month).', 'autoptimize'); ?>
134 134
                             </p>
135 135
                         </td>
136 136
                     </tr>
137 137
                     <tr>
138 138
                         <th scope="row">
139
-                            <?php _e( 'Debug Mode', 'autoptimize' ); ?>
139
+                            <?php _e('Debug Mode', 'autoptimize'); ?>
140 140
                         </th>
141 141
                         <td>
142
-                            <input type="checkbox" id="autoptimize_ccss_debug" name="autoptimize_ccss_debug" value="1" <?php checked( 1 == $ao_ccss_debug ); ?>>
142
+                            <input type="checkbox" id="autoptimize_ccss_debug" name="autoptimize_ccss_debug" value="1" <?php checked(1 == $ao_ccss_debug); ?>>
143 143
                             <p class="notes">
144 144
                                 <?php
145
-                                _e( '<strong>CAUTION! Only use debug mode on production/live environments for ad-hoc troubleshooting and remember to turn it back off after</strong>, as this generates a lot of log-data.<br />Check the box above to enable Autoptimize CriticalCSS Power-Up debug mode. It provides debug facilities in this screen, to the browser console and to this file: ', 'autoptimize' );
146
-                                echo '<code>' . AO_CCSS_LOG . '</code>';
145
+                                _e('<strong>CAUTION! Only use debug mode on production/live environments for ad-hoc troubleshooting and remember to turn it back off after</strong>, as this generates a lot of log-data.<br />Check the box above to enable Autoptimize CriticalCSS Power-Up debug mode. It provides debug facilities in this screen, to the browser console and to this file: ', 'autoptimize');
146
+                                echo '<code>'.AO_CCSS_LOG.'</code>';
147 147
                                 ?>
148 148
                             </p>
149 149
                         </td>
Please login to merge, or discard this patch.
classes/autoptimizeHTML.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
  * Handles minifying HTML markup.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -34,19 +34,19 @@  discard block
 block discarded – undo
34 34
         '<!--/noindex-->',
35 35
     );
36 36
 
37
-    public function read( $options )
37
+    public function read($options)
38 38
     {
39 39
         // Remove the HTML comments?
40 40
         $this->keepcomments = (bool) $options['keepcomments'];
41 41
 
42 42
         // Filter to force xhtml.
43
-        $this->forcexhtml = (bool) apply_filters( 'autoptimize_filter_html_forcexhtml', false );
43
+        $this->forcexhtml = (bool) apply_filters('autoptimize_filter_html_forcexhtml', false);
44 44
 
45 45
         // Filterable strings to be excluded from HTML minification.
46
-        $exclude = apply_filters( 'autoptimize_filter_html_exclude', '' );
47
-        if ( '' !== $exclude ) {
48
-            $exclude_arr   = array_filter( array_map( 'trim', explode( ',', $exclude ) ) );
49
-            $this->exclude = array_merge( $exclude_arr, $this->exclude );
46
+        $exclude = apply_filters('autoptimize_filter_html_exclude', '');
47
+        if ('' !== $exclude) {
48
+            $exclude_arr   = array_filter(array_map('trim', explode(',', $exclude)));
49
+            $this->exclude = array_merge($exclude_arr, $this->exclude);
50 50
         }
51 51
 
52 52
         // Nothing else for HTML!
@@ -60,49 +60,49 @@  discard block
 block discarded – undo
60 60
      */
61 61
     public function minify()
62 62
     {
63
-        $noptimize = apply_filters( 'autoptimize_filter_html_noptimize', false, $this->content );
64
-        if ( $noptimize ) {
63
+        $noptimize = apply_filters('autoptimize_filter_html_noptimize', false, $this->content);
64
+        if ($noptimize) {
65 65
             return false;
66 66
         }
67 67
 
68 68
         // Wrap the to-be-excluded strings in noptimize tags.
69
-        foreach ( $this->exclude as $str ) {
70
-            if ( false !== strpos( $this->content, $str ) ) {
71
-                $replacement   = '<!--noptimize-->' . $str . '<!--/noptimize-->';
72
-                $this->content = str_replace( $str, $replacement, $this->content );
69
+        foreach ($this->exclude as $str) {
70
+            if (false !== strpos($this->content, $str)) {
71
+                $replacement   = '<!--noptimize-->'.$str.'<!--/noptimize-->';
72
+                $this->content = str_replace($str, $replacement, $this->content);
73 73
             }
74 74
         }
75 75
 
76 76
         // Noptimize.
77
-        $this->content = $this->hide_noptimize( $this->content );
77
+        $this->content = $this->hide_noptimize($this->content);
78 78
 
79 79
         // Preparing options for Minify_HTML.
80
-        $options = array( 'keepComments' => $this->keepcomments );
81
-        if ( $this->forcexhtml ) {
80
+        $options = array('keepComments' => $this->keepcomments);
81
+        if ($this->forcexhtml) {
82 82
             $options['xhtml'] = true;
83 83
         }
84 84
 
85
-        $tmp_content = AO_Minify_HTML::minify( $this->content, $options );
86
-        if ( ! empty( $tmp_content ) ) {
85
+        $tmp_content = AO_Minify_HTML::minify($this->content, $options);
86
+        if (!empty($tmp_content)) {
87 87
             $this->content = $tmp_content;
88
-            unset( $tmp_content );
88
+            unset($tmp_content);
89 89
         }
90 90
 
91 91
         // Restore noptimize.
92
-        $this->content = $this->restore_noptimize( $this->content );
92
+        $this->content = $this->restore_noptimize($this->content);
93 93
 
94 94
         // Remove the noptimize-wrapper from around the excluded strings.
95
-        foreach ( $this->exclude as $str ) {
96
-            $replacement = '<!--noptimize-->' . $str . '<!--/noptimize-->';
97
-            if ( false !== strpos( $this->content, $replacement ) ) {
98
-                $this->content = str_replace( $replacement, $str, $this->content );
95
+        foreach ($this->exclude as $str) {
96
+            $replacement = '<!--noptimize-->'.$str.'<!--/noptimize-->';
97
+            if (false !== strpos($this->content, $replacement)) {
98
+                $this->content = str_replace($replacement, $str, $this->content);
99 99
             }
100 100
         }
101 101
 
102 102
         // Revslider data attribs somehow suffer from HTML optimization, this fixes that!
103
-        if ( class_exists( 'RevSlider' ) && apply_filters( 'autoptimize_filter_html_dataattrib_cleanup', false ) ) {
104
-            $this->content = preg_replace( '#\n(data-.*$)\n#Um', ' $1 ', $this->content );
105
-            $this->content = preg_replace( '#<[^>]*(=\"[^"\'<>\s]*\")(\w)#', '$1 $2', $this->content );
103
+        if (class_exists('RevSlider') && apply_filters('autoptimize_filter_html_dataattrib_cleanup', false)) {
104
+            $this->content = preg_replace('#\n(data-.*$)\n#Um', ' $1 ', $this->content);
105
+            $this->content = preg_replace('#<[^>]*(=\"[^"\'<>\s]*\")(\w)#', '$1 $2', $this->content);
106 106
         }
107 107
 
108 108
         return true;
Please login to merge, or discard this patch.
classes/autoptimizeCriticalCSSCron.php 1 patch
Spacing   +254 added lines, -254 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * processes the queue, submitting jobs to criticalcss.com and retrieving generated CSS from criticalcss.com and saving rules.
5 5
  */
6 6
 
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
     exit;
9 9
 }
10 10
 
@@ -13,23 +13,23 @@  discard block
 block discarded – undo
13 13
     {
14 14
         // fetch all options at once and populate them individually explicitely as globals.
15 15
         $all_options = autoptimizeCriticalCSSBase::fetch_options();
16
-        foreach ( $all_options as $_option => $_value ) {
16
+        foreach ($all_options as $_option => $_value) {
17 17
             global ${$_option};
18 18
             ${$_option} = $_value;
19 19
         }
20 20
 
21 21
         // Add queue control to a registered event.
22
-        add_action( 'ao_ccss_queue', array( $this, 'ao_ccss_queue_control' ) );
22
+        add_action('ao_ccss_queue', array($this, 'ao_ccss_queue_control'));
23 23
         // Add cleaning job to a registered event.
24
-        add_action( 'ao_ccss_maintenance', array( $this, 'ao_ccss_cleaning' ) );
24
+        add_action('ao_ccss_maintenance', array($this, 'ao_ccss_cleaning'));
25 25
     }
26 26
 
27 27
     public function ao_ccss_queue_control() {
28 28
         // The queue execution backend.
29 29
         global $ao_ccss_key;
30
-        if ( ! isset( $ao_ccss_key ) || empty( $ao_ccss_key ) ) {
30
+        if (!isset($ao_ccss_key) || empty($ao_ccss_key)) {
31 31
             // no key set, not processing the queue!
32
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'No key set, so not processing queue.', 3 );
32
+            autoptimizeCriticalCSSCore::ao_ccss_log('No key set, so not processing queue.', 3);
33 33
             return;
34 34
         }
35 35
 
@@ -50,35 +50,35 @@  discard block
 block discarded – undo
50 50
          *    When properly set, queue will always finish a job with the declared settings above regardless of the real API responses.
51 51
          */
52 52
         $queue_debug = false;
53
-        if ( file_exists( AO_CCSS_DEBUG ) ) {
54
-            $qdobj_raw = file_get_contents( AO_CCSS_DEBUG );
55
-            $qdobj     = json_decode( $qdobj_raw, true );
56
-            if ( $qdobj ) {
57
-                if ( 1 === $qdobj['enable'] ) {
53
+        if (file_exists(AO_CCSS_DEBUG)) {
54
+            $qdobj_raw = file_get_contents(AO_CCSS_DEBUG);
55
+            $qdobj     = json_decode($qdobj_raw, true);
56
+            if ($qdobj) {
57
+                if (1 === $qdobj['enable']) {
58 58
                     $queue_debug = true;
59
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue operating in debug mode with the following settings: <' . $qdobj_raw . '>', 3 );
59
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Queue operating in debug mode with the following settings: <'.$qdobj_raw.'>', 3);
60 60
                 }
61 61
             }
62 62
         }
63 63
 
64 64
         // Set some default values for $qdobj to avoid function call warnings.
65
-        if ( ! $queue_debug ) {
65
+        if (!$queue_debug) {
66 66
             $qdobj['htcode'] = false;
67 67
         }
68 68
 
69 69
         // Check if queue is already running.
70 70
         $queue_lock = false;
71
-        if ( file_exists( AO_CCSS_LOCK ) ) {
71
+        if (file_exists(AO_CCSS_LOCK)) {
72 72
             $queue_lock = true;
73 73
         }
74 74
 
75 75
         // Proceed with the queue if it's not already running.
76
-        if ( ! $queue_lock ) {
76
+        if (!$queue_lock) {
77 77
 
78 78
             // Log queue start and create the lock file.
79
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control started', 3 );
80
-            if ( touch( AO_CCSS_LOCK ) ) {
81
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control locked', 3 );
79
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue control started', 3);
80
+            if (touch(AO_CCSS_LOCK)) {
81
+                autoptimizeCriticalCSSCore::ao_ccss_log('Queue control locked', 3);
82 82
             }
83 83
 
84 84
             // Attach required variables.
@@ -86,45 +86,45 @@  discard block
 block discarded – undo
86 86
             global $ao_ccss_rtimelimit;
87 87
 
88 88
             // Initialize counters.
89
-            if ( $ao_ccss_rtimelimit == 0 ) {
89
+            if ($ao_ccss_rtimelimit == 0) {
90 90
                 // no time limit set, let's go with 1000 seconds.
91 91
                 $ao_ccss_rtimelimit = 1000;
92 92
             }
93 93
             $mt = time() + $ao_ccss_rtimelimit; // maxtime queue processing can run.
94 94
             $jc = 1; // job count number.
95 95
             $jr = 1; // jobs requests number.
96
-            $jt = count( $ao_ccss_queue ); // number of jobs in queue.
96
+            $jt = count($ao_ccss_queue); // number of jobs in queue.
97 97
 
98 98
             // Sort queue by ascending job status (e.g. ERROR, JOB_ONGOING, JOB_QUEUED, NEW...).
99
-            array_multisort( array_column( $ao_ccss_queue, 'jqstat' ), $ao_ccss_queue ); // @codingStandardsIgnoreLine
99
+            array_multisort(array_column($ao_ccss_queue, 'jqstat'), $ao_ccss_queue); // @codingStandardsIgnoreLine
100 100
 
101 101
             // Iterates over the entire queue.
102
-            foreach ( $ao_ccss_queue as $path => $jprops ) {
102
+            foreach ($ao_ccss_queue as $path => $jprops) {
103 103
                 // Prepare flags and target rule.
104 104
                 $update      = false;
105 105
                 $deljob      = false;
106 106
                 $rule_update = false;
107 107
                 $oldccssfile = false;
108
-                $trule       = explode( '|', $jprops['rtarget'] );
108
+                $trule       = explode('|', $jprops['rtarget']);
109 109
 
110 110
                 // Log job count.
111
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Processing job ' . $jc . ' of ' . $jt . ' with id <' . $jprops['ljid'] . '> and status <' . $jprops['jqstat'] . '>', 3 );
111
+                autoptimizeCriticalCSSCore::ao_ccss_log('Processing job '.$jc.' of '.$jt.' with id <'.$jprops['ljid'].'> and status <'.$jprops['jqstat'].'>', 3);
112 112
 
113 113
                 // Process NEW jobs.
114
-                if ( 'NEW' == $jprops['jqstat'] ) {
114
+                if ('NEW' == $jprops['jqstat']) {
115 115
 
116 116
                     // Log the new job.
117
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Found NEW job with local ID <' . $jprops['ljid'] . '>, starting its queue processing', 3 );
117
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Found NEW job with local ID <'.$jprops['ljid'].'>, starting its queue processing', 3);
118 118
 
119 119
                     // Compare job and rule hashes (if any).
120
-                    $hash = $this->ao_ccss_diff_hashes( $jprops['ljid'], $jprops['hash'], $jprops['hashes'], $jprops['rtarget'] );
120
+                    $hash = $this->ao_ccss_diff_hashes($jprops['ljid'], $jprops['hash'], $jprops['hashes'], $jprops['rtarget']);
121 121
 
122 122
                     // If job hash is new or different of a previous one.
123
-                    if ( $hash ) {
124
-                        if ( $jr > 2 ) {
123
+                    if ($hash) {
124
+                        if ($jr > 2) {
125 125
                             // we already posted 2 jobs to criticalcss.com, don't post more this run
126 126
                             // but we can keep on processing the queue to keep it tidy.
127
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Holding off on generating request for job with local ID <' . $jprops['ljid'] . '>, maximum number of POSTS reached.', 3 );
127
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Holding off on generating request for job with local ID <'.$jprops['ljid'].'>, maximum number of POSTS reached.', 3);
128 128
                             continue;
129 129
                         }
130 130
 
@@ -132,182 +132,182 @@  discard block
 block discarded – undo
132 132
                         $jprops['hash'] = $hash;
133 133
 
134 134
                         // Dispatch the job generate request and increment request count.
135
-                        $apireq = $this->ao_ccss_api_generate( $path, $queue_debug, $qdobj['htcode'] );
135
+                        $apireq = $this->ao_ccss_api_generate($path, $queue_debug, $qdobj['htcode']);
136 136
                         $jr++;
137 137
 
138 138
                         // NOTE: All the following conditions maps to the ones in admin_settings_queue.js.php.
139
-                        if ( 'JOB_QUEUED' == $apireq['job']['status'] || 'JOB_ONGOING' == $apireq['job']['status'] ) {
139
+                        if ('JOB_QUEUED' == $apireq['job']['status'] || 'JOB_ONGOING' == $apireq['job']['status']) {
140 140
                             // SUCCESS: request has a valid result.
141 141
                             // Update job properties.
142 142
                             $jprops['jid']    = $apireq['job']['id'];
143 143
                             $jprops['jqstat'] = $apireq['job']['status'];
144
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> generate request successful, remote id <' . $jprops['jid'] . '>, status now is <' . $jprops['jqstat'] . '>', 3 );
145
-                        } elseif ( 'STATUS_JOB_BAD' == $apireq['job']['status'] ) {
144
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> generate request successful, remote id <'.$jprops['jid'].'>, status now is <'.$jprops['jqstat'].'>', 3);
145
+                        } elseif ('STATUS_JOB_BAD' == $apireq['job']['status']) {
146 146
                             // ERROR: concurrent requests
147 147
                             // Update job properties.
148 148
                             $jprops['jid']    = $apireq['job']['id'];
149 149
                             $jprops['jqstat'] = $apireq['job']['status'];
150
-                            if ( $apireq['job']['error'] ) {
150
+                            if ($apireq['job']['error']) {
151 151
                                 $jprops['jrstat'] = $apireq['job']['error'];
152 152
                             } else {
153 153
                                 $jprops['jrstat'] = 'Baby did a bad bad thing';
154 154
                             }
155 155
                             $jprops['jvstat'] = 'NONE';
156
-                            $jprops['jftime'] = microtime( true );
157
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Concurrent requests when processing job id <' . $jprops['ljid'] . '>, job status is now <' . $jprops['jqstat'] . '>', 3 );
158
-                        } elseif ( 'INVALID_JWT_TOKEN' == $apireq['errorCode'] ) {
156
+                            $jprops['jftime'] = microtime(true);
157
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Concurrent requests when processing job id <'.$jprops['ljid'].'>, job status is now <'.$jprops['jqstat'].'>', 3);
158
+                        } elseif ('INVALID_JWT_TOKEN' == $apireq['errorCode']) {
159 159
                             // ERROR: key validation
160 160
                             // Update job properties.
161 161
                             $jprops['jqstat'] = $apireq['errorCode'];
162 162
                             $jprops['jrstat'] = $apireq['error'];
163 163
                             $jprops['jvstat'] = 'NONE';
164
-                            $jprops['jftime'] = microtime( true );
165
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'API key validation error when processing job id <' . $jprops['ljid'] . '>, job status is now <' . $jprops['jqstat'] . '>', 3 );
166
-                        } elseif ( empty( $apireq ) ) {
164
+                            $jprops['jftime'] = microtime(true);
165
+                            autoptimizeCriticalCSSCore::ao_ccss_log('API key validation error when processing job id <'.$jprops['ljid'].'>, job status is now <'.$jprops['jqstat'].'>', 3);
166
+                        } elseif (empty($apireq)) {
167 167
                             // ERROR: no response
168 168
                             // Update job properties.
169 169
                             $jprops['jqstat'] = 'NO_RESPONSE';
170 170
                             $jprops['jrstat'] = 'NONE';
171 171
                             $jprops['jvstat'] = 'NONE';
172
-                            $jprops['jftime'] = microtime( true );
173
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> request has no response, status now is <' . $jprops['jqstat'] . '>', 3 );
172
+                            $jprops['jftime'] = microtime(true);
173
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> request has no response, status now is <'.$jprops['jqstat'].'>', 3);
174 174
                         } else {
175 175
                             // UNKNOWN: unhandled generate exception
176 176
                             // Update job properties.
177 177
                             $jprops['jqstat'] = 'JOB_UNKNOWN';
178 178
                             $jprops['jrstat'] = 'NONE';
179 179
                             $jprops['jvstat'] = 'NONE';
180
-                            $jprops['jftime'] = microtime( true );
181
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> generate request has an UNKNOWN condition, status now is <' . $jprops['jqstat'] . '>, check log messages above for more information', 2 );
182
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
180
+                            $jprops['jftime'] = microtime(true);
181
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> generate request has an UNKNOWN condition, status now is <'.$jprops['jqstat'].'>, check log messages above for more information', 2);
182
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
183 183
                         }
184 184
                     } else {
185 185
                         // SUCCESS: Job hash is equal to a previous one, so it's done
186 186
                         // Update job status and finish time.
187 187
                         $jprops['jqstat'] = 'JOB_DONE';
188
-                        $jprops['jftime'] = microtime( true );
189
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> requires no further processing, status now is <' . $jprops['jqstat'] . '>', 3 );
188
+                        $jprops['jftime'] = microtime(true);
189
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> requires no further processing, status now is <'.$jprops['jqstat'].'>', 3);
190 190
                     }
191 191
 
192 192
                     // Set queue update flag.
193 193
                     $update = true;
194 194
 
195
-                } elseif ( 'JOB_QUEUED' == $jprops['jqstat'] || 'JOB_ONGOING' == $jprops['jqstat'] ) {
195
+                } elseif ('JOB_QUEUED' == $jprops['jqstat'] || 'JOB_ONGOING' == $jprops['jqstat']) {
196 196
                     // Process QUEUED and ONGOING jobs
197 197
                     // Log the pending job.
198
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Found PENDING job with local ID <' . $jprops['ljid'] . '>, continuing its queue processing', 3 );
198
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Found PENDING job with local ID <'.$jprops['ljid'].'>, continuing its queue processing', 3);
199 199
 
200 200
                     // Dispatch the job result request and increment request count.
201
-                    $apireq = $this->ao_ccss_api_results( $jprops['jid'], $queue_debug, $qdobj['htcode'] );
201
+                    $apireq = $this->ao_ccss_api_results($jprops['jid'], $queue_debug, $qdobj['htcode']);
202 202
 
203 203
                     // NOTE: All the following condigitons maps to the ones in admin_settings_queue.js.php
204 204
                     // Replace API response values if queue debugging is enabled and some value is set.
205
-                    if ( $queue_debug ) {
206
-                        if ( $qdobj['status'] ) {
205
+                    if ($queue_debug) {
206
+                        if ($qdobj['status']) {
207 207
                             $apireq['status'] = $qdobj['status'];
208 208
                         }
209
-                        if ( $qdobj['resultStatus'] ) {
209
+                        if ($qdobj['resultStatus']) {
210 210
                             $apireq['resultStatus'] = $qdobj['resultStatus'];
211 211
                         }
212
-                        if ( $qdobj['validationStatus'] ) {
212
+                        if ($qdobj['validationStatus']) {
213 213
                             $apireq['validationStatus'] = $qdobj['validationStatus'];
214 214
                         }
215 215
                     }
216 216
 
217
-                    if ( 'JOB_QUEUED' == $apireq['status'] || 'JOB_ONGOING' == $apireq['status'] ) {
217
+                    if ('JOB_QUEUED' == $apireq['status'] || 'JOB_ONGOING' == $apireq['status']) {
218 218
                         // SUCCESS: request has a valid result
219 219
                         // Process a PENDING job
220 220
                         // Update job properties.
221 221
                         $jprops['jqstat'] = $apireq['status'];
222
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . '> unchanged', 3 );
223
-                    } elseif ( 'JOB_DONE' == $apireq['status'] ) {
222
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].'> unchanged', 3);
223
+                    } elseif ('JOB_DONE' == $apireq['status']) {
224 224
                         // Process a DONE job
225 225
                         // New resultStatus from ccss.com "HTML_404", consider as "GOOD" for now.
226
-                        if ( 'HTML_404' == $apireq['resultStatus'] ) {
226
+                        if ('HTML_404' == $apireq['resultStatus']) {
227 227
                             $apireq['resultStatus'] = 'GOOD';
228 228
                         }
229 229
 
230
-                        if ( 'GOOD' == $apireq['resultStatus'] && ( 'GOOD' == $apireq['validationStatus'] || 'WARN' == $apireq['validationStatus'] ) ) {
230
+                        if ('GOOD' == $apireq['resultStatus'] && ('GOOD' == $apireq['validationStatus'] || 'WARN' == $apireq['validationStatus'])) {
231 231
                             // SUCCESS: GOOD job with GOOD or WARN validation
232 232
                             // Update job properties.
233
-                            $jprops['file']   = $this->ao_ccss_save_file( $apireq['css'], $trule, false );
233
+                            $jprops['file']   = $this->ao_ccss_save_file($apireq['css'], $trule, false);
234 234
                             $jprops['jqstat'] = $apireq['status'];
235 235
                             $jprops['jrstat'] = $apireq['resultStatus'];
236 236
                             $jprops['jvstat'] = $apireq['validationStatus'];
237
-                            $jprops['jftime'] = microtime( true );
237
+                            $jprops['jftime'] = microtime(true);
238 238
                             $rule_update      = true;
239
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . '>, file saved <' . $jprops['file'] . '>', 3 );
240
-                        } elseif ( 'GOOD' == $apireq['resultStatus'] && ( 'BAD' == $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' == $apireq['validationStatus'] ) ) {
239
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].'>, file saved <'.$jprops['file'].'>', 3);
240
+                        } elseif ('GOOD' == $apireq['resultStatus'] && ('BAD' == $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' == $apireq['validationStatus'])) {
241 241
                             // SUCCESS: GOOD job with BAD or SCREENSHOT_WARN_BLANK validation
242 242
                             // Update job properties.
243 243
                             $jprops['jqstat'] = $apireq['status'];
244 244
                             $jprops['jrstat'] = $apireq['resultStatus'];
245 245
                             $jprops['jvstat'] = $apireq['validationStatus'];
246
-                            $jprops['jftime'] = microtime( true );
247
-                            if ( apply_filters( 'autoptimize_filter_ccss_save_review_rules', true ) ) {
248
-                                $jprops['file']   = $this->ao_ccss_save_file( $apireq['css'], $trule, true );
246
+                            $jprops['jftime'] = microtime(true);
247
+                            if (apply_filters('autoptimize_filter_ccss_save_review_rules', true)) {
248
+                                $jprops['file']   = $this->ao_ccss_save_file($apireq['css'], $trule, true);
249 249
                                 $rule_update      = true;
250
-                                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . ', file saved <' . $jprops['file'] . '> but requires REVIEW', 3 );
250
+                                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].', file saved <'.$jprops['file'].'> but requires REVIEW', 3);
251 251
                             } else {
252
-                                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . ', file not saved because it required REVIEW.', 3 );
252
+                                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].', file not saved because it required REVIEW.', 3);
253 253
                             }
254
-                        } elseif ( 'GOOD' != $apireq['resultStatus'] && ( 'GOOD' != $apireq['validationStatus'] || 'WARN' != $apireq['validationStatus'] || 'BAD' != $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' != $apireq['validationStatus'] ) ) {
254
+                        } elseif ('GOOD' != $apireq['resultStatus'] && ('GOOD' != $apireq['validationStatus'] || 'WARN' != $apireq['validationStatus'] || 'BAD' != $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' != $apireq['validationStatus'])) {
255 255
                             // ERROR: no GOOD, WARN or BAD results
256 256
                             // Update job properties.
257 257
                             $jprops['jqstat'] = $apireq['status'];
258 258
                             $jprops['jrstat'] = $apireq['resultStatus'];
259 259
                             $jprops['jvstat'] = $apireq['validationStatus'];
260
-                            $jprops['jftime'] = microtime( true );
261
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
260
+                            $jprops['jftime'] = microtime(true);
261
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
262 262
                             $apireq['css'] = '/* critical css removed for DEBUG logging purposes */';
263
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
263
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
264 264
                         } else {
265 265
                             // UNKNOWN: unhandled JOB_DONE exception
266 266
                             // Update job properties.
267 267
                             $jprops['jqstat'] = 'JOB_UNKNOWN';
268 268
                             $jprops['jrstat'] = $apireq['resultStatus'];
269 269
                             $jprops['jvstat'] = $apireq['validationStatus'];
270
-                            $jprops['jftime'] = microtime( true );
271
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job is UNKNOWN, status now is <' . $jprops['jqstat'] . '>', 2 );
270
+                            $jprops['jftime'] = microtime(true);
271
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job is UNKNOWN, status now is <'.$jprops['jqstat'].'>', 2);
272 272
                             $apireq['css'] = '/* critical css removed for DEBUG logging purposes */';
273
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
273
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
274 274
                         }
275
-                    } elseif ( 'JOB_FAILED' == $apireq['job']['status'] || 'STATUS_JOB_BAD' == $apireq['job']['status'] ) {
275
+                    } elseif ('JOB_FAILED' == $apireq['job']['status'] || 'STATUS_JOB_BAD' == $apireq['job']['status']) {
276 276
                         // ERROR: failed job
277 277
                         // Update job properties.
278 278
                         $jprops['jqstat'] = $apireq['job']['status'];
279
-                        if ( $apireq['job']['error'] ) {
279
+                        if ($apireq['job']['error']) {
280 280
                             $jprops['jrstat'] = $apireq['job']['error'];
281 281
                         } else {
282 282
                             $jprops['jrstat'] = 'Baby did a bad bad thing';
283 283
                         }
284 284
                         $jprops['jvstat'] = 'NONE';
285
-                        $jprops['jftime'] = microtime( true );
286
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
287
-                    } elseif ( 'This css no longer exists. Please re-generate it.' == $apireq['error'] ) {
285
+                        $jprops['jftime'] = microtime(true);
286
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
287
+                    } elseif ('This css no longer exists. Please re-generate it.' == $apireq['error']) {
288 288
                         // ERROR: CSS doesn't exist
289 289
                         // Update job properties.
290 290
                         $jprops['jqstat'] = 'NO_CSS';
291 291
                         $jprops['jrstat'] = $apireq['error'];
292 292
                         $jprops['jvstat'] = 'NONE';
293
-                        $jprops['jftime'] = microtime( true );
294
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
295
-                    } elseif ( empty( $apireq ) ) {
293
+                        $jprops['jftime'] = microtime(true);
294
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
295
+                    } elseif (empty($apireq)) {
296 296
                         // ERROR: no response
297 297
                         // Update job properties.
298 298
                         $jprops['jqstat'] = 'NO_RESPONSE';
299 299
                         $jprops['jrstat'] = 'NONE';
300 300
                         $jprops['jvstat'] = 'NONE';
301
-                        $jprops['jftime'] = microtime( true );
302
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> request has no response, status now is <' . $jprops['jqstat'] . '>', 3 );
301
+                        $jprops['jftime'] = microtime(true);
302
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> request has no response, status now is <'.$jprops['jqstat'].'>', 3);
303 303
                     } else {
304 304
                         // UNKNOWN: unhandled results exception
305 305
                         // Update job properties.
306 306
                         $jprops['jqstat'] = 'JOB_UNKNOWN';
307 307
                         $jprops['jrstat'] = 'NONE';
308 308
                         $jprops['jvstat'] = 'NONE';
309
-                        $jprops['jftime'] = microtime( true );
310
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request has an UNKNOWN condition, status now is <' . $jprops['jqstat'] . '>, check log messages above for more information', 2 );
309
+                        $jprops['jftime'] = microtime(true);
310
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request has an UNKNOWN condition, status now is <'.$jprops['jqstat'].'>, check log messages above for more information', 2);
311 311
                     }
312 312
 
313 313
                     // Set queue update flag.
@@ -315,40 +315,40 @@  discard block
 block discarded – undo
315 315
                 }
316 316
 
317 317
                 // Mark DONE jobs for removal.
318
-                if ( 'JOB_DONE' == $jprops['jqstat'] ) {
318
+                if ('JOB_DONE' == $jprops['jqstat']) {
319 319
                     $update = true;
320 320
                     $deljob = true;
321 321
                 }
322 322
 
323 323
                 // Persist updated queue object.
324
-                if ( $update ) {
325
-                    if ( ! $deljob ) {
324
+                if ($update) {
325
+                    if (!$deljob) {
326 326
                         // Update properties of a NEW or PENDING job...
327
-                        $ao_ccss_queue[ $path ] = $jprops;
327
+                        $ao_ccss_queue[$path] = $jprops;
328 328
                     } else {
329 329
                         // ...or remove the DONE job.
330
-                        unset( $ao_ccss_queue[ $path ] );
331
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> is DONE and was removed from the queue', 3 );
330
+                        unset($ao_ccss_queue[$path]);
331
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> is DONE and was removed from the queue', 3);
332 332
                     }
333 333
 
334 334
                     // Update queue object.
335
-                    $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
336
-                    update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
337
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue updated by job id <' . $jprops['ljid'] . '>', 3 );
335
+                    $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
336
+                    update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
337
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Queue updated by job id <'.$jprops['ljid'].'>', 3);
338 338
 
339 339
                     // Update target rule.
340
-                    if ( $rule_update ) {
341
-                        $this->ao_ccss_rule_update( $jprops['ljid'], $jprops['rtarget'], $jprops['file'], $jprops['hash'] );
342
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> updated the target rule <' . $jprops['rtarget'] . '>', 3 );
340
+                    if ($rule_update) {
341
+                        $this->ao_ccss_rule_update($jprops['ljid'], $jprops['rtarget'], $jprops['file'], $jprops['hash']);
342
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> updated the target rule <'.$jprops['rtarget'].'>', 3);
343 343
                     }
344 344
                 } else {
345 345
                     // Or log no queue action.
346
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Nothing to do on this job', 3 );
346
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Nothing to do on this job', 3);
347 347
                 }
348 348
 
349 349
                 // Break the loop if request time limit is (almost exceeded).
350
-                if ( time() > $mt ) {
351
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'The time limit of ' . $ao_ccss_rtimelimit . ' seconds was exceeded, queue control must finish now', 3 );
350
+                if (time() > $mt) {
351
+                    autoptimizeCriticalCSSCore::ao_ccss_log('The time limit of '.$ao_ccss_rtimelimit.' seconds was exceeded, queue control must finish now', 3);
352 352
                     break;
353 353
                 }
354 354
 
@@ -357,46 +357,46 @@  discard block
 block discarded – undo
357 357
             }
358 358
 
359 359
             // Remove the lock file and log the queue end.
360
-            if ( file_exists( AO_CCSS_LOCK ) ) {
361
-                unlink( AO_CCSS_LOCK );
362
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control unlocked', 3 );
360
+            if (file_exists(AO_CCSS_LOCK)) {
361
+                unlink(AO_CCSS_LOCK);
362
+                autoptimizeCriticalCSSCore::ao_ccss_log('Queue control unlocked', 3);
363 363
             }
364
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control finished', 3 );
364
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue control finished', 3);
365 365
 
366 366
             // Log that queue is locked.
367 367
         } else {
368
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue is already running, skipping the attempt to run it again', 3 );
368
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue is already running, skipping the attempt to run it again', 3);
369 369
         }
370 370
     }
371 371
 
372
-    public function ao_ccss_diff_hashes( $ljid, $hash, $hashes, $rule ) {
372
+    public function ao_ccss_diff_hashes($ljid, $hash, $hashes, $rule) {
373 373
         // Compare job hashes
374 374
         // STEP 1: update job hashes.
375
-        if ( 1 == count( $hashes ) ) {
375
+        if (1 == count($hashes)) {
376 376
             // Job with a single hash
377 377
             // Set job hash.
378 378
             $hash = $hashes[0];
379
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> updated with SINGLE hash <' . $hash . '>', 3 );
379
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> updated with SINGLE hash <'.$hash.'>', 3);
380 380
         } else {
381 381
             // Job with multiple hashes
382 382
             // Loop through hashes to concatenate them.
383 383
             $nhash = '';
384
-            foreach ( $hashes as $shash ) {
384
+            foreach ($hashes as $shash) {
385 385
                 $nhash .= $shash;
386 386
             }
387 387
 
388 388
             // Set job hash.
389
-            $hash = md5( $nhash );
390
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> updated with a COMPOSITE hash <' . $hash . '>', 3 );
389
+            $hash = md5($nhash);
390
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> updated with a COMPOSITE hash <'.$hash.'>', 3);
391 391
         }
392 392
 
393 393
         // STEP 2: compare job to existing jobs to prevent double submission for same type+hash.
394 394
         global $ao_ccss_queue;
395 395
 
396
-        foreach ( $ao_ccss_queue as $queue_item ) {
397
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Comparing <' . $rule . $hash . '> with <' . $queue_item['rtarget'] . $queue_item['hash'] . '>', 3 );
398
-            if ( $queue_item['hash'] == $hash && $queue_item['rtarget'] == $rule && in_array( $queue_item['jqstat'], array( 'JOB_QUEUED', 'JOB_ONGOING', 'JOB_DONE' ) ) ) {
399
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> matches the already pending job <' . $queue_item['ljid'] . '>', 3 );
396
+        foreach ($ao_ccss_queue as $queue_item) {
397
+            autoptimizeCriticalCSSCore::ao_ccss_log('Comparing <'.$rule.$hash.'> with <'.$queue_item['rtarget'].$queue_item['hash'].'>', 3);
398
+            if ($queue_item['hash'] == $hash && $queue_item['rtarget'] == $rule && in_array($queue_item['jqstat'], array('JOB_QUEUED', 'JOB_ONGOING', 'JOB_DONE'))) {
399
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> matches the already pending job <'.$queue_item['ljid'].'>', 3);
400 400
                 return false;
401 401
             }
402 402
         }
@@ -406,32 +406,32 @@  discard block
 block discarded – undo
406 406
         global $ao_ccss_rules;
407 407
 
408 408
         // Prepare rule variables.
409
-        $trule = explode( '|', $rule );
410
-        $srule = $ao_ccss_rules[ $trule[0] ][ $trule[1] ];
409
+        $trule = explode('|', $rule);
410
+        $srule = $ao_ccss_rules[$trule[0]][$trule[1]];
411 411
 
412 412
         // Check if a MANUAL rule exist and return false.
413
-        if ( ! empty( $srule ) && ( 0 == $srule['hash'] && 0 != $srule['file'] ) ) {
414
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> matches the MANUAL rule <' . $trule[0] . '|' . $trule[1] . '>', 3 );
413
+        if (!empty($srule) && (0 == $srule['hash'] && 0 != $srule['file'])) {
414
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> matches the MANUAL rule <'.$trule[0].'|'.$trule[1].'>', 3);
415 415
             return false;
416
-        } elseif ( ! empty( $srule ) ) {
416
+        } elseif (!empty($srule)) {
417 417
             // Check if an AUTO rule exist.
418
-            if ( $hash === $srule['hash'] && is_file( AO_CCSS_DIR . $srule['file'] ) && 0 != filesize( AO_CCSS_DIR . $srule['file'] ) ) {
418
+            if ($hash === $srule['hash'] && is_file(AO_CCSS_DIR.$srule['file']) && 0 != filesize(AO_CCSS_DIR.$srule['file'])) {
419 419
                 // Check if job hash matches rule, if the CCSS file exists said file is not empty and return FALSE is so.
420
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> MATCH the one in rule <' . $trule[0] . '|' . $trule[1] . '>', 3 );
420
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> MATCH the one in rule <'.$trule[0].'|'.$trule[1].'>', 3);
421 421
                 return false;
422 422
             } else {
423 423
                 // Or return the new hash if they differ.
424
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> DOES NOT MATCH the one in rule <' . $trule[0] . '|' . $trule[1] . '> or rule\'s CCSS file was invalid.', 3 );
424
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> DOES NOT MATCH the one in rule <'.$trule[0].'|'.$trule[1].'> or rule\'s CCSS file was invalid.', 3);
425 425
                 return $hash;
426 426
             }
427 427
         } else {
428 428
             // Or just return the hash if no rule exist yet.
429
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> has no rule yet', 3 );
429
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> has no rule yet', 3);
430 430
             return $hash;
431 431
         }
432 432
     }
433 433
 
434
-    public function ao_ccss_api_generate( $path, $debug, $dcode ) {
434
+    public function ao_ccss_api_generate($path, $debug, $dcode) {
435 435
         // POST jobs to criticalcss.com and return responses
436 436
         // Get key and key status.
437 437
         global $ao_ccss_key;
@@ -443,35 +443,35 @@  discard block
 block discarded – undo
443 443
         global $ao_ccss_noptimize;
444 444
 
445 445
         $site_host = get_site_url();
446
-        $site_path = parse_url( $site_host, PHP_URL_PATH );
446
+        $site_path = parse_url($site_host, PHP_URL_PATH);
447 447
 
448
-        if ( ! empty( $site_path ) ) {
449
-            $site_host = str_replace( $site_path, '', $site_host );
448
+        if (!empty($site_path)) {
449
+            $site_host = str_replace($site_path, '', $site_host);
450 450
         }
451 451
 
452 452
         // Logic to bind to one domain to avoid site clones of sites would
453 453
         // automatically begin spawning requests to criticalcss.com which has
454 454
         // a per domain cost.
455 455
         global $ao_ccss_domain;
456
-        if ( empty( $ao_ccss_domain ) ) {
456
+        if (empty($ao_ccss_domain)) {
457 457
             // first request being done, update option to allow future requests are only allowed if from same domain.
458
-            update_option( 'autoptimize_ccss_domain', str_rot13( $site_host ) );
459
-        } elseif ( trim( $ao_ccss_domain, '\'"' ) !== 'none' && parse_url( $site_host, PHP_URL_HOST ) !== parse_url( $ao_ccss_domain, PHP_URL_HOST ) && apply_filters( 'autoptimize_filter_ccss_bind_domain', true ) ) {
458
+            update_option('autoptimize_ccss_domain', str_rot13($site_host));
459
+        } elseif (trim($ao_ccss_domain, '\'"') !== 'none' && parse_url($site_host, PHP_URL_HOST) !== parse_url($ao_ccss_domain, PHP_URL_HOST) && apply_filters('autoptimize_filter_ccss_bind_domain', true)) {
460 460
             // not the same domain, log as error and return without posting to criticalcss.com.
461
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Request for domain ' . $site_host . ' does not match bound domain ' . $ao_ccss_domain . ' so not proceeding.', 2 );
461
+            autoptimizeCriticalCSSCore::ao_ccss_log('Request for domain '.$site_host.' does not match bound domain '.$ao_ccss_domain.' so not proceeding.', 2);
462 462
             return false;
463 463
         }
464 464
 
465
-        $src_url = $site_host . $path;
465
+        $src_url = $site_host.$path;
466 466
 
467 467
         // Avoid AO optimizations if required by config or avoid lazyload if lazyload is active in AO.
468
-        if ( ! empty( $ao_ccss_noptimize ) ) {
468
+        if (!empty($ao_ccss_noptimize)) {
469 469
             $src_url .= '?ao_noptirocket=1';
470
-        } elseif ( class_exists( 'autoptimizeImages', false ) && autoptimizeImages::should_lazyload_wrapper() ) {
470
+        } elseif (class_exists('autoptimizeImages', false) && autoptimizeImages::should_lazyload_wrapper()) {
471 471
             $src_url .= '?ao_nolazy=1';
472 472
         }
473 473
 
474
-        $src_url = apply_filters( 'autoptimize_filter_ccss_cron_srcurl', $src_url );
474
+        $src_url = apply_filters('autoptimize_filter_ccss_cron_srcurl', $src_url);
475 475
 
476 476
         // Initialize request body.
477 477
         $body           = array();
@@ -481,88 +481,88 @@  discard block
 block discarded – undo
481 481
 
482 482
         // Prepare and add viewport size to the body if available.
483 483
         $viewport = autoptimizeCriticalCSSCore::ao_ccss_viewport();
484
-        if ( ! empty( $viewport['w'] ) && ! empty( $viewport['h'] ) ) {
484
+        if (!empty($viewport['w']) && !empty($viewport['h'])) {
485 485
             $body['width']  = $viewport['w'];
486 486
             $body['height'] = $viewport['h'];
487 487
         }
488 488
 
489 489
         // Prepare and add forceInclude to the body if available.
490 490
         global $ao_ccss_finclude;
491
-        $finclude = $this->ao_ccss_finclude( $ao_ccss_finclude );
492
-        if ( ! empty( $finclude ) ) {
491
+        $finclude = $this->ao_ccss_finclude($ao_ccss_finclude);
492
+        if (!empty($finclude)) {
493 493
             $body['forceInclude'] = $finclude;
494 494
         }
495 495
 
496 496
         // Add filter to allow the body array to be altered (e.g. to add customPageHeaders).
497
-        $body = apply_filters( 'autoptimize_ccss_cron_api_generate_body', $body );
497
+        $body = apply_filters('autoptimize_ccss_cron_api_generate_body', $body);
498 498
 
499 499
         // Body must be json and log it.
500
-        $body = json_encode( $body );
501
-        autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request body is ' . $body, 3 );
500
+        $body = json_encode($body);
501
+        autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request body is '.$body, 3);
502 502
 
503 503
         // Prepare the request.
504
-        $url  = esc_url_raw( AO_CCSS_API . 'generate?aover=' . AO_CCSS_VER );
504
+        $url  = esc_url_raw(AO_CCSS_API.'generate?aover='.AO_CCSS_VER);
505 505
         $args = array(
506 506
             'headers' => array(
507
-                'User-Agent'    => 'Autoptimize v' . AO_CCSS_VER,
507
+                'User-Agent'    => 'Autoptimize v'.AO_CCSS_VER,
508 508
                 'Content-type'  => 'application/json; charset=utf-8',
509
-                'Authorization' => 'JWT ' . $key,
509
+                'Authorization' => 'JWT '.$key,
510 510
                 'Connection'    => 'close',
511 511
             ),
512 512
             'body'    => $body,
513 513
         );
514 514
 
515 515
         // Dispatch the request and store its response code.
516
-        $req  = wp_safe_remote_post( $url, $args );
517
-        $code = wp_remote_retrieve_response_code( $req );
518
-        $body = json_decode( wp_remote_retrieve_body( $req ), true );
516
+        $req  = wp_safe_remote_post($url, $args);
517
+        $code = wp_remote_retrieve_response_code($req);
518
+        $body = json_decode(wp_remote_retrieve_body($req), true);
519 519
 
520
-        if ( $debug && $dcode ) {
520
+        if ($debug && $dcode) {
521 521
             // If queue debug is active, change response code.
522 522
             $code = $dcode;
523 523
         }
524 524
 
525
-        if ( 200 == $code ) {
525
+        if (200 == $code) {
526 526
             // Response code is OK.
527 527
             // Workaround criticalcss.com non-RESTful reponses.
528
-            if ( 'JOB_QUEUED' == $body['job']['status'] || 'JOB_ONGOING' == $body['job']['status'] || 'STATUS_JOB_BAD' == $body['job']['status'] ) {
528
+            if ('JOB_QUEUED' == $body['job']['status'] || 'JOB_ONGOING' == $body['job']['status'] || 'STATUS_JOB_BAD' == $body['job']['status']) {
529 529
                 // Log successful and return encoded request body.
530
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied successfully', 3 );
530
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied successfully', 3);
531 531
 
532 532
                 // This code also means the key is valid, so cache key status for 24h if not already cached.
533
-                if ( ( ! $key_status || 2 != $key_status ) && $key ) {
534
-                    update_option( 'autoptimize_ccss_keyst', 2 );
535
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is valid, updating key status', 3 );
533
+                if ((!$key_status || 2 != $key_status) && $key) {
534
+                    update_option('autoptimize_ccss_keyst', 2);
535
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is valid, updating key status', 3);
536 536
                 }
537 537
 
538 538
                 // Return the request body.
539 539
                 return $body;
540 540
             } else {
541 541
                 // Log successful requests with invalid reponses.
542
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied with code <' . $code . '> and an UNKNOWN error condition, body follows...', 2 );
543
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
542
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied with code <'.$code.'> and an UNKNOWN error condition, body follows...', 2);
543
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
544 544
                 return $body;
545 545
             }
546 546
         } else {
547 547
             // Response code is anything else.
548 548
             // Log failed request with a valid response code and return body.
549
-            if ( $code ) {
550
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied with error code <' . $code . '>, body follows...', 2 );
551
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
549
+            if ($code) {
550
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied with error code <'.$code.'>, body follows...', 2);
551
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
552 552
 
553
-                if ( 401 == $code ) {
553
+                if (401 == $code) {
554 554
                     // If request is unauthorized, also clear key status.
555
-                    update_option( 'autoptimize_ccss_keyst', 1 );
556
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is invalid, updating key status', 3 );
555
+                    update_option('autoptimize_ccss_keyst', 1);
556
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is invalid, updating key status', 3);
557 557
                 }
558 558
 
559 559
                 // Return the request body.
560 560
                 return $body;
561 561
             } else {
562 562
                 // Log failed request with no response and return false.
563
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> has no response, this could be a service timeout', 2 );
564
-                if ( is_wp_error( $req ) ) {
565
-                    autoptimizeCriticalCSSCore::ao_ccss_log( $req->get_error_message(), 2 );
563
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> has no response, this could be a service timeout', 2);
564
+                if (is_wp_error($req)) {
565
+                    autoptimizeCriticalCSSCore::ao_ccss_log($req->get_error_message(), 2);
566 566
                 }
567 567
 
568 568
                 return false;
@@ -570,76 +570,76 @@  discard block
 block discarded – undo
570 570
         }
571 571
     }
572 572
 
573
-    public function ao_ccss_api_results( $jobid, $debug, $dcode ) {
573
+    public function ao_ccss_api_results($jobid, $debug, $dcode) {
574 574
         // GET jobs from criticalcss.com and return responses
575 575
         // Get key.
576 576
         global $ao_ccss_key;
577 577
         $key = $ao_ccss_key;
578 578
 
579 579
         // Prepare the request.
580
-        $url  = AO_CCSS_API . 'results?resultId=' . $jobid;
580
+        $url  = AO_CCSS_API.'results?resultId='.$jobid;
581 581
         $args = array(
582 582
             'headers' => array(
583
-                'User-Agent'    => 'Autoptimize CriticalCSS Power-Up v' . AO_CCSS_VER,
584
-                'Authorization' => 'JWT ' . $key,
583
+                'User-Agent'    => 'Autoptimize CriticalCSS Power-Up v'.AO_CCSS_VER,
584
+                'Authorization' => 'JWT '.$key,
585 585
                 'Connection'    => 'close',
586 586
             ),
587 587
         );
588 588
 
589 589
         // Dispatch the request and store its response code.
590
-        $req  = wp_safe_remote_get( $url, $args );
591
-        $code = wp_remote_retrieve_response_code( $req );
592
-        $body = json_decode( wp_remote_retrieve_body( $req ), true );
590
+        $req  = wp_safe_remote_get($url, $args);
591
+        $code = wp_remote_retrieve_response_code($req);
592
+        $body = json_decode(wp_remote_retrieve_body($req), true);
593 593
 
594
-        if ( $debug && $dcode ) {
594
+        if ($debug && $dcode) {
595 595
             // If queue debug is active, change response code.
596 596
             $code = $dcode;
597 597
         }
598 598
 
599
-        if ( 200 == $code ) {
599
+        if (200 == $code) {
600 600
             // Response code is OK.
601
-            if ( is_array( $body ) && ( array_key_exists( 'status', $body ) || array_key_exists( 'job', $body ) ) && ( 'JOB_QUEUED' == $body['status'] || 'JOB_ONGOING' == $body['status'] || 'JOB_DONE' == $body['status'] || 'JOB_FAILED' == $body['status'] || 'JOB_UNKNOWN' == $body['status'] || 'STATUS_JOB_BAD' == $body['job']['status'] ) ) {
601
+            if (is_array($body) && (array_key_exists('status', $body) || array_key_exists('job', $body)) && ('JOB_QUEUED' == $body['status'] || 'JOB_ONGOING' == $body['status'] || 'JOB_DONE' == $body['status'] || 'JOB_FAILED' == $body['status'] || 'JOB_UNKNOWN' == $body['status'] || 'STATUS_JOB_BAD' == $body['job']['status'])) {
602 602
                 // Workaround criticalcss.com non-RESTful reponses
603 603
                 // Log successful and return encoded request body.
604
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied successfully', 3 );
604
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied successfully', 3);
605 605
                 return $body;
606
-            } elseif ( is_array( $body ) && ( array_key_exists( 'error', $body ) && 'This css no longer exists. Please re-generate it.' == $body['error'] ) ) {
606
+            } elseif (is_array($body) && (array_key_exists('error', $body) && 'This css no longer exists. Please re-generate it.' == $body['error'])) {
607 607
                 // Handle no CSS reply
608 608
                 // Log no CSS error and return encoded request body.
609
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied successfully but the CSS for it does not exist anymore', 3 );
609
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied successfully but the CSS for it does not exist anymore', 3);
610 610
                 return $body;
611 611
             } else {
612 612
                 // Log failed request and return false.
613
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied with code <' . $code . '> and an UNKNOWN error condition, body follows...', 2 );
614
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
613
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied with code <'.$code.'> and an UNKNOWN error condition, body follows...', 2);
614
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
615 615
                 return false;
616 616
             }
617 617
         } else {
618 618
             // Response code is anything else
619 619
             // Log failed request with a valid response code and return body.
620
-            if ( $code ) {
621
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied with error code <' . $code . '>, body follows...', 2 );
622
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
623
-                if ( 401 == $code ) {
620
+            if ($code) {
621
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied with error code <'.$code.'>, body follows...', 2);
622
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
623
+                if (401 == $code) {
624 624
                     // If request is unauthorized, also clear key status.
625
-                    update_option( 'autoptimize_ccss_keyst', 1 );
626
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is invalid, updating key status', 3 );
625
+                    update_option('autoptimize_ccss_keyst', 1);
626
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is invalid, updating key status', 3);
627 627
                 }
628 628
 
629 629
                 // Return the request body.
630 630
                 return $body;
631 631
             } else {
632 632
                 // Log failed request with no response and return false.
633
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> has no response, this could be a service timeout', 2 );
633
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> has no response, this could be a service timeout', 2);
634 634
                 return false;
635 635
             }
636 636
         }
637 637
     }
638 638
 
639
-    public function ao_ccss_save_file( $ccss, $target, $review ) {
639
+    public function ao_ccss_save_file($ccss, $target, $review) {
640 640
         // Save critical CSS into the filesystem and return its filename
641 641
         // Prepare review mark.
642
-        if ( $review ) {
642
+        if ($review) {
643 643
             $rmark = '_R';
644 644
         } else {
645 645
             $rmark = '';
@@ -649,21 +649,21 @@  discard block
 block discarded – undo
649 649
         $filename = false;
650 650
         $content  = $ccss;
651 651
 
652
-        if ( autoptimizeCriticalCSSCore::ao_ccss_check_contents( $content ) ) {
652
+        if (autoptimizeCriticalCSSCore::ao_ccss_check_contents($content)) {
653 653
             // Sanitize content, set filename and try to save file.
654
-            $file     = AO_CCSS_DIR . 'ccss_' . md5( $ccss . $target[1] ) . $rmark . '.css';
655
-            $status   = file_put_contents( $file, $content, LOCK_EX );
656
-            $filename = pathinfo( $file, PATHINFO_BASENAME );
657
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS file for the rule <' . $target[0] . '|' . $target[1] . '> was saved as <' . $filename . '>, size in bytes is <' . $status . '>', 3 );
654
+            $file     = AO_CCSS_DIR.'ccss_'.md5($ccss.$target[1]).$rmark.'.css';
655
+            $status   = file_put_contents($file, $content, LOCK_EX);
656
+            $filename = pathinfo($file, PATHINFO_BASENAME);
657
+            autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS file for the rule <'.$target[0].'|'.$target[1].'> was saved as <'.$filename.'>, size in bytes is <'.$status.'>', 3);
658 658
 
659
-            if ( ! $status ) {
659
+            if (!$status) {
660 660
                 // If file has not been saved, reset filename.
661
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS file <' . $filename . '> could not be not saved', 2 );
661
+                autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS file <'.$filename.'> could not be not saved', 2);
662 662
                 $filename = false;
663 663
                 return $filename;
664 664
             }
665 665
         } else {
666
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS received did not pass content check', 2 );
666
+            autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS received did not pass content check', 2);
667 667
             return $filename;
668 668
         }
669 669
 
@@ -673,15 +673,15 @@  discard block
 block discarded – undo
673 673
         global $ao_ccss_rules;
674 674
 
675 675
         // Prepare rule variables.
676
-        $srule   = $ao_ccss_rules[ $target[0] ][ $target[1] ];
676
+        $srule   = $ao_ccss_rules[$target[0]][$target[1]];
677 677
         $oldfile = $srule['file'];
678 678
 
679
-        if ( $oldfile && $oldfile !== $filename ) {
680
-            $delfile = AO_CCSS_DIR . $oldfile;
681
-            if ( file_exists( $delfile ) ) {
682
-                $unlinkst = unlink( $delfile );
683
-                if ( $unlinkst ) {
684
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'A previous critical CSS file <' . $oldfile . '> was removed for the rule <' . $target[0] . '|' . $target[1] . '>', 3 );
679
+        if ($oldfile && $oldfile !== $filename) {
680
+            $delfile = AO_CCSS_DIR.$oldfile;
681
+            if (file_exists($delfile)) {
682
+                $unlinkst = unlink($delfile);
683
+                if ($unlinkst) {
684
+                    autoptimizeCriticalCSSCore::ao_ccss_log('A previous critical CSS file <'.$oldfile.'> was removed for the rule <'.$target[0].'|'.$target[1].'>', 3);
685 685
                 }
686 686
             }
687 687
         }
@@ -690,29 +690,29 @@  discard block
 block discarded – undo
690 690
         return $filename;
691 691
     }
692 692
 
693
-    public function ao_ccss_rule_update( $ljid, $srule, $file, $hash ) {
693
+    public function ao_ccss_rule_update($ljid, $srule, $file, $hash) {
694 694
         // Update or create a rule
695 695
         // Attach required arrays.
696 696
         global $ao_ccss_rules;
697 697
 
698 698
         // Prepare rule variables.
699
-        $trule  = explode( '|', $srule );
700
-        $rule   = $ao_ccss_rules[ $trule[0] ][ $trule[1] ];
699
+        $trule  = explode('|', $srule);
700
+        $rule   = $ao_ccss_rules[$trule[0]][$trule[1]];
701 701
         $action = false;
702 702
         $rtype  = '';
703 703
 
704
-        if ( 0 === $rule['hash'] && 0 !== $rule['file'] ) {
704
+        if (0 === $rule['hash'] && 0 !== $rule['file']) {
705 705
             // manual rule, don't ever overwrite.
706 706
             $action = 'NOT UPDATED';
707 707
             $rtype  = 'MANUAL';
708
-        } elseif ( 0 === $rule['hash'] && 0 === $rule['file'] ) {
708
+        } elseif (0 === $rule['hash'] && 0 === $rule['file']) {
709 709
             // If this is an user created AUTO rule with no hash and file yet, update its hash and filename
710 710
             // Set rule hash, file and action flag.
711 711
             $rule['hash'] = $hash;
712 712
             $rule['file'] = $file;
713 713
             $action       = 'UPDATED';
714 714
             $rtype        = 'AUTO';
715
-        } elseif ( 0 !== $rule['hash'] && ctype_alnum( $rule['hash'] ) ) {
715
+        } elseif (0 !== $rule['hash'] && ctype_alnum($rule['hash'])) {
716 716
             // If this is an genuine AUTO rule, update its hash and filename
717 717
             // Set rule hash, file and action flag.
718 718
             $rule['hash'] = $hash;
@@ -722,7 +722,7 @@  discard block
 block discarded – undo
722 722
         } else {
723 723
             // If rule doesn't exist, create an AUTO rule
724 724
             // AUTO rules were only for types, but will now also work for paths.
725
-            if ( ( 'types' == $trule[0] || 'paths' == $trule[0] ) && ! empty( $trule[1] ) ) {
725
+            if (('types' == $trule[0] || 'paths' == $trule[0]) && !empty($trule[1])) {
726 726
                 // Set rule hash and file and action flag.
727 727
                 $rule['hash'] = $hash;
728 728
                 $rule['file'] = $file;
@@ -730,47 +730,47 @@  discard block
 block discarded – undo
730 730
                 $rtype        = 'AUTO';
731 731
             } else {
732 732
                 // Log that no rule was created.
733
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Exception, no AUTO rule created', 3 );
733
+                autoptimizeCriticalCSSCore::ao_ccss_log('Exception, no AUTO rule created', 3);
734 734
             }
735 735
         }
736 736
 
737
-        if ( $action ) {
737
+        if ($action) {
738 738
             // If a rule creation/update is required, persist updated rules object.
739
-            $ao_ccss_rules[ $trule[0] ][ $trule[1] ] = $rule;
740
-            $ao_ccss_rules_raw                       = json_encode( $ao_ccss_rules );
741
-            update_option( 'autoptimize_ccss_rules', $ao_ccss_rules_raw );
742
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Target rule <' . $srule . '> of type <' . $rtype . '> was ' . $action . ' for job id <' . $ljid . '>', 3 );
739
+            $ao_ccss_rules[$trule[0]][$trule[1]] = $rule;
740
+            $ao_ccss_rules_raw                       = json_encode($ao_ccss_rules);
741
+            update_option('autoptimize_ccss_rules', $ao_ccss_rules_raw);
742
+            autoptimizeCriticalCSSCore::ao_ccss_log('Target rule <'.$srule.'> of type <'.$rtype.'> was '.$action.' for job id <'.$ljid.'>', 3);
743 743
         } else {
744
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'No rule action required', 3 );
744
+            autoptimizeCriticalCSSCore::ao_ccss_log('No rule action required', 3);
745 745
         }
746 746
     }
747 747
 
748
-    function ao_ccss_finclude( $finclude_raw ) {
748
+    function ao_ccss_finclude($finclude_raw) {
749 749
         // Prepare forceInclude object.
750
-        if ( ! empty( $finclude_raw ) ) {
750
+        if (!empty($finclude_raw)) {
751 751
             // If there are any content
752 752
             // Convert raw string into arra and initialize the returning object.
753
-            $fincludes = explode( ',', $finclude_raw );
753
+            $fincludes = explode(',', $finclude_raw);
754 754
             $finclude  = array();
755 755
 
756 756
             // Interacts over every rule.
757 757
             $i = 0;
758
-            foreach ( $fincludes as $include ) {
758
+            foreach ($fincludes as $include) {
759 759
                 // Trim leading and trailing whitespaces.
760
-                $include = trim( $include );
760
+                $include = trim($include);
761 761
 
762
-                if ( substr( $include, 0, 2 ) === '//' ) {
762
+                if (substr($include, 0, 2) === '//') {
763 763
                     // Regex rule
764 764
                     // Format value as required.
765
-                    $include = str_replace( '//', '/', $include );
766
-                    $include = $include . '/i';
765
+                    $include = str_replace('//', '/', $include);
766
+                    $include = $include.'/i';
767 767
 
768 768
                     // Store regex object.
769
-                    $finclude[ $i ]['type']  = 'RegExp';
770
-                    $finclude[ $i ]['value'] = $include;
769
+                    $finclude[$i]['type']  = 'RegExp';
770
+                    $finclude[$i]['value'] = $include;
771 771
                 } else {
772 772
                     // Simple value rule.
773
-                    $finclude[ $i ]['value'] = $include;
773
+                    $finclude[$i]['value'] = $include;
774 774
                 }
775 775
 
776 776
                 $i++;
@@ -787,54 +787,54 @@  discard block
 block discarded – undo
787 787
     public function ao_ccss_cleaning() {
788 788
         // Perform plugin maintenance
789 789
         // Truncate log file >= 1MB .
790
-        if ( file_exists( AO_CCSS_LOG ) ) {
791
-            if ( filesize( AO_CCSS_LOG ) >= 1048576 ) {
792
-                $logfile = fopen( AO_CCSS_LOG, 'w' );
793
-                fclose( $logfile );
790
+        if (file_exists(AO_CCSS_LOG)) {
791
+            if (filesize(AO_CCSS_LOG) >= 1048576) {
792
+                $logfile = fopen(AO_CCSS_LOG, 'w');
793
+                fclose($logfile);
794 794
             }
795 795
         }
796 796
 
797 797
         // Remove lock file.
798
-        if ( file_exists( AO_CCSS_LOCK ) ) {
799
-            unlink( AO_CCSS_LOCK );
798
+        if (file_exists(AO_CCSS_LOCK)) {
799
+            unlink(AO_CCSS_LOCK);
800 800
         }
801 801
 
802 802
         // Make sure queue processing is scheduled, recreate if not.
803
-        if ( ! wp_next_scheduled( 'ao_ccss_queue' ) ) {
804
-            wp_schedule_event( time(), apply_filters( 'ao_ccss_queue_schedule', 'ao_ccss' ), 'ao_ccss_queue' );
803
+        if (!wp_next_scheduled('ao_ccss_queue')) {
804
+            wp_schedule_event(time(), apply_filters('ao_ccss_queue_schedule', 'ao_ccss'), 'ao_ccss_queue');
805 805
         }
806 806
 
807 807
         // Queue cleaning.
808 808
         global $ao_ccss_queue;
809 809
         $queue_purge_threshold = 100;
810
-        $queue_purge_age       = 24 * 60 * 60;
811
-        $queue_length          = count( $ao_ccss_queue );
812
-        $timestamp_yesterday   = microtime( true ) - $queue_purge_age;
810
+        $queue_purge_age       = 24*60*60;
811
+        $queue_length          = count($ao_ccss_queue);
812
+        $timestamp_yesterday   = microtime(true) - $queue_purge_age;
813 813
         $remove_old_new        = false;
814 814
         $queue_altered         = false;
815 815
 
816
-        if ( $queue_length > $queue_purge_threshold ) {
816
+        if ($queue_length > $queue_purge_threshold) {
817 817
             $remove_old_new = true;
818 818
         }
819 819
 
820
-        foreach ( $ao_ccss_queue as $path => $job ) {
821
-            if ( ( $remove_old_new && 'NEW' == $job['jqstat'] && $job['jctime'] < $timestamp_yesterday ) || in_array( $job['jqstat'], array( 'JOB_FAILED', 'STATUS_JOB_BAD', 'NO_CSS', 'NO_RESPONSE' ) ) ) {
822
-                unset( $ao_ccss_queue[ $path ] );
820
+        foreach ($ao_ccss_queue as $path => $job) {
821
+            if (($remove_old_new && 'NEW' == $job['jqstat'] && $job['jctime'] < $timestamp_yesterday) || in_array($job['jqstat'], array('JOB_FAILED', 'STATUS_JOB_BAD', 'NO_CSS', 'NO_RESPONSE'))) {
822
+                unset($ao_ccss_queue[$path]);
823 823
                 $queue_altered = true;
824 824
             }
825 825
         }
826 826
 
827 827
         // save queue to options!
828
-        if ( $queue_altered ) {
829
-            $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
830
-            update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
831
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue cleaning done.', 3 );
828
+        if ($queue_altered) {
829
+            $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
830
+            update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
831
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue cleaning done.', 3);
832 832
         }
833 833
 
834 834
         // re-check key if invalid.
835 835
         global $ao_ccss_keyst;
836
-        if ( 1 == $ao_ccss_keyst ) {
837
-            $this->ao_ccss_api_generate( '', '', '' );
836
+        if (1 == $ao_ccss_keyst) {
837
+            $this->ao_ccss_api_generate('', '', '');
838 838
         }
839 839
     }
840 840
 }
Please login to merge, or discard this patch.
classes/autoptimizeCache.php 1 patch
Spacing   +183 added lines, -183 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles disk-cache-related operations.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -38,22 +38,22 @@  discard block
 block discarded – undo
38 38
      * @param string $md5 Hash.
39 39
      * @param string $ext Extension.
40 40
      */
41
-    public function __construct( $md5, $ext = 'php' )
41
+    public function __construct($md5, $ext = 'php')
42 42
     {
43 43
         $_min_ext = '';
44
-        if ( apply_filters( 'autoptimize_filter_cache_url_add_min_ext', false ) ) {
44
+        if (apply_filters('autoptimize_filter_cache_url_add_min_ext', false)) {
45 45
             $_min_ext = '.min';
46 46
         }
47 47
 
48 48
         $this->cachedir = AUTOPTIMIZE_CACHE_DIR;
49 49
         $this->nogzip   = AUTOPTIMIZE_CACHE_NOGZIP;
50
-        if ( ! $this->nogzip ) {
51
-            $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . $_min_ext . '.php';
50
+        if (!$this->nogzip) {
51
+            $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.$_min_ext.'.php';
52 52
         } else {
53
-            if ( in_array( $ext, array( 'js', 'css' ) ) ) {
54
-                $this->filename = $ext . '/' . AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . $_min_ext . '.' . $ext;
53
+            if (in_array($ext, array('js', 'css'))) {
54
+                $this->filename = $ext.'/'.AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.$_min_ext.'.'.$ext;
55 55
             } else {
56
-                $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . $_min_ext . '.' . $ext;
56
+                $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.$_min_ext.'.'.$ext;
57 57
             }
58 58
         }
59 59
     }
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
      */
66 66
     public function check()
67 67
     {
68
-        return file_exists( $this->cachedir . $this->filename );
68
+        return file_exists($this->cachedir.$this->filename);
69 69
     }
70 70
 
71 71
     /**
@@ -75,11 +75,11 @@  discard block
 block discarded – undo
75 75
      */
76 76
     public function retrieve()
77 77
     {
78
-        if ( $this->check() ) {
79
-            if ( false == $this->nogzip ) {
80
-                return file_get_contents( $this->cachedir . $this->filename . '.none' );
78
+        if ($this->check()) {
79
+            if (false == $this->nogzip) {
80
+                return file_get_contents($this->cachedir.$this->filename.'.none');
81 81
             } else {
82
-                return file_get_contents( $this->cachedir . $this->filename );
82
+                return file_get_contents($this->cachedir.$this->filename);
83 83
             }
84 84
         }
85 85
         return false;
@@ -93,10 +93,10 @@  discard block
 block discarded – undo
93 93
      *
94 94
      * @return void
95 95
      */
96
-    public function cache( $data, $mime )
96
+    public function cache($data, $mime)
97 97
     {
98 98
         // readonly FS explicitly OK'ed by developer, so just pretend all is OK.
99
-        if ( defined( 'AUTOPTIMIZE_CACHE_READONLY' ) ) {
99
+        if (defined('AUTOPTIMIZE_CACHE_READONLY')) {
100 100
             return true;
101 101
         }
102 102
 
@@ -104,44 +104,44 @@  discard block
 block discarded – undo
104 104
         //
105 105
         // to be activated for users that experience these ugly errors;
106 106
         // PHP Warning: file_put_contents failed to open stream: No such file or directory.
107
-        if ( apply_filters( 'autoptimize_filter_cache_checkdirs_on_write', false ) ) {
107
+        if (apply_filters('autoptimize_filter_cache_checkdirs_on_write', false)) {
108 108
             $this->check_and_create_dirs();
109 109
         }
110 110
 
111
-        if ( false === $this->nogzip ) {
111
+        if (false === $this->nogzip) {
112 112
             // We handle gzipping ourselves.
113 113
             $file    = 'default.php';
114
-            $phpcode = file_get_contents( AUTOPTIMIZE_PLUGIN_DIR . 'config/' . $file );
115
-            $phpcode = str_replace( array( '%%CONTENT%%', 'exit;' ), array( $mime, '' ), $phpcode );
114
+            $phpcode = file_get_contents(AUTOPTIMIZE_PLUGIN_DIR.'config/'.$file);
115
+            $phpcode = str_replace(array('%%CONTENT%%', 'exit;'), array($mime, ''), $phpcode);
116 116
 
117
-            file_put_contents( $this->cachedir . $this->filename, $phpcode );
118
-            file_put_contents( $this->cachedir . $this->filename . '.none', $data );
117
+            file_put_contents($this->cachedir.$this->filename, $phpcode);
118
+            file_put_contents($this->cachedir.$this->filename.'.none', $data);
119 119
         } else {
120 120
             // Write code to cache without doing anything else.
121
-            file_put_contents( $this->cachedir . $this->filename, $data );
121
+            file_put_contents($this->cachedir.$this->filename, $data);
122 122
 
123 123
             // save fallback .js or .css file if filter true (to be false by default) but not if snippet or single.
124
-            if ( self::do_fallback() && strpos( $this->filename, '_snippet_' ) === false && strpos( $this->filename, '_single_' ) === false ) {
125
-                $_extension     = pathinfo( $this->filename, PATHINFO_EXTENSION );
126
-                $_fallback_file = AUTOPTIMIZE_CACHEFILE_PREFIX . 'fallback.' . $_extension;
127
-                if ( ( 'css' === $_extension || 'js' === $_extension ) && ! file_exists( $this->cachedir . $_extension . '/' . $_fallback_file ) ) {
128
-                    file_put_contents( $this->cachedir . $_extension . '/' . $_fallback_file, $data );
124
+            if (self::do_fallback() && strpos($this->filename, '_snippet_') === false && strpos($this->filename, '_single_') === false) {
125
+                $_extension     = pathinfo($this->filename, PATHINFO_EXTENSION);
126
+                $_fallback_file = AUTOPTIMIZE_CACHEFILE_PREFIX.'fallback.'.$_extension;
127
+                if (('css' === $_extension || 'js' === $_extension) && !file_exists($this->cachedir.$_extension.'/'.$_fallback_file)) {
128
+                    file_put_contents($this->cachedir.$_extension.'/'.$_fallback_file, $data);
129 129
                 }
130 130
             }
131 131
 
132
-            if ( apply_filters( 'autoptimize_filter_cache_create_static_gzip', false ) ) {
132
+            if (apply_filters('autoptimize_filter_cache_create_static_gzip', false)) {
133 133
                 // Create an additional cached gzip file.
134
-                file_put_contents( $this->cachedir . $this->filename . '.gz', gzencode( $data, 9, FORCE_GZIP ) );
134
+                file_put_contents($this->cachedir.$this->filename.'.gz', gzencode($data, 9, FORCE_GZIP));
135 135
                 // If PHP Brotli extension is installed, create an additional cached Brotli file.
136
-                if ( function_exists( 'brotli_compress' ) ) {
137
-                    file_put_contents( $this->cachedir . $this->filename . '.br', brotli_compress( $data, 11, BROTLI_GENERIC ) );
136
+                if (function_exists('brotli_compress')) {
137
+                    file_put_contents($this->cachedir.$this->filename.'.br', brotli_compress($data, 11, BROTLI_GENERIC));
138 138
                 }
139 139
             }
140 140
         }
141 141
 
142 142
         // Provide 3rd party action hook for every cache file that is created.
143 143
         // This hook can for example be used to inject a copy of the created cache file to a other domain.
144
-        do_action( 'autoptimize_action_cache_file_created', $this->cachedir . $this->filename );
144
+        do_action('autoptimize_action_cache_file_created', $this->cachedir.$this->filename);
145 145
     }
146 146
 
147 147
     /**
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
         // The original idea here was to provide 3rd party code a hook so that
157 157
         // it can "listen" to all the complete autoptimized-urls that the page
158 158
         // will emit... Or something to that effect I think?
159
-        apply_filters( 'autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL . $this->filename );
159
+        apply_filters('autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL.$this->filename);
160 160
 
161 161
         return $this->filename;
162 162
     }
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
      * @param string $file Filename.
170 170
      * @return bool
171 171
      */
172
-    protected static function is_valid_cache_file( $dir, $file )
172
+    protected static function is_valid_cache_file($dir, $file)
173 173
     {
174
-        if ( '.' !== $file && '..' !== $file &&
175
-            false !== strpos( $file, AUTOPTIMIZE_CACHEFILE_PREFIX ) &&
176
-            is_file( $dir . $file ) ) {
174
+        if ('.' !== $file && '..' !== $file &&
175
+            false !== strpos($file, AUTOPTIMIZE_CACHEFILE_PREFIX) &&
176
+            is_file($dir.$file)) {
177 177
 
178 178
             // It's a valid file!
179 179
             return true;
@@ -191,16 +191,16 @@  discard block
 block discarded – undo
191 191
     protected static function clear_cache_classic()
192 192
     {
193 193
         $contents = self::get_cache_contents();
194
-        foreach ( $contents as $name => $files ) {
195
-            $dir = rtrim( AUTOPTIMIZE_CACHE_DIR . $name, '/' ) . '/';
196
-            foreach ( $files as $file ) {
197
-                if ( self::is_valid_cache_file( $dir, $file ) ) {
198
-                    @unlink( $dir . $file ); // @codingStandardsIgnoreLine
194
+        foreach ($contents as $name => $files) {
195
+            $dir = rtrim(AUTOPTIMIZE_CACHE_DIR.$name, '/').'/';
196
+            foreach ($files as $file) {
197
+                if (self::is_valid_cache_file($dir, $file)) {
198
+                    @unlink($dir.$file); // @codingStandardsIgnoreLine
199 199
                 }
200 200
             }
201 201
         }
202 202
 
203
-        @unlink( AUTOPTIMIZE_CACHE_DIR . '/.htaccess' ); // @codingStandardsIgnoreLine
203
+        @unlink(AUTOPTIMIZE_CACHE_DIR.'/.htaccess'); // @codingStandardsIgnoreLine
204 204
     }
205 205
 
206 206
     /**
@@ -211,19 +211,19 @@  discard block
 block discarded – undo
211 211
      *
212 212
      * @return bool
213 213
      */
214
-    protected static function rmdir( $pathname )
214
+    protected static function rmdir($pathname)
215 215
     {
216
-        $files = self::get_dir_contents( $pathname );
217
-        foreach ( $files as $file ) {
218
-            $path = $pathname . '/' . $file;
219
-            if ( is_dir( $path ) ) {
220
-                self::rmdir( $path );
216
+        $files = self::get_dir_contents($pathname);
217
+        foreach ($files as $file) {
218
+            $path = $pathname.'/'.$file;
219
+            if (is_dir($path)) {
220
+                self::rmdir($path);
221 221
             } else {
222
-                unlink( $path );
222
+                unlink($path);
223 223
             }
224 224
         }
225 225
 
226
-        return rmdir( $pathname );
226
+        return rmdir($pathname);
227 227
     }
228 228
 
229 229
     /**
@@ -244,12 +244,12 @@  discard block
 block discarded – undo
244 244
         $new_name = self::get_unique_name();
245 245
 
246 246
         // Makes sure the new pathname is on the same level...
247
-        $new_pathname = dirname( $dir ) . '/' . $new_name;
248
-        $renamed      = @rename( $dir, $new_pathname ); // @codingStandardsIgnoreLine
247
+        $new_pathname = dirname($dir).'/'.$new_name;
248
+        $renamed      = @rename($dir, $new_pathname); // @codingStandardsIgnoreLine
249 249
 
250 250
         // When renamed, re-create the default cache directory back so it's
251 251
         // available again...
252
-        if ( $renamed ) {
252
+        if ($renamed) {
253 253
             $ok = self::cacheavail();
254 254
         }
255 255
 
@@ -263,7 +263,7 @@  discard block
 block discarded – undo
263 263
      */
264 264
     public static function advanced_cache_clear_enabled()
265 265
     {
266
-        return apply_filters( 'autoptimize_filter_cache_clear_advanced', false );
266
+        return apply_filters('autoptimize_filter_cache_clear_advanced', false);
267 267
     }
268 268
 
269 269
     /**
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
     protected static function get_unique_name()
275 275
     {
276 276
         $prefix   = self::get_advanced_cache_clear_prefix();
277
-        $new_name = uniqid( $prefix, true );
277
+        $new_name = uniqid($prefix, true);
278 278
 
279 279
         return $new_name;
280 280
     }
@@ -287,8 +287,8 @@  discard block
 block discarded – undo
287 287
     protected static function get_advanced_cache_clear_prefix()
288 288
     {
289 289
         $pathname = self::get_pathname_base();
290
-        $basename = basename( $pathname );
291
-        $prefix   = $basename . '-artifact-';
290
+        $basename = basename($pathname);
291
+        $prefix   = $basename.'-artifact-';
292 292
 
293 293
         return $prefix;
294 294
     }
@@ -301,9 +301,9 @@  discard block
 block discarded – undo
301 301
      *
302 302
      * @return array
303 303
      */
304
-    protected static function get_dir_contents( $pathname )
304
+    protected static function get_dir_contents($pathname)
305 305
     {
306
-        return array_slice( scandir( $pathname ), 2 );
306
+        return array_slice(scandir($pathname), 2);
307 307
     }
308 308
 
309 309
     /**
@@ -316,24 +316,24 @@  discard block
 block discarded – undo
316 316
     public static function delete_advanced_cache_clear_artifacts()
317 317
     {
318 318
         // Don't go through these motions (called from the cachechecker) if advanced cache clear isn't even active.
319
-        if ( ! self::advanced_cache_clear_enabled() ) {
319
+        if (!self::advanced_cache_clear_enabled()) {
320 320
             return false;
321 321
         }
322 322
 
323 323
         $dir    = self::get_pathname_base();
324 324
         $prefix = self::get_advanced_cache_clear_prefix();
325
-        $parent = dirname( $dir );
325
+        $parent = dirname($dir);
326 326
         $ok     = false;
327 327
 
328 328
         // Returns the list of files without '.' and '..' elements.
329
-        $files = self::get_dir_contents( $parent );
330
-        if ( is_array( $files ) && ! empty( $files ) ) {
331
-            foreach ( $files as $file ) {
332
-                $path     = $parent . '/' . $file;
333
-                $prefixed = ( false !== strpos( $path, $prefix ) );
329
+        $files = self::get_dir_contents($parent);
330
+        if (is_array($files) && !empty($files)) {
331
+            foreach ($files as $file) {
332
+                $path     = $parent.'/'.$file;
333
+                $prefixed = (false !== strpos($path, $prefix));
334 334
                 // Removing only our own (prefixed) directories...
335
-                if ( is_dir( $path ) && $prefixed ) {
336
-                    $ok = self::rmdir( $path );
335
+                if (is_dir($path) && $prefixed) {
336
+                    $ok = self::rmdir($path);
337 337
                 }
338 338
             }
339 339
         }
@@ -353,9 +353,9 @@  discard block
 block discarded – undo
353 353
     {
354 354
         $pathname = self::get_pathname_base();
355 355
 
356
-        if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
356
+        if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
357 357
             $blog_id   = get_current_blog_id();
358
-            $pathname .= $blog_id . '/';
358
+            $pathname .= $blog_id.'/';
359 359
         }
360 360
 
361 361
         return $pathname;
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
      */
369 369
     protected static function get_pathname_base()
370 370
     {
371
-        $pathname = WP_CONTENT_DIR . AUTOPTIMIZE_CACHE_CHILD_DIR;
371
+        $pathname = WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR;
372 372
 
373 373
         return $pathname;
374 374
     }
@@ -380,46 +380,46 @@  discard block
 block discarded – undo
380 380
      *
381 381
      * @return bool
382 382
      */
383
-    public static function clearall( $propagate = true )
383
+    public static function clearall($propagate = true)
384 384
     {
385
-        if ( ! self::cacheavail() ) {
385
+        if (!self::cacheavail()) {
386 386
             return false;
387 387
         }
388 388
 
389 389
         // TODO/FIXME: If cache is big, switch to advanced/new cache clearing automatically?
390
-        if ( self::advanced_cache_clear_enabled() ) {
390
+        if (self::advanced_cache_clear_enabled()) {
391 391
             self::clear_cache_via_rename();
392 392
         } else {
393 393
             self::clear_cache_classic();
394 394
         }
395 395
 
396 396
         // Remove 404 handler if required.
397
-        if ( self::do_fallback() ) {
398
-            $_fallback_php = trailingslashit( WP_CONTENT_DIR ) . 'autoptimize_404_handler.php';
399
-            @unlink( $_fallback_php ); // @codingStandardsIgnoreLine
397
+        if (self::do_fallback()) {
398
+            $_fallback_php = trailingslashit(WP_CONTENT_DIR).'autoptimize_404_handler.php';
399
+            @unlink($_fallback_php); // @codingStandardsIgnoreLine
400 400
         }
401 401
 
402 402
         // Remove the transient so it gets regenerated...
403
-        delete_transient( 'autoptimize_stats' );
403
+        delete_transient('autoptimize_stats');
404 404
 
405 405
         // Cache was just purged, clear page cache and allow others to hook into our purging...
406
-        if ( true === $propagate ) {
407
-            if ( ! function_exists( 'autoptimize_do_cachepurged_action' ) ) {
406
+        if (true === $propagate) {
407
+            if (!function_exists('autoptimize_do_cachepurged_action')) {
408 408
                 function autoptimize_do_cachepurged_action() {
409
-                    do_action( 'autoptimize_action_cachepurged' );
409
+                    do_action('autoptimize_action_cachepurged');
410 410
                 }
411 411
             }
412
-            add_action( 'shutdown', 'autoptimize_do_cachepurged_action', 11 );
413
-            add_action( 'autoptimize_action_cachepurged', array( 'autoptimizeCache', 'flushPageCache' ), 10, 0 );
412
+            add_action('shutdown', 'autoptimize_do_cachepurged_action', 11);
413
+            add_action('autoptimize_action_cachepurged', array('autoptimizeCache', 'flushPageCache'), 10, 0);
414 414
         }
415 415
 
416 416
         // Warm cache (part of speedupper)!
417
-        if ( apply_filters( 'autoptimize_filter_speedupper', true ) && false == get_transient( 'autoptimize_cache_warmer_protector' ) ) {
418
-            set_transient( 'autoptimize_cache_warmer_protector', 'I shall not warm cache for another 10 minutes.', 60 * 10 );
419
-            $url   = site_url() . '/?ao_speedup_cachebuster=' . rand( 1, 100000 );
420
-            $url   = apply_filters( 'autoptimize_filter_cache_warmer_url', $url );
421
-            $cache = @wp_remote_get( $url ); // @codingStandardsIgnoreLine
422
-            unset( $cache );
417
+        if (apply_filters('autoptimize_filter_speedupper', true) && false == get_transient('autoptimize_cache_warmer_protector')) {
418
+            set_transient('autoptimize_cache_warmer_protector', 'I shall not warm cache for another 10 minutes.', 60*10);
419
+            $url   = site_url().'/?ao_speedup_cachebuster='.rand(1, 100000);
420
+            $url   = apply_filters('autoptimize_filter_cache_warmer_url', $url);
421
+            $cache = @wp_remote_get($url); // @codingStandardsIgnoreLine
422
+            unset($cache);
423 423
         }
424 424
 
425 425
         return true;
@@ -434,7 +434,7 @@  discard block
 block discarded – undo
434 434
      */
435 435
     public static function clearall_actionless()
436 436
     {
437
-        return self::clearall( false );
437
+        return self::clearall(false);
438 438
     }
439 439
 
440 440
     /**
@@ -446,8 +446,8 @@  discard block
 block discarded – undo
446 446
     {
447 447
         $contents = array();
448 448
 
449
-        foreach ( array( '', 'js', 'css' ) as $dir ) {
450
-            $contents[ $dir ] = scandir( AUTOPTIMIZE_CACHE_DIR . $dir );
449
+        foreach (array('', 'js', 'css') as $dir) {
450
+            $contents[$dir] = scandir(AUTOPTIMIZE_CACHE_DIR.$dir);
451 451
         }
452 452
 
453 453
         return $contents;
@@ -460,21 +460,21 @@  discard block
 block discarded – undo
460 460
      */
461 461
     public static function stats()
462 462
     {
463
-        $stats = get_transient( 'autoptimize_stats' );
463
+        $stats = get_transient('autoptimize_stats');
464 464
 
465 465
         // If no transient, do the actual scan!
466
-        if ( ! is_array( $stats ) ) {
467
-            if ( ! self::cacheavail() ) {
466
+        if (!is_array($stats)) {
467
+            if (!self::cacheavail()) {
468 468
                 return 0;
469 469
             }
470 470
             $stats = self::stats_scan();
471 471
             $count = $stats[0];
472
-            if ( $count > 100 ) {
472
+            if ($count > 100) {
473 473
                 // Store results in transient.
474 474
                 set_transient(
475 475
                     'autoptimize_stats',
476 476
                     $stats,
477
-                    apply_filters( 'autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS )
477
+                    apply_filters('autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS)
478 478
                 );
479 479
             }
480 480
         }
@@ -497,30 +497,30 @@  discard block
 block discarded – undo
497 497
         $size  = 0;
498 498
 
499 499
         // Scan everything in our cache directories.
500
-        foreach ( self::get_cache_contents() as $name => $files ) {
501
-            $dir = rtrim( AUTOPTIMIZE_CACHE_DIR . $name, '/' ) . '/';
502
-            foreach ( $files as $file ) {
503
-                if ( self::is_valid_cache_file( $dir, $file ) ) {
504
-                    if ( AUTOPTIMIZE_CACHE_NOGZIP &&
500
+        foreach (self::get_cache_contents() as $name => $files) {
501
+            $dir = rtrim(AUTOPTIMIZE_CACHE_DIR.$name, '/').'/';
502
+            foreach ($files as $file) {
503
+                if (self::is_valid_cache_file($dir, $file)) {
504
+                    if (AUTOPTIMIZE_CACHE_NOGZIP &&
505 505
                         (
506
-                            false !== strpos( $file, '.js' ) ||
507
-                            false !== strpos( $file, '.css' ) ||
508
-                            false !== strpos( $file, '.img' ) ||
509
-                            false !== strpos( $file, '.txt' )
506
+                            false !== strpos($file, '.js') ||
507
+                            false !== strpos($file, '.css') ||
508
+                            false !== strpos($file, '.img') ||
509
+                            false !== strpos($file, '.txt')
510 510
                         )
511 511
                     ) {
512 512
                         // Web server is gzipping, we count .js|.css|.img|.txt files.
513 513
                         $count++;
514
-                    } elseif ( ! AUTOPTIMIZE_CACHE_NOGZIP && false !== strpos( $file, '.none' ) ) {
514
+                    } elseif (!AUTOPTIMIZE_CACHE_NOGZIP && false !== strpos($file, '.none')) {
515 515
                         // We are gzipping ourselves via php, counting only .none files.
516 516
                         $count++;
517 517
                     }
518
-                    $size += filesize( $dir . $file );
518
+                    $size += filesize($dir.$file);
519 519
                 }
520 520
             }
521 521
         }
522 522
 
523
-        $stats = array( $count, $size, time() );
523
+        $stats = array($count, $size, time());
524 524
 
525 525
         return $stats;
526 526
     }
@@ -535,26 +535,26 @@  discard block
 block discarded – undo
535 535
     public static function cacheavail()
536 536
     {
537 537
         // readonly FS explicitly OK'ed by dev, let's assume the cache dirs are there!
538
-        if ( defined( 'AUTOPTIMIZE_CACHE_READONLY' ) ) {
538
+        if (defined('AUTOPTIMIZE_CACHE_READONLY')) {
539 539
             return true;
540 540
         }
541 541
 
542
-        if ( false === autoptimizeCache::check_and_create_dirs() ) {
542
+        if (false === autoptimizeCache::check_and_create_dirs()) {
543 543
             return false;
544 544
         }
545 545
 
546 546
         // Using .htaccess inside our cache folder to overrule wp-super-cache.
547
-        $htaccess = AUTOPTIMIZE_CACHE_DIR . '/.htaccess';
548
-        if ( ! is_file( $htaccess ) ) {
547
+        $htaccess = AUTOPTIMIZE_CACHE_DIR.'/.htaccess';
548
+        if (!is_file($htaccess)) {
549 549
             /**
550 550
              * Create `wp-content/AO_htaccess_tmpl` file with
551 551
              * whatever htaccess rules you might need
552 552
              * if you want to override default AO htaccess
553 553
              */
554
-            $htaccess_tmpl = WP_CONTENT_DIR . '/AO_htaccess_tmpl';
555
-            if ( is_file( $htaccess_tmpl ) ) {
556
-                $content = file_get_contents( $htaccess_tmpl );
557
-            } elseif ( is_multisite() || ! AUTOPTIMIZE_CACHE_NOGZIP ) {
554
+            $htaccess_tmpl = WP_CONTENT_DIR.'/AO_htaccess_tmpl';
555
+            if (is_file($htaccess_tmpl)) {
556
+                $content = file_get_contents($htaccess_tmpl);
557
+            } elseif (is_multisite() || !AUTOPTIMIZE_CACHE_NOGZIP) {
558 558
                 $content = '<IfModule mod_expires.c>
559 559
         ExpiresActive On
560 560
         ExpiresByType text/css A30672000
@@ -608,13 +608,13 @@  discard block
 block discarded – undo
608 608
 </IfModule>';
609 609
             }
610 610
 
611
-            if ( self::do_fallback() === true ) {
612
-                $content .= "\nErrorDocument 404 " . trailingslashit( parse_url( content_url(), PHP_URL_PATH ) ) . 'autoptimize_404_handler.php';
611
+            if (self::do_fallback() === true) {
612
+                $content .= "\nErrorDocument 404 ".trailingslashit(parse_url(content_url(), PHP_URL_PATH)).'autoptimize_404_handler.php';
613 613
             }
614
-            @file_put_contents( $htaccess, $content ); // @codingStandardsIgnoreLine
614
+            @file_put_contents($htaccess, $content); // @codingStandardsIgnoreLine
615 615
         }
616 616
 
617
-        if ( self::do_fallback() ) {
617
+        if (self::do_fallback()) {
618 618
             self::check_fallback_php();
619 619
         }
620 620
 
@@ -629,17 +629,17 @@  discard block
 block discarded – undo
629 629
      */
630 630
     public static function check_fallback_php() {
631 631
         $_fallback_filename = 'autoptimize_404_handler.php';
632
-        $_fallback_php      = trailingslashit( WP_CONTENT_DIR ) . $_fallback_filename;
632
+        $_fallback_php      = trailingslashit(WP_CONTENT_DIR).$_fallback_filename;
633 633
         $_fallback_status   = true;
634 634
 
635
-        if ( ! file_exists( $_fallback_php ) && is_writable( WP_CONTENT_DIR ) ) {
636
-            $_fallback_php_contents = file_get_contents( AUTOPTIMIZE_PLUGIN_DIR . 'config/' . $_fallback_filename );
637
-            $_fallback_php_contents = str_replace( '<?php exit;', '<?php', $_fallback_php_contents );
638
-            $_fallback_php_contents = str_replace( '<!--ao-cache-dir-->', AUTOPTIMIZE_CACHE_DIR, $_fallback_php_contents );
639
-            if ( apply_filters( 'autoptimize_filter_cache_fallback_log_errors', false ) ) {
640
-                $_fallback_php_contents = str_replace( '// error_log', 'error_log', $_fallback_php_contents );
635
+        if (!file_exists($_fallback_php) && is_writable(WP_CONTENT_DIR)) {
636
+            $_fallback_php_contents = file_get_contents(AUTOPTIMIZE_PLUGIN_DIR.'config/'.$_fallback_filename);
637
+            $_fallback_php_contents = str_replace('<?php exit;', '<?php', $_fallback_php_contents);
638
+            $_fallback_php_contents = str_replace('<!--ao-cache-dir-->', AUTOPTIMIZE_CACHE_DIR, $_fallback_php_contents);
639
+            if (apply_filters('autoptimize_filter_cache_fallback_log_errors', false)) {
640
+                $_fallback_php_contents = str_replace('// error_log', 'error_log', $_fallback_php_contents);
641 641
             }
642
-            $_fallback_status = file_put_contents( $_fallback_php, $_fallback_php_contents );
642
+            $_fallback_status = file_put_contents($_fallback_php, $_fallback_php_contents);
643 643
         }
644 644
 
645 645
         return $_fallback_status;
@@ -656,8 +656,8 @@  discard block
 block discarded – undo
656 656
     public static function do_fallback() {
657 657
         static $_do_fallback = null;
658 658
 
659
-        if ( null === $_do_fallback ) {
660
-            $_do_fallback = (bool) apply_filters( 'autoptimize_filter_cache_do_fallback', autoptimizeOptionWrapper::get_option( 'autoptimize_cache_fallback', '1' ) );
659
+        if (null === $_do_fallback) {
660
+            $_do_fallback = (bool) apply_filters('autoptimize_filter_cache_do_fallback', autoptimizeOptionWrapper::get_option('autoptimize_cache_fallback', '1'));
661 661
         }
662 662
 
663 663
         return $_do_fallback;
@@ -669,31 +669,31 @@  discard block
 block discarded – undo
669 669
      * and 410'ing ("Gone") if fallback not available.
670 670
      */
671 671
     public static function wordpress_notfound_fallback() {
672
-        $original_request = strtok( $_SERVER['REQUEST_URI'], '?' );
673
-        if ( strpos( $original_request, wp_basename( WP_CONTENT_DIR ) . AUTOPTIMIZE_CACHE_CHILD_DIR ) !== false && is_404() ) {
672
+        $original_request = strtok($_SERVER['REQUEST_URI'], '?');
673
+        if (strpos($original_request, wp_basename(WP_CONTENT_DIR).AUTOPTIMIZE_CACHE_CHILD_DIR) !== false && is_404()) {
674 674
             // make sure this is not considered a 404.
675 675
             global $wp_query;
676 676
             $wp_query->is_404 = false;
677 677
 
678 678
             // set fallback path.
679
-            $js_or_css     = pathinfo( $original_request, PATHINFO_EXTENSION );
680
-            $fallback_path = AUTOPTIMIZE_CACHE_DIR . $js_or_css . '/autoptimize_fallback.' . $js_or_css;
679
+            $js_or_css     = pathinfo($original_request, PATHINFO_EXTENSION);
680
+            $fallback_path = AUTOPTIMIZE_CACHE_DIR.$js_or_css.'/autoptimize_fallback.'.$js_or_css;
681 681
 
682 682
             // prepare for Shakeeb's Unused CSS files to be 404-handled as well.
683
-            if ( strpos( $original_request, 'uucss/uucss-' ) !== false ) {
684
-                $original_request = preg_replace( '/uucss\/uucss-[a-z0-9]{32}-/', 'css/', $original_request  );
683
+            if (strpos($original_request, 'uucss/uucss-') !== false) {
684
+                $original_request = preg_replace('/uucss\/uucss-[a-z0-9]{32}-/', 'css/', $original_request);
685 685
             }
686 686
 
687 687
             // set fallback URL.
688
-            $fallback_target = preg_replace( '/(.*)_(?:[a-z0-9]{32})\.(js|css)$/', '${1}_fallback.${2}', $original_request );
688
+            $fallback_target = preg_replace('/(.*)_(?:[a-z0-9]{32})\.(js|css)$/', '${1}_fallback.${2}', $original_request);
689 689
 
690 690
             // redirect to fallback if possible.
691
-            if ( $original_request !== $fallback_target && file_exists( $fallback_path ) ) {
691
+            if ($original_request !== $fallback_target && file_exists($fallback_path)) {
692 692
                 // redirect to fallback.
693
-                wp_redirect( $fallback_target, 302 );
693
+                wp_redirect($fallback_target, 302);
694 694
             } else {
695 695
                 // return HTTP 410 (gone) reponse.
696
-                status_header( 410 );
696
+                status_header(410);
697 697
             }
698 698
         }
699 699
     }
@@ -705,13 +705,13 @@  discard block
 block discarded – undo
705 705
      * @return bool
706 706
      */
707 707
     public static function check_and_create_dirs() {
708
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
708
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
709 709
             // We didn't set a cache.
710 710
             return false;
711 711
         }
712 712
 
713
-        foreach ( array( '', 'js', 'css' ) as $dir ) {
714
-            if ( ! self::check_cache_dir( AUTOPTIMIZE_CACHE_DIR . $dir ) ) {
713
+        foreach (array('', 'js', 'css') as $dir) {
714
+            if (!self::check_cache_dir(AUTOPTIMIZE_CACHE_DIR.$dir)) {
715 715
                 return false;
716 716
             }
717 717
         }
@@ -726,25 +726,25 @@  discard block
 block discarded – undo
726 726
      *
727 727
      * @return bool
728 728
      */
729
-    protected static function check_cache_dir( $dir )
729
+    protected static function check_cache_dir($dir)
730 730
     {
731 731
         // Try creating the dir if it doesn't exist.
732
-        if ( ! file_exists( $dir ) ) {
733
-            @mkdir( $dir, 0775, true ); // @codingStandardsIgnoreLine
734
-            if ( ! file_exists( $dir ) ) {
732
+        if (!file_exists($dir)) {
733
+            @mkdir($dir, 0775, true); // @codingStandardsIgnoreLine
734
+            if (!file_exists($dir)) {
735 735
                 return false;
736 736
             }
737 737
         }
738 738
 
739 739
         // If we still cannot write, bail.
740
-        if ( ! is_writable( $dir ) ) {
740
+        if (!is_writable($dir)) {
741 741
             return false;
742 742
         }
743 743
 
744 744
         // Create an index.html in there to avoid prying eyes!
745
-        $idx_file = rtrim( $dir, '/\\' ) . '/index.html';
746
-        if ( ! is_file( $idx_file ) ) {
747
-            @file_put_contents( $idx_file, '<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>' ); // @codingStandardsIgnoreLine
745
+        $idx_file = rtrim($dir, '/\\').'/index.html';
746
+        if (!is_file($idx_file)) {
747
+            @file_put_contents($idx_file, '<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>'); // @codingStandardsIgnoreLine
748 748
         }
749 749
 
750 750
         return true;
@@ -758,54 +758,54 @@  discard block
 block discarded – undo
758 758
     // @codingStandardsIgnoreStart
759 759
     public static function flushPageCache()
760 760
     {
761
-        if ( function_exists( 'wp_cache_clear_cache' ) ) {
762
-            if ( is_multisite() ) {
761
+        if (function_exists('wp_cache_clear_cache')) {
762
+            if (is_multisite()) {
763 763
                 $blog_id = get_current_blog_id();
764
-                wp_cache_clear_cache( $blog_id );
764
+                wp_cache_clear_cache($blog_id);
765 765
             } else {
766 766
                 wp_cache_clear_cache();
767 767
             }
768
-        } elseif ( has_action( 'cachify_flush_cache' ) ) {
769
-            do_action( 'cachify_flush_cache' );
770
-        } elseif ( function_exists( 'w3tc_pgcache_flush' ) ) {
768
+        } elseif (has_action('cachify_flush_cache')) {
769
+            do_action('cachify_flush_cache');
770
+        } elseif (function_exists('w3tc_pgcache_flush')) {
771 771
             w3tc_pgcache_flush();
772
-        } elseif ( function_exists( 'wp_fast_cache_bulk_delete_all' ) ) {
772
+        } elseif (function_exists('wp_fast_cache_bulk_delete_all')) {
773 773
             wp_fast_cache_bulk_delete_all();
774
-        } elseif ( function_exists( 'rapidcache_clear_cache' ) ) {
774
+        } elseif (function_exists('rapidcache_clear_cache')) {
775 775
             rapidcache_clear_cache();
776
-        } elseif ( class_exists( 'Swift_Performance_Cache' ) ) {
776
+        } elseif (class_exists('Swift_Performance_Cache')) {
777 777
             Swift_Performance_Cache::clear_all_cache();
778
-        } elseif ( class_exists( 'WpFastestCache' ) ) {
778
+        } elseif (class_exists('WpFastestCache')) {
779 779
             $wpfc = new WpFastestCache();
780 780
             $wpfc->deleteCache();
781
-        } elseif ( class_exists( 'c_ws_plugin__qcache_purging_routines' ) ) {
781
+        } elseif (class_exists('c_ws_plugin__qcache_purging_routines')) {
782 782
             c_ws_plugin__qcache_purging_routines::purge_cache_dir(); // quick cache
783
-        } elseif ( class_exists( 'zencache' ) ) {
783
+        } elseif (class_exists('zencache')) {
784 784
             zencache::clear();
785
-        } elseif ( class_exists( 'comet_cache' ) ) {
785
+        } elseif (class_exists('comet_cache')) {
786 786
             comet_cache::clear();
787
-        } elseif ( class_exists( 'WpeCommon' ) ) {
787
+        } elseif (class_exists('WpeCommon')) {
788 788
             // WPEngine cache purge/flush methods to call by default
789 789
             $wpe_methods = array(
790 790
                 'purge_varnish_cache',
791 791
             );
792 792
 
793 793
             // More agressive clear/flush/purge behind a filter
794
-            if ( apply_filters( 'autoptimize_flush_wpengine_aggressive', false ) ) {
795
-                $wpe_methods = array_merge( $wpe_methods, array( 'purge_memcached', 'clear_maxcdn_cache' ) );
794
+            if (apply_filters('autoptimize_flush_wpengine_aggressive', false)) {
795
+                $wpe_methods = array_merge($wpe_methods, array('purge_memcached', 'clear_maxcdn_cache'));
796 796
             }
797 797
 
798 798
             // Filtering the entire list of WpeCommon methods to be called (for advanced usage + easier testing)
799
-            $wpe_methods = apply_filters( 'autoptimize_flush_wpengine_methods', $wpe_methods );
799
+            $wpe_methods = apply_filters('autoptimize_flush_wpengine_methods', $wpe_methods);
800 800
 
801
-            foreach ( $wpe_methods as $wpe_method ) {
802
-                if ( method_exists( 'WpeCommon', $wpe_method ) ) {
801
+            foreach ($wpe_methods as $wpe_method) {
802
+                if (method_exists('WpeCommon', $wpe_method)) {
803 803
                     WpeCommon::$wpe_method();
804 804
                 }
805 805
             }
806
-        } elseif ( function_exists( 'sg_cachepress_purge_cache' ) ) {
806
+        } elseif (function_exists('sg_cachepress_purge_cache')) {
807 807
             sg_cachepress_purge_cache();
808
-        } elseif ( array_key_exists( 'KINSTA_CACHE_ZONE', $_SERVER ) ) {
808
+        } elseif (array_key_exists('KINSTA_CACHE_ZONE', $_SERVER)) {
809 809
             $_kinsta_clear_cache_url = 'https://localhost/kinsta-clear-cache-all';
810 810
             $_kinsta_response        = wp_remote_get(
811 811
                 $_kinsta_clear_cache_url,
@@ -814,20 +814,20 @@  discard block
 block discarded – undo
814 814
                     'timeout' => 5,
815 815
                     )
816 816
             );
817
-        } elseif ( defined('NGINX_HELPER_BASENAME') ) {
818
-            do_action( 'rt_nginx_helper_purge_all' );
819
-        } elseif ( file_exists( WP_CONTENT_DIR . '/wp-cache-config.php' ) && function_exists( 'prune_super_cache' ) ) {
817
+        } elseif (defined('NGINX_HELPER_BASENAME')) {
818
+            do_action('rt_nginx_helper_purge_all');
819
+        } elseif (file_exists(WP_CONTENT_DIR.'/wp-cache-config.php') && function_exists('prune_super_cache')) {
820 820
             // fallback for WP-Super-Cache
821 821
             global $cache_path;
822
-            if ( is_multisite() ) {
822
+            if (is_multisite()) {
823 823
                 $blog_id = get_current_blog_id();
824
-                prune_super_cache( get_supercache_dir( $blog_id ), true );
825
-                prune_super_cache( $cache_path . 'blogs/', true );
824
+                prune_super_cache(get_supercache_dir($blog_id), true);
825
+                prune_super_cache($cache_path.'blogs/', true);
826 826
             } else {
827
-                prune_super_cache( $cache_path . 'supercache/', true );
828
-                prune_super_cache( $cache_path, true );
827
+                prune_super_cache($cache_path.'supercache/', true);
828
+                prune_super_cache($cache_path, true);
829 829
             }
830
-        } elseif ( class_exists( 'NginxCache' ) ) {
830
+        } elseif (class_exists('NginxCache')) {
831 831
             $nginx_cache = new NginxCache();
832 832
             $nginx_cache->purge_zone_once();
833 833
         }
Please login to merge, or discard this patch.
classes/autoptimizeBase.php 1 patch
Spacing   +151 added lines, -151 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Base class other (more-specific) classes inherit from.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -30,7 +30,7 @@  discard block
 block discarded – undo
30 30
      */
31 31
     public $cdn_url = '';
32 32
 
33
-    public function __construct( $content )
33
+    public function __construct($content)
34 34
     {
35 35
         $this->content = $content;
36 36
     }
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
      *
43 43
      * @return bool
44 44
      */
45
-    abstract public function read( $options );
45
+    abstract public function read($options);
46 46
 
47 47
     /**
48 48
      * Joins and optimizes collected things.
@@ -73,40 +73,40 @@  discard block
 block discarded – undo
73 73
      *
74 74
      * @return bool|string
75 75
      */
76
-    public function getpath( $url )
76
+    public function getpath($url)
77 77
     {
78
-        $url = apply_filters( 'autoptimize_filter_cssjs_alter_url', $url );
78
+        $url = apply_filters('autoptimize_filter_cssjs_alter_url', $url);
79 79
 
80
-        if ( false !== strpos( $url, '%' ) ) {
81
-            $url = urldecode( $url );
80
+        if (false !== strpos($url, '%')) {
81
+            $url = urldecode($url);
82 82
         }
83 83
 
84
-        $site_host    = parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST );
85
-        $content_host = parse_url( AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST );
84
+        $site_host    = parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST);
85
+        $content_host = parse_url(AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST);
86 86
 
87 87
         // Normalizing attempts...
88
-        $double_slash_position = strpos( $url, '//' );
89
-        if ( 0 === $double_slash_position ) {
90
-            if ( is_ssl() ) {
91
-                $url = 'https:' . $url;
88
+        $double_slash_position = strpos($url, '//');
89
+        if (0 === $double_slash_position) {
90
+            if (is_ssl()) {
91
+                $url = 'https:'.$url;
92 92
             } else {
93
-                $url = 'http:' . $url;
93
+                $url = 'http:'.$url;
94 94
             }
95
-        } elseif ( ( false === $double_slash_position ) && ( false === strpos( $url, $site_host ) ) ) {
96
-            if ( AUTOPTIMIZE_WP_SITE_URL === $site_host ) {
97
-                $url = AUTOPTIMIZE_WP_SITE_URL . $url;
95
+        } elseif ((false === $double_slash_position) && (false === strpos($url, $site_host))) {
96
+            if (AUTOPTIMIZE_WP_SITE_URL === $site_host) {
97
+                $url = AUTOPTIMIZE_WP_SITE_URL.$url;
98 98
             } else {
99
-                $url = AUTOPTIMIZE_WP_SITE_URL . autoptimizeUtils::path_canonicalize( $url );
99
+                $url = AUTOPTIMIZE_WP_SITE_URL.autoptimizeUtils::path_canonicalize($url);
100 100
             }
101 101
         }
102 102
 
103
-        if ( $site_host !== $content_host ) {
104
-            $url = str_replace( AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL . AUTOPTIMIZE_WP_CONTENT_NAME, $url );
103
+        if ($site_host !== $content_host) {
104
+            $url = str_replace(AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL.AUTOPTIMIZE_WP_CONTENT_NAME, $url);
105 105
         }
106 106
 
107 107
         // First check; hostname wp site should be hostname of url!
108
-        $url_host = @parse_url( $url, PHP_URL_HOST ); // @codingStandardsIgnoreLine
109
-        if ( $url_host !== $site_host ) {
108
+        $url_host = @parse_url($url, PHP_URL_HOST); // @codingStandardsIgnoreLine
109
+        if ($url_host !== $site_host) {
110 110
             /**
111 111
              * First try to get all domains from WPML (if available)
112 112
              * then explicitely declare $this->cdn_url as OK as well
@@ -115,20 +115,20 @@  discard block
 block discarded – undo
115 115
              */
116 116
             $multidomains = array();
117 117
 
118
-            $multidomains_wpml = apply_filters( 'wpml_setting', array(), 'language_domains' );
119
-            if ( ! empty( $multidomains_wpml ) ) {
120
-                $multidomains = array_map( array( $this, 'get_url_hostname' ), $multidomains_wpml );
118
+            $multidomains_wpml = apply_filters('wpml_setting', array(), 'language_domains');
119
+            if (!empty($multidomains_wpml)) {
120
+                $multidomains = array_map(array($this, 'get_url_hostname'), $multidomains_wpml);
121 121
             }
122 122
 
123
-            if ( ! empty( $this->cdn_url ) ) {
124
-                $multidomains[] = parse_url( $this->cdn_url, PHP_URL_HOST );
123
+            if (!empty($this->cdn_url)) {
124
+                $multidomains[] = parse_url($this->cdn_url, PHP_URL_HOST);
125 125
             }
126 126
 
127
-            $multidomains = apply_filters( 'autoptimize_filter_cssjs_multidomain', $multidomains );
127
+            $multidomains = apply_filters('autoptimize_filter_cssjs_multidomain', $multidomains);
128 128
 
129
-            if ( ! empty( $multidomains ) ) {
130
-                if ( in_array( $url_host, $multidomains ) ) {
131
-                    $url = str_replace( $url_host, $site_host, $url );
129
+            if (!empty($multidomains)) {
130
+                if (in_array($url_host, $multidomains)) {
131
+                    $url = str_replace($url_host, $site_host, $url);
132 132
                 } else {
133 133
                     return false;
134 134
                 }
@@ -138,36 +138,36 @@  discard block
 block discarded – undo
138 138
         }
139 139
 
140 140
         // Try to remove "wp root url" from url while not minding http<>https.
141
-        $tmp_ao_root = preg_replace( '/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL );
141
+        $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL);
142 142
 
143
-        if ( $site_host !== $content_host ) {
143
+        if ($site_host !== $content_host) {
144 144
             // As we replaced the content-domain with the site-domain, we should match against that.
145
-            $tmp_ao_root = preg_replace( '/https?:/', '', AUTOPTIMIZE_WP_SITE_URL );
145
+            $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_SITE_URL);
146 146
         }
147 147
         
148
-        if ( is_multisite() && ! is_main_site() && ! empty( $this->cdn_url ) ) {
148
+        if (is_multisite() && !is_main_site() && !empty($this->cdn_url)) {
149 149
             // multisite child sites with CDN need the network_site_url as tmp_ao_root but only if directory-based multisite.
150 150
             $_network_site_url = network_site_url();
151
-            if ( strpos( AUTOPTIMIZE_WP_SITE_URL, $_network_site_url ) !== false ) {
152
-                $tmp_ao_root = preg_replace( '/https?:/', '', $_network_site_url );
151
+            if (strpos(AUTOPTIMIZE_WP_SITE_URL, $_network_site_url) !== false) {
152
+                $tmp_ao_root = preg_replace('/https?:/', '', $_network_site_url);
153 153
             }
154 154
         }
155 155
 
156
-        $tmp_url = preg_replace( '/https?:/', '', $url );
157
-        $path    = str_replace( $tmp_ao_root, '', $tmp_url );
156
+        $tmp_url = preg_replace('/https?:/', '', $url);
157
+        $path    = str_replace($tmp_ao_root, '', $tmp_url);
158 158
 
159 159
         // If path starts with :// or //, this is not a URL in the WP context and
160 160
         // we have to assume we can't aggregate.
161
-        if ( preg_match( '#^:?//#', $path ) ) {
161
+        if (preg_match('#^:?//#', $path)) {
162 162
             // External script/css (adsense, etc).
163 163
             return false;
164 164
         }
165 165
 
166 166
         // Prepend with WP_ROOT_DIR to have full path to file.
167
-        $path = str_replace( '//', '/', trailingslashit( WP_ROOT_DIR ) . $path );
167
+        $path = str_replace('//', '/', trailingslashit(WP_ROOT_DIR).$path);
168 168
 
169 169
         // Final check: does file exist and is it readable?
170
-        if ( file_exists( $path ) && is_file( $path ) && is_readable( $path ) ) {
170
+        if (file_exists($path) && is_file($path) && is_readable($path)) {
171 171
             return $path;
172 172
         } else {
173 173
             return false;
@@ -184,18 +184,18 @@  discard block
 block discarded – undo
184 184
      *
185 185
      * @return string
186 186
      */
187
-    protected function get_url_hostname( $url )
187
+    protected function get_url_hostname($url)
188 188
     {
189 189
         // Checking that the url starts with something vaguely resembling a protocol.
190
-        if ( ( 0 !== strpos( $url, 'http' ) ) && ( 0 !== strpos( $url, '//' ) ) ) {
191
-            $url = 'http://' . $url;
190
+        if ((0 !== strpos($url, 'http')) && (0 !== strpos($url, '//'))) {
191
+            $url = 'http://'.$url;
192 192
         }
193 193
 
194 194
         // Grab the hostname.
195
-        $hostname = parse_url( $url, PHP_URL_HOST );
195
+        $hostname = parse_url($url, PHP_URL_HOST);
196 196
 
197 197
         // Fallback when parse_url() fails.
198
-        if ( empty( $hostname ) ) {
198
+        if (empty($hostname)) {
199 199
             $hostname = $url;
200 200
         }
201 201
 
@@ -209,7 +209,7 @@  discard block
 block discarded – undo
209 209
      *
210 210
      * @return string
211 211
      */
212
-    protected function hide_noptimize( $markup )
212
+    protected function hide_noptimize($markup)
213 213
     {
214 214
         return $this->replace_contents_with_marker_if_exists(
215 215
             'NOPTIMIZE',
@@ -226,9 +226,9 @@  discard block
 block discarded – undo
226 226
      *
227 227
      * @return string
228 228
      */
229
-    protected function restore_noptimize( $markup )
229
+    protected function restore_noptimize($markup)
230 230
     {
231
-        return $this->restore_marked_content( 'NOPTIMIZE', $markup );
231
+        return $this->restore_marked_content('NOPTIMIZE', $markup);
232 232
     }
233 233
 
234 234
     /**
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
      *
239 239
      * @return string
240 240
      */
241
-    protected function hide_iehacks( $markup )
241
+    protected function hide_iehacks($markup)
242 242
     {
243 243
         return $this->replace_contents_with_marker_if_exists(
244 244
             'IEHACK', // Marker name...
@@ -255,9 +255,9 @@  discard block
 block discarded – undo
255 255
      *
256 256
      * @return string
257 257
      */
258
-    protected function restore_iehacks( $markup )
258
+    protected function restore_iehacks($markup)
259 259
     {
260
-        return $this->restore_marked_content( 'IEHACK', $markup );
260
+        return $this->restore_marked_content('IEHACK', $markup);
261 261
     }
262 262
 
263 263
     /**
@@ -269,7 +269,7 @@  discard block
 block discarded – undo
269 269
      *
270 270
      * @return string
271 271
      */
272
-    protected function hide_comments( $markup )
272
+    protected function hide_comments($markup)
273 273
     {
274 274
         return $this->replace_contents_with_marker_if_exists(
275 275
             'COMMENTS',
@@ -287,9 +287,9 @@  discard block
 block discarded – undo
287 287
      *
288 288
      * @return string
289 289
      */
290
-    protected function restore_comments( $markup )
290
+    protected function restore_comments($markup)
291 291
     {
292
-        return $this->restore_marked_content( 'COMMENTS', $markup );
292
+        return $this->restore_marked_content('COMMENTS', $markup);
293 293
     }
294 294
 
295 295
     /**
@@ -300,44 +300,44 @@  discard block
 block discarded – undo
300 300
      *
301 301
      * @return string
302 302
      */
303
-    public function url_replace_cdn( $url )
303
+    public function url_replace_cdn($url)
304 304
     {
305 305
         // For 2.3 back-compat in which cdn-ing appeared to be automatically
306 306
         // including WP subfolder/subdirectory into account as part of cdn-ing,
307 307
         // even though it might've caused serious troubles in certain edge-cases.
308
-        $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed( $this->cdn_url );
308
+        $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed($this->cdn_url);
309 309
 
310 310
         // Allows API/filter to further tweak the cdn url...
311
-        $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', $cdn_url );
312
-        if ( ! empty( $cdn_url ) ) {
313
-            $this->debug_log( 'before=' . $url );
311
+        $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', $cdn_url);
312
+        if (!empty($cdn_url)) {
313
+            $this->debug_log('before='.$url);
314 314
 
315 315
             // Simple str_replace-based approach fails when $url is protocol-or-host-relative.
316
-            $is_protocol_relative = autoptimizeUtils::is_protocol_relative( $url );
317
-            $is_host_relative     = ( ! $is_protocol_relative && ( '/' === $url[0] ) );
318
-            $cdn_url              = rtrim( $cdn_url, '/' );
316
+            $is_protocol_relative = autoptimizeUtils::is_protocol_relative($url);
317
+            $is_host_relative     = (!$is_protocol_relative && ('/' === $url[0]));
318
+            $cdn_url              = rtrim($cdn_url, '/');
319 319
 
320
-            if ( $is_host_relative ) {
320
+            if ($is_host_relative) {
321 321
                 // Prepending host-relative urls with the cdn url.
322
-                $url = $cdn_url . $url;
322
+                $url = $cdn_url.$url;
323 323
             } else {
324 324
                 // Either a protocol-relative or "regular" url, replacing it either way.
325
-                if ( $is_protocol_relative ) {
325
+                if ($is_protocol_relative) {
326 326
                     // Massage $site_url so that simple str_replace() still "works" by
327 327
                     // searching for the protocol-relative version of AUTOPTIMIZE_WP_SITE_URL.
328
-                    $site_url = str_replace( array( 'http:', 'https:' ), '', AUTOPTIMIZE_WP_SITE_URL );
328
+                    $site_url = str_replace(array('http:', 'https:'), '', AUTOPTIMIZE_WP_SITE_URL);
329 329
                 } else {
330 330
                     $site_url = AUTOPTIMIZE_WP_SITE_URL;
331 331
                 }
332
-                $this->debug_log( '`' . $site_url . '` -> `' . $cdn_url . '` in `' . $url . '`' );
333
-                $url = str_replace( $site_url, $cdn_url, $url );
332
+                $this->debug_log('`'.$site_url.'` -> `'.$cdn_url.'` in `'.$url.'`');
333
+                $url = str_replace($site_url, $cdn_url, $url);
334 334
             }
335 335
 
336
-            $this->debug_log( 'after=' . $url );
336
+            $this->debug_log('after='.$url);
337 337
         }
338 338
 
339 339
         // Allow API filter to take further care of CDN replacement.
340
-        $url = apply_filters( 'autoptimize_filter_base_replace_cdn', $url );
340
+        $url = apply_filters('autoptimize_filter_base_replace_cdn', $url);
341 341
 
342 342
         return $url;
343 343
     }
@@ -355,18 +355,18 @@  discard block
 block discarded – undo
355 355
      *
356 356
      * @return void
357 357
      */
358
-    protected function inject_in_html( $payload, $where )
358
+    protected function inject_in_html($payload, $where)
359 359
     {
360 360
         $warned   = false;
361
-        $position = autoptimizeUtils::strpos( $this->content, $where[0] );
362
-        if ( false !== $position ) {
361
+        $position = autoptimizeUtils::strpos($this->content, $where[0]);
362
+        if (false !== $position) {
363 363
             // Found the tag, setup content/injection as specified.
364
-            if ( 'after' === $where[1] ) {
365
-                $content = $where[0] . $payload;
366
-            } elseif ( 'replace' === $where[1] ) {
364
+            if ('after' === $where[1]) {
365
+                $content = $where[0].$payload;
366
+            } elseif ('replace' === $where[1]) {
367 367
                 $content = $payload;
368 368
             } else {
369
-                $content = $payload . $where[0];
369
+                $content = $payload.$where[0];
370 370
             }
371 371
             // Place where specified.
372 372
             $this->content = autoptimizeUtils::substr_replace(
@@ -375,14 +375,14 @@  discard block
 block discarded – undo
375 375
                 $position,
376 376
                 // Using plain strlen() should be safe here for now, since
377 377
                 // we're not searching for multibyte chars here still...
378
-                strlen( $where[0] )
378
+                strlen($where[0])
379 379
             );
380 380
         } else {
381 381
             // Couldn't find what was specified, just append and add a warning.
382 382
             $this->content .= $payload;
383
-            if ( ! $warned ) {
384
-                $tag_display    = str_replace( array( '<', '>' ), '', $where[0] );
385
-                $this->content .= '<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `' . $tag_display . '` missing --><!--/noptimize-->';
383
+            if (!$warned) {
384
+                $tag_display    = str_replace(array('<', '>'), '', $where[0]);
385
+                $this->content .= '<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `'.$tag_display.'` missing --><!--/noptimize-->';
386 386
                 $warned         = true;
387 387
             }
388 388
         }
@@ -396,10 +396,10 @@  discard block
 block discarded – undo
396 396
      *
397 397
      * @return bool
398 398
      */
399
-    protected function isremovable( $tag, $removables )
399
+    protected function isremovable($tag, $removables)
400 400
     {
401
-        foreach ( $removables as $match ) {
402
-            if ( false !== strpos( $tag, $match ) ) {
401
+        foreach ($removables as $match) {
402
+            if (false !== strpos($tag, $match)) {
403 403
                 return true;
404 404
             }
405 405
         }
@@ -414,10 +414,10 @@  discard block
 block discarded – undo
414 414
      *
415 415
      * @return string
416 416
      */
417
-    public function inject_minified_callback( $matches )
417
+    public function inject_minified_callback($matches)
418 418
     {
419 419
         static $conf = null;
420
-        if ( null === $conf ) {
420
+        if (null === $conf) {
421 421
             $conf = autoptimizeConfig::instance();
422 422
         }
423 423
 
@@ -432,62 +432,62 @@  discard block
 block discarded – undo
432 432
         $filehash = null;
433 433
 
434 434
         // Grab the parts we need.
435
-        $parts = explode( '|', $matches[1] );
436
-        if ( ! empty( $parts ) ) {
437
-            $filepath = isset( $parts[0] ) ? base64_decode( $parts[0] ) : null;
438
-            $filehash = isset( $parts[1] ) ? $parts[1] : null;
435
+        $parts = explode('|', $matches[1]);
436
+        if (!empty($parts)) {
437
+            $filepath = isset($parts[0]) ? base64_decode($parts[0]) : null;
438
+            $filehash = isset($parts[1]) ? $parts[1] : null;
439 439
         }
440 440
 
441 441
         // Bail early if something's not right...
442
-        if ( ! $filepath || ! $filehash ) {
442
+        if (!$filepath || !$filehash) {
443 443
             return "\n";
444 444
         }
445 445
 
446
-        $filecontent = file_get_contents( $filepath );
446
+        $filecontent = file_get_contents($filepath);
447 447
 
448 448
         // Some things are differently handled for css/js...
449
-        $is_js_file = ( '.js' === substr( $filepath, -3, 3 ) );
449
+        $is_js_file = ('.js' === substr($filepath, -3, 3));
450 450
 
451 451
         $is_css_file = false;
452
-        if ( ! $is_js_file ) {
453
-            $is_css_file = ( '.css' === substr( $filepath, -4, 4 ) );
452
+        if (!$is_js_file) {
453
+            $is_css_file = ('.css' === substr($filepath, -4, 4));
454 454
         }
455 455
 
456 456
         // BOMs being nuked here unconditionally (regardless of where they are)!
457
-        $filecontent = preg_replace( "#\x{EF}\x{BB}\x{BF}#", '', $filecontent );
457
+        $filecontent = preg_replace("#\x{EF}\x{BB}\x{BF}#", '', $filecontent);
458 458
 
459 459
         // Remove comments and blank lines.
460
-        if ( $is_js_file ) {
461
-            $filecontent = preg_replace( '#^\s*\/\/.*$#Um', '', $filecontent );
460
+        if ($is_js_file) {
461
+            $filecontent = preg_replace('#^\s*\/\/.*$#Um', '', $filecontent);
462 462
         }
463 463
 
464 464
         // Nuke un-important comments.
465
-        $filecontent = preg_replace( '#^\s*\/\*[^!].*\*\/\s?#Um', '', $filecontent );
465
+        $filecontent = preg_replace('#^\s*\/\*[^!].*\*\/\s?#Um', '', $filecontent);
466 466
 
467 467
         // Normalize newlines.
468
-        $filecontent = preg_replace( '#(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+#', "\n", $filecontent );
468
+        $filecontent = preg_replace('#(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+#', "\n", $filecontent);
469 469
 
470 470
         // JS specifics.
471
-        if ( $is_js_file ) {
471
+        if ($is_js_file) {
472 472
             // Append a semicolon at the end of js files if it's missing.
473
-            $last_char = substr( $filecontent, -1, 1 );
474
-            if ( ';' !== $last_char && '}' !== $last_char ) {
473
+            $last_char = substr($filecontent, -1, 1);
474
+            if (';' !== $last_char && '}' !== $last_char) {
475 475
                 $filecontent .= ';';
476 476
             }
477 477
             // Check if try/catch should be used.
478
-            $opt_js_try_catch = $conf->get( 'autoptimize_js_trycatch' );
479
-            if ( 'on' === $opt_js_try_catch ) {
478
+            $opt_js_try_catch = $conf->get('autoptimize_js_trycatch');
479
+            if ('on' === $opt_js_try_catch) {
480 480
                 // It should, wrap in try/catch.
481
-                $filecontent = 'try{' . $filecontent . '}catch(e){}';
481
+                $filecontent = 'try{'.$filecontent.'}catch(e){}';
482 482
             }
483
-        } elseif ( $is_css_file ) {
484
-            $filecontent = autoptimizeStyles::fixurls( $filepath, $filecontent );
483
+        } elseif ($is_css_file) {
484
+            $filecontent = autoptimizeStyles::fixurls($filepath, $filecontent);
485 485
         } else {
486 486
             $filecontent = '';
487 487
         }
488 488
 
489 489
         // Return modified (or empty!) code/content.
490
-        return "\n" . $filecontent;
490
+        return "\n".$filecontent;
491 491
     }
492 492
 
493 493
     /**
@@ -497,13 +497,13 @@  discard block
 block discarded – undo
497 497
      *
498 498
      * @return string
499 499
      */
500
-    protected function inject_minified( $in )
500
+    protected function inject_minified($in)
501 501
     {
502 502
         $out = $in;
503
-        if ( false !== strpos( $in, '%%INJECTLATER%%' ) ) {
503
+        if (false !== strpos($in, '%%INJECTLATER%%')) {
504 504
             $out = preg_replace_callback(
505
-                '#\/\*\!%%INJECTLATER' . AUTOPTIMIZE_HASH . '%%(.*?)%%INJECTLATER%%\*\/#is',
506
-                array( $this, 'inject_minified_callback' ),
505
+                '#\/\*\!%%INJECTLATER'.AUTOPTIMIZE_HASH.'%%(.*?)%%INJECTLATER%%\*\/#is',
506
+                array($this, 'inject_minified_callback'),
507 507
                 $in
508 508
             );
509 509
         }
@@ -523,9 +523,9 @@  discard block
 block discarded – undo
523 523
      *
524 524
      * @return string
525 525
      */
526
-    public static function build_injectlater_marker( $filepath, $hash )
526
+    public static function build_injectlater_marker($filepath, $hash)
527 527
     {
528
-        $contents = '/*!' . self::build_marker( 'INJECTLATER', $filepath, $hash ) . '*/';
528
+        $contents = '/*!'.self::build_marker('INJECTLATER', $filepath, $hash).'*/';
529 529
 
530 530
         return $contents;
531 531
     }
@@ -543,18 +543,18 @@  discard block
 block discarded – undo
543 543
      *
544 544
      * @return string
545 545
      */
546
-    public static function build_marker( $name, $data, $hash = null )
546
+    public static function build_marker($name, $data, $hash = null)
547 547
     {
548 548
         // Start the marker, add the data.
549
-        $marker = '%%' . $name . AUTOPTIMIZE_HASH . '%%' . base64_encode( $data );
549
+        $marker = '%%'.$name.AUTOPTIMIZE_HASH.'%%'.base64_encode($data);
550 550
 
551 551
         // Add the hash if provided.
552
-        if ( null !== $hash ) {
553
-            $marker .= '|' . $hash;
552
+        if (null !== $hash) {
553
+            $marker .= '|'.$hash;
554 554
         }
555 555
 
556 556
         // Close the marker.
557
-        $marker .= '%%' . $name . '%%';
557
+        $marker .= '%%'.$name.'%%';
558 558
 
559 559
         return $marker;
560 560
     }
@@ -574,22 +574,22 @@  discard block
 block discarded – undo
574 574
      *
575 575
      * @return string
576 576
      */
577
-    public static function replace_contents_with_marker_if_exists( $marker, $search, $re_replace_pattern, $content )
577
+    public static function replace_contents_with_marker_if_exists($marker, $search, $re_replace_pattern, $content)
578 578
     {
579 579
         $found = false;
580 580
 
581
-        $is_regex = autoptimizeUtils::str_is_valid_regex( $search );
582
-        if ( $is_regex ) {
583
-            $found = preg_match( $search, $content );
581
+        $is_regex = autoptimizeUtils::str_is_valid_regex($search);
582
+        if ($is_regex) {
583
+            $found = preg_match($search, $content);
584 584
         } else {
585
-            $found = ( false !== strpos( $content, $search ) );
585
+            $found = (false !== strpos($content, $search));
586 586
         }
587 587
 
588
-        if ( $found ) {
588
+        if ($found) {
589 589
             $content = preg_replace_callback(
590 590
                 $re_replace_pattern,
591
-                function( $matches ) use ( $marker ) {
592
-                    return autoptimizeBase::build_marker( $marker, $matches[0] );
591
+                function($matches) use ($marker) {
592
+                    return autoptimizeBase::build_marker($marker, $matches[0]);
593 593
                 },
594 594
                 $content
595 595
             );
@@ -606,13 +606,13 @@  discard block
 block discarded – undo
606 606
      *
607 607
      * @return string
608 608
      */
609
-    public static function restore_marked_content( $marker, $content )
609
+    public static function restore_marked_content($marker, $content)
610 610
     {
611
-        if ( false !== strpos( $content, $marker ) ) {
611
+        if (false !== strpos($content, $marker)) {
612 612
             $content = preg_replace_callback(
613
-                '#%%' . $marker . AUTOPTIMIZE_HASH . '%%(.*?)%%' . $marker . '%%#is',
614
-                function ( $matches ) {
615
-                    return base64_decode( $matches[1] );
613
+                '#%%'.$marker.AUTOPTIMIZE_HASH.'%%(.*?)%%'.$marker.'%%#is',
614
+                function($matches) {
615
+                    return base64_decode($matches[1]);
616 616
                 },
617 617
                 $content
618 618
             );
@@ -628,17 +628,17 @@  discard block
 block discarded – undo
628 628
      *
629 629
      * @return void
630 630
      */
631
-    protected function debug_log( $data )
631
+    protected function debug_log($data)
632 632
     {
633
-        if ( ! isset( $this->debug_log ) || ! $this->debug_log ) {
633
+        if (!isset($this->debug_log) || !$this->debug_log) {
634 634
             return;
635 635
         }
636 636
 
637
-        if ( ! is_string( $data ) && ! is_resource( $data ) ) {
638
-            $data = var_export( $data, true );
637
+        if (!is_string($data) && !is_resource($data)) {
638
+            $data = var_export($data, true);
639 639
         }
640 640
 
641
-        error_log( $data );
641
+        error_log($data);
642 642
     }
643 643
 
644 644
     /**
@@ -648,12 +648,12 @@  discard block
 block discarded – undo
648 648
      *
649 649
      * @return bool|string to be minified code or false.
650 650
      */
651
-    protected function prepare_minify_single( $filepath )
651
+    protected function prepare_minify_single($filepath)
652 652
     {
653 653
         // Decide what we're dealing with, return false if we don't know.
654
-        if ( autoptimizeUtils::str_ends_in( $filepath, '.js' ) ) {
654
+        if (autoptimizeUtils::str_ends_in($filepath, '.js')) {
655 655
             $type = 'js';
656
-        } elseif ( autoptimizeUtils::str_ends_in( $filepath, '.css' ) ) {
656
+        } elseif (autoptimizeUtils::str_ends_in($filepath, '.css')) {
657 657
             $type = 'css';
658 658
         } else {
659 659
             return false;
@@ -662,18 +662,18 @@  discard block
 block discarded – undo
662 662
         // Bail if it looks like its already minifed (by having -min or .min
663 663
         // in filename) or if it looks like WP jquery.js (which is minified).
664 664
         $minified_variants = array(
665
-            '-min.' . $type,
666
-            '.min.' . $type,
665
+            '-min.'.$type,
666
+            '.min.'.$type,
667 667
             'js/jquery/jquery.js',
668 668
         );
669
-        foreach ( $minified_variants as $ending ) {
670
-            if ( autoptimizeUtils::str_ends_in( $filepath, $ending ) ) {
669
+        foreach ($minified_variants as $ending) {
670
+            if (autoptimizeUtils::str_ends_in($filepath, $ending)) {
671 671
                 return false;
672 672
             }
673 673
         }
674 674
 
675 675
         // Get file contents, bail if empty.
676
-        $contents = file_get_contents( $filepath );
676
+        $contents = file_get_contents($filepath);
677 677
 
678 678
         return $contents;
679 679
     }
@@ -686,12 +686,12 @@  discard block
 block discarded – undo
686 686
      *
687 687
      * @return string
688 688
      */
689
-    protected function build_minify_single_url( autoptimizeCache $cache )
689
+    protected function build_minify_single_url(autoptimizeCache $cache)
690 690
     {
691
-        $url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
691
+        $url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
692 692
 
693 693
         // CDN-replace the resulting URL if needed...
694
-        $url = $this->url_replace_cdn( $url );
694
+        $url = $this->url_replace_cdn($url);
695 695
 
696 696
         return $url;
697 697
     }
Please login to merge, or discard this patch.