Completed
Push — master ( 888448...89a848 )
by frank
07:21 queued 03:15
created
classes/autoptimizeUtils.php 1 patch
Spacing   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * General helpers.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -16,15 +16,15 @@  discard block
 block discarded – undo
16 16
      *
17 17
      * @return bool
18 18
      */
19
-    public static function mbstring_available( $override = null )
19
+    public static function mbstring_available($override = null)
20 20
     {
21 21
         static $available = null;
22 22
 
23
-        if ( null === $available ) {
24
-            $available = \extension_loaded( 'mbstring' );
23
+        if (null === $available) {
24
+            $available = \extension_loaded('mbstring');
25 25
         }
26 26
 
27
-        if ( null !== $override ) {
27
+        if (null !== $override) {
28 28
             $available = $override;
29 29
         }
30 30
 
@@ -42,12 +42,12 @@  discard block
 block discarded – undo
42 42
      *
43 43
      * @return int|false
44 44
      */
45
-    public static function strpos( $haystack, $needle, $offset = 0, $encoding = null )
45
+    public static function strpos($haystack, $needle, $offset = 0, $encoding = null)
46 46
     {
47
-        if ( self::mbstring_available() ) {
48
-            return ( null === $encoding ) ? \mb_strpos( $haystack, $needle, $offset ) : \mb_strlen( $haystack, $needle, $offset, $encoding );
47
+        if (self::mbstring_available()) {
48
+            return (null === $encoding) ? \mb_strpos($haystack, $needle, $offset) : \mb_strlen($haystack, $needle, $offset, $encoding);
49 49
         } else {
50
-            return \strpos( $haystack, $needle, $offset );
50
+            return \strpos($haystack, $needle, $offset);
51 51
         }
52 52
     }
53 53
 
@@ -62,12 +62,12 @@  discard block
 block discarded – undo
62 62
      * @return int Number of charcters or bytes in given $string
63 63
      *             (characters if/when supported, bytes otherwise).
64 64
      */
65
-    public static function strlen( $string, $encoding = null )
65
+    public static function strlen($string, $encoding = null)
66 66
     {
67
-        if ( self::mbstring_available() ) {
68
-            return ( null === $encoding ) ? \mb_strlen( $string ) : \mb_strlen( $string, $encoding );
67
+        if (self::mbstring_available()) {
68
+            return (null === $encoding) ? \mb_strlen($string) : \mb_strlen($string, $encoding);
69 69
         } else {
70
-            return \strlen( $string );
70
+            return \strlen($string);
71 71
         }
72 72
     }
73 73
 
@@ -85,44 +85,44 @@  discard block
 block discarded – undo
85 85
      *
86 86
      * @return string
87 87
      */
88
-    public static function substr_replace( $string, $replacement, $start, $length = null, $encoding = null )
88
+    public static function substr_replace($string, $replacement, $start, $length = null, $encoding = null)
89 89
     {
90
-        if ( self::mbstring_available() ) {
91
-            $strlen = self::strlen( $string, $encoding );
90
+        if (self::mbstring_available()) {
91
+            $strlen = self::strlen($string, $encoding);
92 92
 
93
-            if ( $start < 0 ) {
93
+            if ($start < 0) {
94 94
                 if ( -$start < $strlen ) {
95 95
                     $start = $strlen + $start;
96 96
                 } else {
97 97
                     $start = 0;
98 98
                 }
99
-            } elseif ( $start > $strlen ) {
99
+            } elseif ($start > $strlen) {
100 100
                 $start = $strlen;
101 101
             }
102 102
 
103
-            if ( null === $length || '' === $length ) {
103
+            if (null === $length || '' === $length) {
104 104
                 $start2 = $strlen;
105
-            } elseif ( $length < 0 ) {
105
+            } elseif ($length < 0) {
106 106
                 $start2 = $strlen + $length;
107
-                if ( $start2 < $start ) {
107
+                if ($start2 < $start) {
108 108
                     $start2 = $start;
109 109
                 }
110 110
             } else {
111 111
                 $start2 = $start + $length;
112 112
             }
113 113
 
114
-            if ( null === $encoding ) {
115
-                $leader  = $start ? \mb_substr( $string, 0, $start ) : '';
116
-                $trailer = ( $start2 < $strlen ) ? \mb_substr( $string, $start2, null ) : '';
114
+            if (null === $encoding) {
115
+                $leader  = $start ? \mb_substr($string, 0, $start) : '';
116
+                $trailer = ($start2 < $strlen) ? \mb_substr($string, $start2, null) : '';
117 117
             } else {
118
-                $leader  = $start ? \mb_substr( $string, 0, $start, $encoding ) : '';
119
-                $trailer = ( $start2 < $strlen ) ? \mb_substr( $string, $start2, null, $encoding ) : '';
118
+                $leader  = $start ? \mb_substr($string, 0, $start, $encoding) : '';
119
+                $trailer = ($start2 < $strlen) ? \mb_substr($string, $start2, null, $encoding) : '';
120 120
             }
121 121
 
122 122
             return "{$leader}{$replacement}{$trailer}";
123 123
         }
124 124
 
125
-        return ( null === $length ) ? \substr_replace( $string, $replacement, $start ) : \substr_replace( $string, $replacement, $start, $length );
125
+        return (null === $length) ? \substr_replace($string, $replacement, $start) : \substr_replace($string, $replacement, $start, $length);
126 126
     }
127 127
 
128 128
     /**
@@ -132,16 +132,16 @@  discard block
 block discarded – undo
132 132
      *
133 133
      * @return bool
134 134
      */
135
-    public static function siteurl_not_root( $override = null )
135
+    public static function siteurl_not_root($override = null)
136 136
     {
137 137
         static $subdir = null;
138 138
 
139
-        if ( null === $subdir ) {
139
+        if (null === $subdir) {
140 140
             $parts  = self::get_ao_wp_site_url_parts();
141
-            $subdir = ( isset( $parts['path'] ) && ( '/' !== $parts['path'] ) );
141
+            $subdir = (isset($parts['path']) && ('/' !== $parts['path']));
142 142
         }
143 143
 
144
-        if ( null !== $override ) {
144
+        if (null !== $override) {
145 145
             $subdir = $override;
146 146
         }
147 147
 
@@ -158,8 +158,8 @@  discard block
 block discarded – undo
158 158
     {
159 159
         static $parts = array();
160 160
 
161
-        if ( empty( $parts ) ) {
162
-            $parts = \parse_url( AUTOPTIMIZE_WP_SITE_URL );
161
+        if (empty($parts)) {
162
+            $parts = \parse_url(AUTOPTIMIZE_WP_SITE_URL);
163 163
         }
164 164
 
165 165
         return $parts;
@@ -174,33 +174,33 @@  discard block
 block discarded – undo
174 174
      *
175 175
      * @return string
176 176
      */
177
-    public static function tweak_cdn_url_if_needed( $cdn_url, $force_cache_miss = false )
177
+    public static function tweak_cdn_url_if_needed($cdn_url, $force_cache_miss = false)
178 178
     {
179 179
         static $results = array();
180 180
 
181
-        if ( ! isset( $results[ $cdn_url ] ) || $force_cache_miss ) {
181
+        if (!isset($results[$cdn_url]) || $force_cache_miss) {
182 182
 
183 183
             // In order to return unmodified input when there's no need to tweak.
184
-            $results[ $cdn_url ] = $cdn_url;
184
+            $results[$cdn_url] = $cdn_url;
185 185
 
186 186
             // Behind a default true filter for backcompat, and only for sites
187 187
             // in a subfolder/subdirectory, but still easily turned off if
188 188
             // not wanted/needed...
189
-            if ( autoptimizeUtils::siteurl_not_root() ) {
190
-                $check = apply_filters( 'autoptimize_filter_cdn_magic_path_check', true, $cdn_url );
191
-                if ( $check ) {
189
+            if (autoptimizeUtils::siteurl_not_root()) {
190
+                $check = apply_filters('autoptimize_filter_cdn_magic_path_check', true, $cdn_url);
191
+                if ($check) {
192 192
                     $site_url_parts = autoptimizeUtils::get_ao_wp_site_url_parts();
193
-                    $cdn_url_parts  = \parse_url( $cdn_url );
194
-                    $schemeless     = self::is_protocol_relative( $cdn_url );
195
-                    $cdn_url_parts  = self::maybe_replace_cdn_path( $site_url_parts, $cdn_url_parts );
196
-                    if ( false !== $cdn_url_parts ) {
197
-                        $results[ $cdn_url ] = self::assemble_parsed_url( $cdn_url_parts, $schemeless );
193
+                    $cdn_url_parts  = \parse_url($cdn_url);
194
+                    $schemeless     = self::is_protocol_relative($cdn_url);
195
+                    $cdn_url_parts  = self::maybe_replace_cdn_path($site_url_parts, $cdn_url_parts);
196
+                    if (false !== $cdn_url_parts) {
197
+                        $results[$cdn_url] = self::assemble_parsed_url($cdn_url_parts, $schemeless);
198 198
                     }
199 199
                 }
200 200
             }
201 201
         }
202 202
 
203
-        return $results[ $cdn_url ];
203
+        return $results[$cdn_url];
204 204
     }
205 205
 
206 206
     /**
@@ -214,10 +214,10 @@  discard block
 block discarded – undo
214 214
      *
215 215
      * @return array|false
216 216
      */
217
-    public static function maybe_replace_cdn_path( array $site_url_parts, array $cdn_url_parts )
217
+    public static function maybe_replace_cdn_path(array $site_url_parts, array $cdn_url_parts)
218 218
     {
219
-        if ( isset( $site_url_parts['path'] ) && '/' !== $site_url_parts['path'] ) {
220
-            if ( ! isset( $cdn_url_parts['path'] ) || '/' === $cdn_url_parts['path'] ) {
219
+        if (isset($site_url_parts['path']) && '/' !== $site_url_parts['path']) {
220
+            if (!isset($cdn_url_parts['path']) || '/' === $cdn_url_parts['path']) {
221 221
                 $cdn_url_parts['path'] = $site_url_parts['path'];
222 222
                 return $cdn_url_parts;
223 223
             }
@@ -237,20 +237,20 @@  discard block
 block discarded – undo
237 237
      *
238 238
      * @return string
239 239
      */
240
-    public static function assemble_parsed_url( array $parsed_url, $schemeless = false )
240
+    public static function assemble_parsed_url(array $parsed_url, $schemeless = false)
241 241
     {
242
-        $scheme = isset( $parsed_url['scheme'] ) ? $parsed_url['scheme'] . '://' : '';
243
-        if ( $schemeless ) {
242
+        $scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'].'://' : '';
243
+        if ($schemeless) {
244 244
             $scheme = '//';
245 245
         }
246
-        $host     = isset( $parsed_url['host'] ) ? $parsed_url['host'] : '';
247
-        $port     = isset( $parsed_url['port'] ) ? ':' . $parsed_url['port'] : '';
248
-        $user     = isset( $parsed_url['user'] ) ? $parsed_url['user'] : '';
249
-        $pass     = isset( $parsed_url['pass'] ) ? ':' . $parsed_url['pass'] : '';
250
-        $pass     = ( $user || $pass ) ? "$pass@" : '';
251
-        $path     = isset( $parsed_url['path'] ) ? $parsed_url['path'] : '';
252
-        $query    = isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : '';
253
-        $fragment = isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : '';
246
+        $host     = isset($parsed_url['host']) ? $parsed_url['host'] : '';
247
+        $port     = isset($parsed_url['port']) ? ':'.$parsed_url['port'] : '';
248
+        $user     = isset($parsed_url['user']) ? $parsed_url['user'] : '';
249
+        $pass     = isset($parsed_url['pass']) ? ':'.$parsed_url['pass'] : '';
250
+        $pass     = ($user || $pass) ? "$pass@" : '';
251
+        $path     = isset($parsed_url['path']) ? $parsed_url['path'] : '';
252
+        $query    = isset($parsed_url['query']) ? '?'.$parsed_url['query'] : '';
253
+        $fragment = isset($parsed_url['fragment']) ? '#'.$parsed_url['fragment'] : '';
254 254
 
255 255
         return "$scheme$user$pass$host$port$path$query$fragment";
256 256
     }
@@ -262,12 +262,12 @@  discard block
 block discarded – undo
262 262
      *
263 263
      * @return bool
264 264
      */
265
-    public static function is_protocol_relative( $url )
265
+    public static function is_protocol_relative($url)
266 266
     {
267 267
         $result = false;
268 268
 
269
-        if ( ! empty( $url ) ) {
270
-            $result = ( 0 === strpos( $url, '//' ) );
269
+        if (!empty($url)) {
270
+            $result = (0 === strpos($url, '//'));
271 271
         }
272 272
 
273 273
         return $result;
@@ -280,9 +280,9 @@  discard block
 block discarded – undo
280 280
      *
281 281
      * @return string
282 282
      */
283
-    public static function path_canonicalize( $path )
283
+    public static function path_canonicalize($path)
284 284
     {
285
-        $patterns     = array(
285
+        $patterns = array(
286 286
             '~/{2,}~',
287 287
             '~/(\./)+~',
288 288
             '~([^/\.]+/(?R)*\.{2,}/)~',
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
             '',
296 296
         );
297 297
 
298
-        return preg_replace( $patterns, $replacements, $path );
298
+        return preg_replace($patterns, $replacements, $path);
299 299
     }
300 300
 
301 301
     /**
@@ -305,15 +305,15 @@  discard block
 block discarded – undo
305 305
      *
306 306
      * @return none if $return_result is false (default), array if $return_result is true.
307 307
      */
308
-    public static function check_service_availability( $return_result = false )
308
+    public static function check_service_availability($return_result = false)
309 309
     {
310
-        $service_availability_resp = wp_remote_get( 'https://misc.optimizingmatters.com/api/autoptimize_service_availablity.json?from=aomain&ver=' . AUTOPTIMIZE_PLUGIN_VERSION );
311
-        if ( ! is_wp_error( $service_availability_resp ) ) {
312
-            if ( '200' == wp_remote_retrieve_response_code( $service_availability_resp ) ) {
313
-                $availabilities = json_decode( wp_remote_retrieve_body( $service_availability_resp ), true );
314
-                if ( is_array( $availabilities ) ) {
315
-                    update_option( 'autoptimize_service_availablity', $availabilities );
316
-                    if ( $return_result ) {
310
+        $service_availability_resp = wp_remote_get('https://misc.optimizingmatters.com/api/autoptimize_service_availablity.json?from=aomain&ver='.AUTOPTIMIZE_PLUGIN_VERSION);
311
+        if (!is_wp_error($service_availability_resp)) {
312
+            if ('200' == wp_remote_retrieve_response_code($service_availability_resp)) {
313
+                $availabilities = json_decode(wp_remote_retrieve_body($service_availability_resp), true);
314
+                if (is_array($availabilities)) {
315
+                    update_option('autoptimize_service_availablity', $availabilities);
316
+                    if ($return_result) {
317 317
                         return $availabilities;
318 318
                     }
319 319
                 }
@@ -328,10 +328,10 @@  discard block
 block discarded – undo
328 328
      *
329 329
      * @return bool
330 330
      */
331
-    public static function str_is_valid_regex( $string )
331
+    public static function str_is_valid_regex($string)
332 332
     {
333
-        set_error_handler( function() {}, E_WARNING );
334
-        $is_regex = ( false !== preg_match( $string, '' ) );
333
+        set_error_handler(function() {}, E_WARNING);
334
+        $is_regex = (false !== preg_match($string, ''));
335 335
         restore_error_handler();
336 336
 
337 337
         return $is_regex;
@@ -344,16 +344,16 @@  discard block
 block discarded – undo
344 344
      *
345 345
      * @return bool
346 346
      */
347
-    public static function is_plugin_active( $plugin_file )
347
+    public static function is_plugin_active($plugin_file)
348 348
     {
349 349
         static $ipa_exists = null;
350
-        if ( null === $ipa_exists ) {
351
-            if ( ! function_exists( '\is_plugin_active' ) ) {
352
-                require_once ABSPATH . 'wp-admin/includes/plugin.php';
350
+        if (null === $ipa_exists) {
351
+            if (!function_exists('\is_plugin_active')) {
352
+                require_once ABSPATH.'wp-admin/includes/plugin.php';
353 353
             }
354
-            $ipa_exists = function_exists( '\is_plugin_active' );
354
+            $ipa_exists = function_exists('\is_plugin_active');
355 355
         }
356 356
 
357
-        return $ipa_exists && \is_plugin_active( $plugin_file );
357
+        return $ipa_exists && \is_plugin_active($plugin_file);
358 358
     }
359 359
 }
Please login to merge, or discard this patch.
classes/autoptimizeImages.php 2 patches
Doc Comments   +10 added lines, -1 removed lines patch added patch discarded remove patch
@@ -361,6 +361,9 @@  discard block
 block discarded – undo
361 361
         }
362 362
     }
363 363
 
364
+    /**
365
+     * @return string
366
+     */
364 367
     private function get_imgopt_base_url()
365 368
     {
366 369
         static $imgopt_base_url = null;
@@ -694,6 +697,9 @@  discard block
 block discarded – undo
694 697
         return $out;
695 698
     }
696 699
 
700
+    /**
701
+     * @param string $tag
702
+     */
697 703
     public function add_lazyload( $tag ) {
698 704
         // adds actual lazyload-attributes to an image node.
699 705
         if ( str_ireplace( $this->get_lazyload_exclusions(), '', $tag ) === $tag ) {
@@ -773,6 +779,9 @@  discard block
 block discarded – undo
773 779
         return $exclude_lazyload_array;
774 780
     }
775 781
 
782
+    /**
783
+     * @param string $target_class
784
+     */
776 785
     public function inject_classes_in_tag( $tag, $target_class ) {
777 786
         if ( strpos( $tag, 'class=' ) !== false ) {
778 787
             $tag = preg_replace( '/(\sclass\s?=\s?("|\'))/', '$1' . $target_class, $tag );
@@ -1088,7 +1097,7 @@  discard block
 block discarded – undo
1088 1097
     /**
1089 1098
      * Determines and returns the service launch status.
1090 1099
      *
1091
-     * @return bool
1100
+     * @return null|boolean
1092 1101
      */
1093 1102
     public function launch_ok()
1094 1103
     {
Please login to merge, or discard this patch.
Spacing   +285 added lines, -285 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles optimizing images.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -23,17 +23,17 @@  discard block
 block discarded – undo
23 23
      */
24 24
     protected static $instance = null;
25 25
 
26
-    public function __construct( array $options = array() )
26
+    public function __construct(array $options = array())
27 27
     {
28 28
         // If options are not provided, fetch them.
29
-        if ( empty( $options ) ) {
29
+        if (empty($options)) {
30 30
             $options = $this->fetch_options();
31 31
         }
32 32
 
33
-        $this->set_options( $options );
33
+        $this->set_options($options);
34 34
     }
35 35
 
36
-    public function set_options( array $options )
36
+    public function set_options(array $options)
37 37
     {
38 38
         $this->options = $options;
39 39
 
@@ -42,17 +42,17 @@  discard block
 block discarded – undo
42 42
 
43 43
     public static function fetch_options()
44 44
     {
45
-        $value = get_option( 'autoptimize_imgopt_settings' );
46
-        if ( empty( $value ) ) {
45
+        $value = get_option('autoptimize_imgopt_settings');
46
+        if (empty($value)) {
47 47
             // Fallback to returning defaults when no stored option exists yet.
48 48
             $value = autoptimizeConfig::get_ao_imgopt_default_options();
49 49
         }
50 50
 
51 51
         // get service availability and add it to the options-array.
52
-        $value['availabilities'] = get_option( 'autoptimize_service_availablity' );
52
+        $value['availabilities'] = get_option('autoptimize_service_availablity');
53 53
 
54
-        if ( empty( $value['availabilities'] ) ) {
55
-            $value['availabilities'] = autoptimizeUtils::check_service_availability( true );
54
+        if (empty($value['availabilities'])) {
55
+            $value['availabilities'] = autoptimizeUtils::check_service_availability(true);
56 56
         }
57 57
 
58 58
         return $value;
@@ -65,9 +65,9 @@  discard block
 block discarded – undo
65 65
         // and does not use/ request the availablity data (which could slow things down).
66 66
         static $imgopt_active = null;
67 67
 
68
-        if ( null === $imgopt_active ) {
69
-            $opts = get_option( 'autoptimize_imgopt_settings', '' );
70
-            if ( ! empty( $opts ) && is_array( $opts ) && array_key_exists( 'autoptimize_imgopt_checkbox_field_1', $opts ) && ! empty( $opts['autoptimize_imgopt_checkbox_field_1'] ) && '1' === $opts['autoptimize_imgopt_checkbox_field_1'] ) {
68
+        if (null === $imgopt_active) {
69
+            $opts = get_option('autoptimize_imgopt_settings', '');
70
+            if (!empty($opts) && is_array($opts) && array_key_exists('autoptimize_imgopt_checkbox_field_1', $opts) && !empty($opts['autoptimize_imgopt_checkbox_field_1']) && '1' === $opts['autoptimize_imgopt_checkbox_field_1']) {
71 71
                 $imgopt_active = true;
72 72
             } else {
73 73
                 $imgopt_active = false;
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
      */
88 88
     public static function instance()
89 89
     {
90
-        if ( null === self::$instance ) {
90
+        if (null === self::$instance) {
91 91
             self::$instance = new self();
92 92
         }
93 93
 
@@ -96,26 +96,26 @@  discard block
 block discarded – undo
96 96
 
97 97
     public function run()
98 98
     {
99
-        if ( is_admin() ) {
100
-            add_action( 'admin_menu', array( $this, 'imgopt_admin_menu' ) );
101
-            add_filter( 'autoptimize_filter_settingsscreen_tabs', array( $this, 'add_imgopt_tab' ), 9 );
99
+        if (is_admin()) {
100
+            add_action('admin_menu', array($this, 'imgopt_admin_menu'));
101
+            add_filter('autoptimize_filter_settingsscreen_tabs', array($this, 'add_imgopt_tab'), 9);
102 102
         } else {
103 103
             $this->run_on_frontend();
104 104
         }
105 105
     }
106 106
 
107 107
     public function run_on_frontend() {
108
-        if ( ! $this->should_run() ) {
109
-            if ( $this->should_lazyload() ) {
108
+        if (!$this->should_run()) {
109
+            if ($this->should_lazyload()) {
110 110
                 add_filter(
111 111
                     'autoptimize_html_after_minify',
112
-                    array( $this, 'filter_lazyload_images' ),
112
+                    array($this, 'filter_lazyload_images'),
113 113
                     10,
114 114
                     1
115 115
                 );
116 116
                 add_action(
117 117
                     'wp_footer',
118
-                    array( $this, 'add_lazyload_js_footer' ),
118
+                    array($this, 'add_lazyload_js_footer'),
119 119
                     10,
120 120
                     0
121 121
                 );
@@ -125,39 +125,39 @@  discard block
 block discarded – undo
125 125
 
126 126
         $active = false;
127 127
 
128
-        if ( apply_filters( 'autoptimize_filter_imgopt_do', true ) ) {
128
+        if (apply_filters('autoptimize_filter_imgopt_do', true)) {
129 129
             add_filter(
130 130
                 'autoptimize_html_after_minify',
131
-                array( $this, 'filter_optimize_images' ),
131
+                array($this, 'filter_optimize_images'),
132 132
                 10,
133 133
                 1
134 134
             );
135 135
             $active = true;
136 136
         }
137 137
 
138
-        if ( apply_filters( 'autoptimize_filter_imgopt_do_css', true ) ) {
138
+        if (apply_filters('autoptimize_filter_imgopt_do_css', true)) {
139 139
             add_filter(
140 140
                 'autoptimize_filter_base_replace_cdn',
141
-                array( $this, 'filter_optimize_css_images' ),
141
+                array($this, 'filter_optimize_css_images'),
142 142
                 10,
143 143
                 1
144 144
             );
145 145
             $active = true;
146 146
         }
147 147
 
148
-        if ( $active ) {
148
+        if ($active) {
149 149
             add_filter(
150 150
                 'autoptimize_extra_filter_tobepreconn',
151
-                array( $this, 'filter_preconnect_imgopt_url' ),
151
+                array($this, 'filter_preconnect_imgopt_url'),
152 152
                 10,
153 153
                 1
154 154
             );
155 155
         }
156 156
 
157
-        if ( $this->should_lazyload() ) {
157
+        if ($this->should_lazyload()) {
158 158
             add_action(
159 159
                 'wp_footer',
160
-                array( $this, 'add_lazyload_js_footer' )
160
+                array($this, 'add_lazyload_js_footer')
161 161
             );
162 162
         }
163 163
     }
@@ -170,8 +170,8 @@  discard block
 block discarded – undo
170 170
     protected function should_run()
171 171
     {
172 172
         $opts              = $this->options;
173
-        $service_not_down  = ( 'down' !== $opts['availabilities']['extra_imgopt']['status'] );
174
-        $not_launch_status = ( 'launch' !== $opts['availabilities']['extra_imgopt']['status'] );
173
+        $service_not_down  = ('down' !== $opts['availabilities']['extra_imgopt']['status']);
174
+        $not_launch_status = ('launch' !== $opts['availabilities']['extra_imgopt']['status']);
175 175
 
176 176
         $do_cdn      = true;
177 177
         $_userstatus = $this->get_imgopt_provider_userstatus();
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
             $this->imgopt_active()
184 184
             && $do_cdn
185 185
             && $service_not_down
186
-            && ( $not_launch_status || $this->launch_ok() )
186
+            && ($not_launch_status || $this->launch_ok())
187 187
         ) {
188 188
             return true;
189 189
         }
@@ -194,11 +194,11 @@  discard block
 block discarded – undo
194 194
     {
195 195
         static $imgopt_host = null;
196 196
 
197
-        if ( null === $imgopt_host ) {
197
+        if (null === $imgopt_host) {
198 198
             $imgopt_host  = 'https://cdn.shortpixel.ai/';
199 199
             $avail_imgopt = $this->options['availabilities']['extra_imgopt'];
200
-            if ( ! empty( $avail_imgopt ) && array_key_exists( 'hosts', $avail_imgopt ) && is_array( $avail_imgopt['hosts'] ) ) {
201
-                $imgopt_host = array_rand( array_flip( $avail_imgopt['hosts'] ) );
200
+            if (!empty($avail_imgopt) && array_key_exists('hosts', $avail_imgopt) && is_array($avail_imgopt['hosts'])) {
201
+                $imgopt_host = array_rand(array_flip($avail_imgopt['hosts']));
202 202
             }
203 203
         }
204 204
 
@@ -214,7 +214,7 @@  discard block
 block discarded – undo
214 214
 
215 215
     public static function get_service_url_suffix()
216 216
     {
217
-        $suffix = '/af/GWRGFLW109483/' . AUTOPTIMIZE_SITE_DOMAIN;
217
+        $suffix = '/af/GWRGFLW109483/'.AUTOPTIMIZE_SITE_DOMAIN;
218 218
 
219 219
         return $suffix;
220 220
     }
@@ -223,12 +223,12 @@  discard block
 block discarded – undo
223 223
     {
224 224
         static $quality = null;
225 225
 
226
-        if ( null === $quality ) {
226
+        if (null === $quality) {
227 227
             $q_array = $this->get_img_quality_array();
228 228
             $setting = $this->get_img_quality_setting();
229 229
             $quality = apply_filters(
230 230
                 'autoptimize_filter_imgopt_quality',
231
-                'q_' . $q_array[ $setting ]
231
+                'q_'.$q_array[$setting]
232 232
             );
233 233
         }
234 234
 
@@ -239,7 +239,7 @@  discard block
 block discarded – undo
239 239
     {
240 240
         static $map = null;
241 241
 
242
-        if ( null === $map ) {
242
+        if (null === $map) {
243 243
             $map = array(
244 244
                 '1' => 'lossy',
245 245
                 '2' => 'glossy',
@@ -258,12 +258,12 @@  discard block
 block discarded – undo
258 258
     {
259 259
         static $q = null;
260 260
 
261
-        if ( null === $q ) {
262
-            if ( is_array( $this->options ) && array_key_exists( 'autoptimize_imgopt_select_field_2', $this->options ) ) {
261
+        if (null === $q) {
262
+            if (is_array($this->options) && array_key_exists('autoptimize_imgopt_select_field_2', $this->options)) {
263 263
                 $setting = $this->options['autoptimize_imgopt_select_field_2'];
264 264
             }
265 265
 
266
-            if ( ! isset( $setting ) || empty( $setting ) || ( '1' !== $setting && '3' !== $setting ) ) {
266
+            if (!isset($setting) || empty($setting) || ('1' !== $setting && '3' !== $setting)) {
267 267
                 // default image opt. value is 2 ("glossy").
268 268
                 $q = '2';
269 269
             } else {
@@ -274,10 +274,10 @@  discard block
 block discarded – undo
274 274
         return $q;
275 275
     }
276 276
 
277
-    public function filter_preconnect_imgopt_url( array $in )
277
+    public function filter_preconnect_imgopt_url(array $in)
278 278
     {
279
-        $url_parts = parse_url( $this->get_imgopt_base_url() );
280
-        $in[]      = $url_parts['scheme'] . '://' . $url_parts['host'];
279
+        $url_parts = parse_url($this->get_imgopt_base_url());
280
+        $in[]      = $url_parts['scheme'].'://'.$url_parts['host'];
281 281
 
282 282
         return $in;
283 283
     }
@@ -290,20 +290,20 @@  discard block
 block discarded – undo
290 290
      *
291 291
      * @return string
292 292
      */
293
-    private function normalize_img_url( $in )
293
+    private function normalize_img_url($in)
294 294
     {
295 295
         // Only parse the site url once.
296 296
         static $parsed_site_url = null;
297
-        if ( null === $parsed_site_url ) {
298
-            $parsed_site_url = parse_url( site_url() );
297
+        if (null === $parsed_site_url) {
298
+            $parsed_site_url = parse_url(site_url());
299 299
         }
300 300
 
301 301
         // get CDN domain once.
302 302
         static $cdn_domain = null;
303
-        if ( is_null( $cdn_domain ) ) {
304
-            $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', get_option( 'autoptimize_cdn_url', '' ) );
305
-            if ( ! empty( $cdn_url ) ) {
306
-                $cdn_domain = parse_url( $cdn_url, PHP_URL_HOST );
303
+        if (is_null($cdn_domain)) {
304
+            $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', get_option('autoptimize_cdn_url', ''));
305
+            if (!empty($cdn_url)) {
306
+                $cdn_domain = parse_url($cdn_url, PHP_URL_HOST);
307 307
             } else {
308 308
                 $cdn_domain = '';
309 309
             }
@@ -319,43 +319,43 @@  discard block
 block discarded – undo
319 319
          * identical string operations).
320 320
          */
321 321
         static $cache = null;
322
-        if ( null === $cache ) {
322
+        if (null === $cache) {
323 323
             $cache = array();
324 324
         }
325 325
 
326 326
         // Do the work on cache miss only.
327
-        if ( ! isset( $cache[ $in ] ) ) {
327
+        if (!isset($cache[$in])) {
328 328
             // Default to what was given to us.
329 329
             $result = $in;
330
-            if ( autoptimizeUtils::is_protocol_relative( $in ) ) {
331
-                $result = $parsed_site_url['scheme'] . ':' . $in;
332
-            } elseif ( 0 === strpos( $in, '/' ) ) {
330
+            if (autoptimizeUtils::is_protocol_relative($in)) {
331
+                $result = $parsed_site_url['scheme'].':'.$in;
332
+            } elseif (0 === strpos($in, '/')) {
333 333
                 // Root-relative...
334
-                $result = $parsed_site_url['scheme'] . '://' . $parsed_site_url['host'];
334
+                $result = $parsed_site_url['scheme'].'://'.$parsed_site_url['host'];
335 335
                 // Add the path for subfolder installs.
336
-                if ( isset( $parsed_site_url['path'] ) ) {
336
+                if (isset($parsed_site_url['path'])) {
337 337
                     $result .= $parsed_site_url['path'];
338 338
                 }
339 339
                 $result .= $in;
340
-            } elseif ( ! empty( $cdn_domain ) && strpos( $in, $cdn_domain ) !== 0 ) {
341
-                $result = str_replace( $cdn_domain, $parsed_site_url['host'], $in );
340
+            } elseif (!empty($cdn_domain) && strpos($in, $cdn_domain) !== 0) {
341
+                $result = str_replace($cdn_domain, $parsed_site_url['host'], $in);
342 342
             }
343 343
 
344
-            $result = apply_filters( 'autoptimize_filter_imgopt_normalized_url', $result );
344
+            $result = apply_filters('autoptimize_filter_imgopt_normalized_url', $result);
345 345
 
346 346
             // Store in cache.
347
-            $cache[ $in ] = $result;
347
+            $cache[$in] = $result;
348 348
         }
349 349
 
350
-        return $cache[ $in ];
350
+        return $cache[$in];
351 351
     }
352 352
 
353
-    public function filter_optimize_css_images( $in )
353
+    public function filter_optimize_css_images($in)
354 354
     {
355
-        $in = $this->normalize_img_url( $in );
355
+        $in = $this->normalize_img_url($in);
356 356
 
357
-        if ( $this->can_optimize_image( $in ) ) {
358
-            return $this->build_imgopt_url( $in, '', '' );
357
+        if ($this->can_optimize_image($in)) {
358
+            return $this->build_imgopt_url($in, '', '');
359 359
         } else {
360 360
             return $in;
361 361
         }
@@ -365,50 +365,50 @@  discard block
 block discarded – undo
365 365
     {
366 366
         static $imgopt_base_url = null;
367 367
 
368
-        if ( null === $imgopt_base_url ) {
368
+        if (null === $imgopt_base_url) {
369 369
             $imgopt_host     = $this->get_imgopt_host();
370 370
             $quality         = $this->get_img_quality_string();
371
-            $ret_val         = apply_filters( 'autoptimize_filter_imgopt_wait', 'ret_img' ); // values: ret_wait, ret_img, ret_json, ret_blank.
372
-            $imgopt_base_url = $imgopt_host . 'client/' . $quality . ',' . $ret_val;
373
-            $imgopt_base_url = apply_filters( 'autoptimize_filter_imgopt_base_url', $imgopt_base_url );
371
+            $ret_val         = apply_filters('autoptimize_filter_imgopt_wait', 'ret_img'); // values: ret_wait, ret_img, ret_json, ret_blank.
372
+            $imgopt_base_url = $imgopt_host.'client/'.$quality.','.$ret_val;
373
+            $imgopt_base_url = apply_filters('autoptimize_filter_imgopt_base_url', $imgopt_base_url);
374 374
         }
375 375
 
376 376
         return $imgopt_base_url;
377 377
     }
378 378
 
379
-    private function can_optimize_image( $url )
379
+    private function can_optimize_image($url)
380 380
     {
381 381
         static $cdn_url      = null;
382 382
         static $nopti_images = null;
383 383
 
384
-        if ( null === $cdn_url ) {
384
+        if (null === $cdn_url) {
385 385
             $cdn_url = apply_filters(
386 386
                 'autoptimize_filter_base_cdnurl',
387
-                get_option( 'autoptimize_cdn_url', '' )
387
+                get_option('autoptimize_cdn_url', '')
388 388
             );
389 389
         }
390 390
 
391
-        if ( null === $nopti_images ) {
392
-            $nopti_images = apply_filters( 'autoptimize_filter_imgopt_noptimize', '' );
391
+        if (null === $nopti_images) {
392
+            $nopti_images = apply_filters('autoptimize_filter_imgopt_noptimize', '');
393 393
         }
394 394
 
395 395
         $site_host  = AUTOPTIMIZE_SITE_DOMAIN;
396
-        $url        = $this->normalize_img_url( $url );
397
-        $url_parsed = parse_url( $url );
396
+        $url        = $this->normalize_img_url($url);
397
+        $url_parsed = parse_url($url);
398 398
 
399
-        if ( array_key_exists( 'host', $url_parsed ) && $url_parsed['host'] !== $site_host && empty( $cdn_url ) ) {
399
+        if (array_key_exists('host', $url_parsed) && $url_parsed['host'] !== $site_host && empty($cdn_url)) {
400 400
             return false;
401
-        } elseif ( ! empty( $cdn_url ) && strpos( $url, $cdn_url ) === false && array_key_exists( 'host', $url_parsed ) && $url_parsed['host'] !== $site_host ) {
401
+        } elseif (!empty($cdn_url) && strpos($url, $cdn_url) === false && array_key_exists('host', $url_parsed) && $url_parsed['host'] !== $site_host) {
402 402
             return false;
403
-        } elseif ( strpos( $url, '.php' ) !== false ) {
403
+        } elseif (strpos($url, '.php') !== false) {
404 404
             return false;
405
-        } elseif ( str_ireplace( array( '.png', '.gif', '.jpg', '.jpeg', '.webp' ), '', $url_parsed['path'] ) === $url_parsed['path'] ) {
405
+        } elseif (str_ireplace(array('.png', '.gif', '.jpg', '.jpeg', '.webp'), '', $url_parsed['path']) === $url_parsed['path']) {
406 406
             // fixme: better check against end of string.
407 407
             return false;
408
-        } elseif ( ! empty( $nopti_images ) ) {
409
-            $nopti_images_array = array_filter( array_map( 'trim', explode( ',', $nopti_images ) ) );
410
-            foreach ( $nopti_images_array as $nopti_image ) {
411
-                if ( strpos( $url, $nopti_image ) !== false ) {
408
+        } elseif (!empty($nopti_images)) {
409
+            $nopti_images_array = array_filter(array_map('trim', explode(',', $nopti_images)));
410
+            foreach ($nopti_images_array as $nopti_image) {
411
+                if (strpos($url, $nopti_image) !== false) {
412 412
                     return false;
413 413
                 }
414 414
             }
@@ -416,13 +416,13 @@  discard block
 block discarded – undo
416 416
         return true;
417 417
     }
418 418
 
419
-    private function build_imgopt_url( $orig_url, $width = 0, $height = 0 )
419
+    private function build_imgopt_url($orig_url, $width = 0, $height = 0)
420 420
     {
421 421
         // sanitize width and height.
422
-        if ( strpos( $width, '%' ) !== false ) {
422
+        if (strpos($width, '%') !== false) {
423 423
             $width = 0;
424 424
         }
425
-        if ( strpos( $height, '%' ) !== false ) {
425
+        if (strpos($height, '%') !== false) {
426 426
             $height = 0;
427 427
         }
428 428
         $width  = (int) $width;
@@ -436,42 +436,42 @@  discard block
 block discarded – undo
436 436
         );
437 437
 
438 438
         // If filter modified the url, return that.
439
-        if ( $filtered_url !== $orig_url ) {
439
+        if ($filtered_url !== $orig_url) {
440 440
             return $filtered_url;
441 441
         }
442 442
 
443
-        $orig_url        = $this->normalize_img_url( $orig_url );
443
+        $orig_url        = $this->normalize_img_url($orig_url);
444 444
         $imgopt_base_url = $this->get_imgopt_base_url();
445 445
         $imgopt_size     = '';
446 446
 
447
-        if ( $width && 0 !== $width ) {
448
-            $imgopt_size = ',w_' . $width;
447
+        if ($width && 0 !== $width) {
448
+            $imgopt_size = ',w_'.$width;
449 449
         }
450 450
 
451
-        if ( $height && 0 !== $height ) {
452
-            $imgopt_size .= ',h_' . $height;
451
+        if ($height && 0 !== $height) {
452
+            $imgopt_size .= ',h_'.$height;
453 453
         }
454 454
 
455
-        $url = $imgopt_base_url . $imgopt_size . '/' . $orig_url;
455
+        $url = $imgopt_base_url.$imgopt_size.'/'.$orig_url;
456 456
 
457 457
         return $url;
458 458
     }
459 459
 
460
-    public function replace_data_thumbs( $matches )
460
+    public function replace_data_thumbs($matches)
461 461
     {
462
-        return $this->replace_img_callback( $matches, 150, 150 );
462
+        return $this->replace_img_callback($matches, 150, 150);
463 463
     }
464 464
 
465
-    public function replace_img_callback( $matches, $width = 0, $height = 0 )
465
+    public function replace_img_callback($matches, $width = 0, $height = 0)
466 466
     {
467
-        if ( $this->can_optimize_image( $matches[1] ) ) {
468
-            return str_replace( $matches[1], $this->build_imgopt_url( $matches[1], $width, $height ), $matches[0] );
467
+        if ($this->can_optimize_image($matches[1])) {
468
+            return str_replace($matches[1], $this->build_imgopt_url($matches[1], $width, $height), $matches[0]);
469 469
         } else {
470 470
             return $matches[0];
471 471
         }
472 472
     }
473 473
 
474
-    public function filter_optimize_images( $in )
474
+    public function filter_optimize_images($in)
475 475
     {
476 476
         /*
477 477
          * potential future functional improvements:
@@ -482,7 +482,7 @@  discard block
 block discarded – undo
482 482
         $to_replace = array();
483 483
 
484 484
         // hide noscript tags to avoid nesting noscript tags (as lazyloaded images add noscript).
485
-        if ( $this->should_lazyload() ) {
485
+        if ($this->should_lazyload()) {
486 486
             $in = autoptimizeBase::replace_contents_with_marker_if_exists(
487 487
                 'NOSCRIPT',
488 488
                 '<noscript',
@@ -492,25 +492,25 @@  discard block
 block discarded – undo
492 492
         }
493 493
 
494 494
         // extract img tags.
495
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $in, $matches ) ) {
496
-            foreach ( $matches[0] as $tag ) {
495
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $in, $matches)) {
496
+            foreach ($matches[0] as $tag) {
497 497
                 $orig_tag = $tag;
498 498
                 $imgopt_w = '';
499 499
                 $imgopt_h = '';
500 500
 
501 501
                 // first do (data-)srcsets.
502
-                if ( preg_match_all( '#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER ) ) {
503
-                    foreach ( $allsrcsets as $srcset ) {
502
+                if (preg_match_all('#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER)) {
503
+                    foreach ($allsrcsets as $srcset) {
504 504
                         $srcset  = $srcset[2];
505
-                        $srcsets = explode( ',', $srcset );
506
-                        foreach ( $srcsets as $indiv_srcset ) {
507
-                            $indiv_srcset_parts = explode( ' ', trim( $indiv_srcset ) );
508
-                            if ( isset( $indiv_srcset_parts[1] ) && rtrim( $indiv_srcset_parts[1], 'w' ) !== $indiv_srcset_parts[1] ) {
509
-                                $imgopt_w = rtrim( $indiv_srcset_parts[1], 'w' );
505
+                        $srcsets = explode(',', $srcset);
506
+                        foreach ($srcsets as $indiv_srcset) {
507
+                            $indiv_srcset_parts = explode(' ', trim($indiv_srcset));
508
+                            if (isset($indiv_srcset_parts[1]) && rtrim($indiv_srcset_parts[1], 'w') !== $indiv_srcset_parts[1]) {
509
+                                $imgopt_w = rtrim($indiv_srcset_parts[1], 'w');
510 510
                             }
511
-                            if ( $this->can_optimize_image( $indiv_srcset_parts[0] ) ) {
512
-                                $imgopt_url = $this->build_imgopt_url( $indiv_srcset_parts[0], $imgopt_w, '' );
513
-                                $tag        = str_replace( $indiv_srcset_parts[0], $imgopt_url, $tag );
511
+                            if ($this->can_optimize_image($indiv_srcset_parts[0])) {
512
+                                $imgopt_url = $this->build_imgopt_url($indiv_srcset_parts[0], $imgopt_w, '');
513
+                                $tag        = str_replace($indiv_srcset_parts[0], $imgopt_url, $tag);
514 514
                             }
515 515
                         }
516 516
                     }
@@ -518,87 +518,87 @@  discard block
 block discarded – undo
518 518
 
519 519
                 // proceed with img src.
520 520
                 // get width and height and add to $imgopt_size.
521
-                $_get_size = $this->get_size_from_tag( $tag );
521
+                $_get_size = $this->get_size_from_tag($tag);
522 522
                 $imgopt_w  = $_get_size['width'];
523 523
                 $imgopt_h  = $_get_size['height'];
524 524
 
525 525
                 // then start replacing images src.
526
-                if ( preg_match_all( '#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER ) ) {
527
-                    foreach ( $urls as $url ) {
526
+                if (preg_match_all('#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER)) {
527
+                    foreach ($urls as $url) {
528 528
                         $full_src_orig = $url[0];
529 529
                         $url           = $url[1];
530
-                        if ( $this->can_optimize_image( $url ) ) {
531
-                            $imgopt_url      = $this->build_imgopt_url( $url, $imgopt_w, $imgopt_h );
532
-                            $full_imgopt_src = str_replace( $url, $imgopt_url, $full_src_orig );
533
-                            $tag             = str_replace( $full_src_orig, $full_imgopt_src, $tag );
530
+                        if ($this->can_optimize_image($url)) {
531
+                            $imgopt_url      = $this->build_imgopt_url($url, $imgopt_w, $imgopt_h);
532
+                            $full_imgopt_src = str_replace($url, $imgopt_url, $full_src_orig);
533
+                            $tag             = str_replace($full_src_orig, $full_imgopt_src, $tag);
534 534
                         }
535 535
                     }
536 536
                 }
537 537
 
538 538
                 // do lazyload stuff.
539
-                if ( $this->should_lazyload() && str_ireplace( $this->get_lazyload_exclusions(), '', $tag ) === $tag ) {
540
-                    $noscript_tag = '<noscript>' . $tag . '</noscript>';
541
-                    $tag          = str_replace( 'srcset=', 'data-srcset=', $tag );
539
+                if ($this->should_lazyload() && str_ireplace($this->get_lazyload_exclusions(), '', $tag) === $tag) {
540
+                    $noscript_tag = '<noscript>'.$tag.'</noscript>';
541
+                    $tag          = str_replace('srcset=', 'data-srcset=', $tag);
542 542
 
543 543
                     // add lazyload class.
544
-                    $tag = $this->inject_classes_in_tag( $tag, 'lazyload ' );
544
+                    $tag = $this->inject_classes_in_tag($tag, 'lazyload ');
545 545
 
546 546
                     // set placeholder.
547
-                    if ( strpos( $url, $this->get_imgopt_host() ) === 0 ) {
547
+                    if (strpos($url, $this->get_imgopt_host()) === 0) {
548 548
                         // if all img src have been replaced during srcset, we have to extract the
549 549
                         // origin url from the imgopt one to be able to set a lqip placeholder.
550
-                        $_url = substr( $url, strpos( $url, '/http' ) + 1 );
550
+                        $_url = substr($url, strpos($url, '/http') + 1);
551 551
                     } else {
552 552
                         $_url = $url;
553 553
                     }
554
-                    if ( $this->can_optimize_image( $_url ) && apply_filters( 'autoptimize_filter_imgopt_lazyload_dolqip', true ) ) {
555
-                        $placeholder = $this->get_imgopt_host() . 'client/q_lqip,ret_wait,w_' . $imgopt_w . ',h_' . $imgopt_h . '/' . $_url;
554
+                    if ($this->can_optimize_image($_url) && apply_filters('autoptimize_filter_imgopt_lazyload_dolqip', true)) {
555
+                        $placeholder = $this->get_imgopt_host().'client/q_lqip,ret_wait,w_'.$imgopt_w.',h_'.$imgopt_h.'/'.$_url;
556 556
                     } else {
557
-                        $placeholder = $this->get_default_lazyload_placeholder( $imgopt_w, $imgopt_h );
557
+                        $placeholder = $this->get_default_lazyload_placeholder($imgopt_w, $imgopt_h);
558 558
                     }
559
-                    $placeholder = ' src=\'' . apply_filters( 'autoptimize_filter_imgopt_lazyload_placeholder', $placeholder );
559
+                    $placeholder = ' src=\''.apply_filters('autoptimize_filter_imgopt_lazyload_placeholder', $placeholder);
560 560
 
561 561
                     // add min-heigth off by default as it can deform images, can be enabled with filter.
562 562
                     $min_height = '';
563
-                    if ( apply_filters( 'autoptimize_filter_imgopt_lazyload_addminheight', false ) ) {
564
-                        $min_height = ' style="min-height:' . $imgopt_h . 'px;"';
563
+                    if (apply_filters('autoptimize_filter_imgopt_lazyload_addminheight', false)) {
564
+                        $min_height = ' style="min-height:'.$imgopt_h.'px;"';
565 565
                     }
566 566
 
567 567
                     // add noscript & placeholder.
568
-                    $tag = $noscript_tag . str_replace( ' src=', $min_height . $placeholder . '\' data-src=', $tag );
569
-                    $tag = apply_filters( 'autoptimize_filter_imgopt_lazyloaded_img', $tag );
568
+                    $tag = $noscript_tag.str_replace(' src=', $min_height.$placeholder.'\' data-src=', $tag);
569
+                    $tag = apply_filters('autoptimize_filter_imgopt_lazyloaded_img', $tag);
570 570
                 }
571 571
 
572 572
                 // add tag to array for later replacement.
573
-                if ( $tag !== $orig_tag ) {
574
-                    $to_replace[ $orig_tag ] = $tag;
573
+                if ($tag !== $orig_tag) {
574
+                    $to_replace[$orig_tag] = $tag;
575 575
                 }
576 576
             }
577 577
         }
578 578
 
579 579
         // and replace all.
580
-        $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $in );
580
+        $out = str_replace(array_keys($to_replace), array_values($to_replace), $in);
581 581
 
582 582
         // img thumbnails in e.g. woocommerce.
583
-        if ( strpos( $out, 'data-thumb' ) !== false && apply_filters( 'autoptimize_filter_imgopt_datathumbs', true ) ) {
583
+        if (strpos($out, 'data-thumb') !== false && apply_filters('autoptimize_filter_imgopt_datathumbs', true)) {
584 584
             $out = preg_replace_callback(
585 585
                 '/\<div(?:[^>]?)\sdata-thumb\=(?:\"|\')(.+?)(?:\"|\')(?:[^>]*)?\>/s',
586
-                array( $this, 'replace_data_thumbs' ),
586
+                array($this, 'replace_data_thumbs'),
587 587
                 $out
588 588
             );
589 589
         }
590 590
 
591 591
         // background-image in inline style.
592
-        if ( strpos( $out, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) {
592
+        if (strpos($out, 'background-image:') !== false && apply_filters('autoptimize_filter_imgopt_backgroundimages', true)) {
593 593
             $out = preg_replace_callback(
594 594
                 '/style=(?:"|\').*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/',
595
-                array( $this, 'replace_img_callback' ),
595
+                array($this, 'replace_img_callback'),
596 596
                 $out
597 597
             );
598 598
         }
599 599
 
600 600
         // and restore noscript tags if these were hidden for lazyload purposes.
601
-        if ( $this->should_lazyload() ) {
601
+        if ($this->should_lazyload()) {
602 602
             $out = autoptimizeBase::restore_marked_content(
603 603
                 'NOSCRIPT',
604 604
                 $out
@@ -608,34 +608,34 @@  discard block
 block discarded – undo
608 608
         return $out;
609 609
     }
610 610
 
611
-    public function get_size_from_tag( $tag ) {
611
+    public function get_size_from_tag($tag) {
612 612
         // reusable function to extract widht and height from an image tag
613 613
         // enforcing a filterable maximum width and height (default 4999X4999).
614 614
         $width  = '';
615 615
         $height = '';
616 616
 
617
-        if ( preg_match( '#width=("|\')(.*)("|\')#Usmi', $tag, $_width ) ) {
618
-            if ( strpos( $_width[2], '%' ) === false ) {
617
+        if (preg_match('#width=("|\')(.*)("|\')#Usmi', $tag, $_width)) {
618
+            if (strpos($_width[2], '%') === false) {
619 619
                 $width = (int) $_width[2];
620 620
             }
621 621
         }
622
-        if ( preg_match( '#height=("|\')(.*)("|\')#Usmi', $tag, $_height ) ) {
623
-            if ( strpos( $_height[2], '%' ) === false ) {
622
+        if (preg_match('#height=("|\')(.*)("|\')#Usmi', $tag, $_height)) {
623
+            if (strpos($_height[2], '%') === false) {
624 624
                 $height = (int) $_height[2];
625 625
             }
626 626
         }
627 627
 
628 628
         // check for and enforce (filterable) max sizes.
629
-        $_max_width = apply_filters( 'autoptimize_filter_imgopt_max_width', 4999 );
630
-        if ( $width > $_max_width ) {
629
+        $_max_width = apply_filters('autoptimize_filter_imgopt_max_width', 4999);
630
+        if ($width > $_max_width) {
631 631
             $_width = $_max_width;
632
-            $height = $_width / $width * $height;
632
+            $height = $_width/$width*$height;
633 633
             $width  = $_width;
634 634
         }
635
-        $_max_height = apply_filters( 'autoptimize_filter_imgopt_max_height', 4999 );
636
-        if ( $height > $_max_height ) {
635
+        $_max_height = apply_filters('autoptimize_filter_imgopt_max_height', 4999);
636
+        if ($height > $_max_height) {
637 637
             $_height = $_max_height;
638
-            $width   = $_height / $height * $width;
638
+            $width   = $_height/$height*$width;
639 639
             $height  = $_height;
640 640
         }
641 641
 
@@ -649,7 +649,7 @@  discard block
 block discarded – undo
649 649
      * Lazyload functions
650 650
      */
651 651
     public function should_lazyload() {
652
-        if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_3'] ) ) {
652
+        if (!empty($this->options['autoptimize_imgopt_checkbox_field_3'])) {
653 653
             $lazyload_return = true;
654 654
         } else {
655 655
             $lazyload_return = false;
@@ -664,7 +664,7 @@  discard block
 block discarded – undo
664 664
         return $self->should_lazyload();
665 665
     }
666 666
 
667
-    public function filter_lazyload_images( $in )
667
+    public function filter_lazyload_images($in)
668 668
     {
669 669
         // only used is image optimization is NOT active but lazyload is.
670 670
         $to_replace = array();
@@ -678,11 +678,11 @@  discard block
 block discarded – undo
678 678
         );
679 679
 
680 680
         // extract img tags and add lazyload attribs.
681
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $out, $matches ) ) {
682
-            foreach ( $matches[0] as $tag ) {
683
-                $to_replace[ $tag ] = $this->add_lazyload( $tag );
681
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $out, $matches)) {
682
+            foreach ($matches[0] as $tag) {
683
+                $to_replace[$tag] = $this->add_lazyload($tag);
684 684
             }
685
-            $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $out );
685
+            $out = str_replace(array_keys($to_replace), array_values($to_replace), $out);
686 686
         }
687 687
 
688 688
         // restore noscript tags.
@@ -694,35 +694,35 @@  discard block
 block discarded – undo
694 694
         return $out;
695 695
     }
696 696
 
697
-    public function add_lazyload( $tag ) {
697
+    public function add_lazyload($tag) {
698 698
         // adds actual lazyload-attributes to an image node.
699
-        if ( str_ireplace( $this->get_lazyload_exclusions(), '', $tag ) === $tag ) {
699
+        if (str_ireplace($this->get_lazyload_exclusions(), '', $tag) === $tag) {
700 700
             // store original tag for use in noscript version.
701
-            $noscript_tag = '<noscript>' . $tag . '</noscript>';
701
+            $noscript_tag = '<noscript>'.$tag.'</noscript>';
702 702
 
703 703
             // insert lazyload class.
704
-            $tag = $this->inject_classes_in_tag( $tag, 'lazyload ' );
704
+            $tag = $this->inject_classes_in_tag($tag, 'lazyload ');
705 705
 
706 706
             // get image width & heigth for placeholder fun (and to prevent content reflow).
707
-            $_get_size = $this->get_size_from_tag( $tag );
707
+            $_get_size = $this->get_size_from_tag($tag);
708 708
             $width     = $_get_size['width'];
709 709
             $height    = $_get_size['height'];
710
-            if ( false === $width ) {
710
+            if (false === $width) {
711 711
                 $widht = 210; // default width for SVG placeholder.
712 712
             }
713
-            if ( false === $height ) {
714
-                $heigth = $width / 3 * 2; // if no height, base it on width using the 3/2 aspect ratio.
713
+            if (false === $height) {
714
+                $heigth = $width/3*2; // if no height, base it on width using the 3/2 aspect ratio.
715 715
             }
716 716
 
717 717
             // insert the actual lazyload stuff.
718 718
             // see https://css-tricks.com/preventing-content-reflow-from-lazy-loaded-images/ for great read on why we're using empty svg's.
719
-            $placeholder = apply_filters( 'autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder( $width, $height ) );
720
-            $tag         = str_replace( ' src=', ' src=\'' . $placeholder . '\' data-src=', $tag );
721
-            $tag         = str_replace( ' srcset=', ' data-srcset=', $tag );
719
+            $placeholder = apply_filters('autoptimize_filter_imgopt_lazyload_placeholder', $this->get_default_lazyload_placeholder($width, $height));
720
+            $tag         = str_replace(' src=', ' src=\''.$placeholder.'\' data-src=', $tag);
721
+            $tag         = str_replace(' srcset=', ' data-srcset=', $tag);
722 722
 
723 723
             // add the noscript-tag from earlier.
724
-            $tag = $noscript_tag . $tag;
725
-            $tag = apply_filters( 'autoptimize_filter_imgopt_lazyloaded_img', $tag );
724
+            $tag = $noscript_tag.$tag;
725
+            $tag = apply_filters('autoptimize_filter_imgopt_lazyloaded_img', $tag);
726 726
         }
727 727
 
728 728
         return $tag;
@@ -731,20 +731,20 @@  discard block
 block discarded – undo
731 731
     public function add_lazyload_js_footer() {
732 732
         // The JS will by default be excluded form autoptimization but this can be changed with a filter.
733 733
         $noptimize_flag = '';
734
-        if ( apply_filters( 'autoptimize_filter_imgopt_lazyload_js_noptimize', true ) ) {
734
+        if (apply_filters('autoptimize_filter_imgopt_lazyload_js_noptimize', true)) {
735 735
             $noptimize_flag = ' data-noptimize="1"';
736 736
         }
737 737
 
738 738
         // Adds lazyload CSS & JS to footer, using echo because wp_enqueue_script seems not to support pushing attributes (async).
739
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_cssoutput', '<style>.lazyload,.lazyloading{opacity:0;}.lazyloaded{opacity:1;transition:opacity 300ms;}</style><noscript><style>.lazyload{display:none;}</style></noscript>' );
740
-        echo apply_filters( 'autoptimize_filter_imgopt_lazyload_jsconfig', '<script' . $noptimize_flag . '>window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script>' );
741
-        echo '<script async' . $noptimize_flag . ' src=\'' . plugins_url( 'external/js/lazysizes.min.js', __FILE__ ) . '\'></script>';
739
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_cssoutput', '<style>.lazyload,.lazyloading{opacity:0;}.lazyloaded{opacity:1;transition:opacity 300ms;}</style><noscript><style>.lazyload{display:none;}</style></noscript>');
740
+        echo apply_filters('autoptimize_filter_imgopt_lazyload_jsconfig', '<script'.$noptimize_flag.'>window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script>');
741
+        echo '<script async'.$noptimize_flag.' src=\''.plugins_url('external/js/lazysizes.min.js', __FILE__).'\'></script>';
742 742
 
743 743
         // And add webp detection and loading JS.
744
-        if ( $this->should_webp() ) {
744
+        if ($this->should_webp()) {
745 745
             $_webp_detect = "function c_webp(A){var n=new Image;n.onload=function(){var e=0<n.width&&0<n.height;A(e)},n.onerror=function(){A(!1)},n.src='data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA=='}function s_webp(e){window.supportsWebP=e}c_webp(s_webp);";
746 746
             $_webp_load   = "document.addEventListener('lazybeforeunveil',function({target:c}){supportsWebP&&['data-src','data-srcset'].forEach(function(a){attr=c.getAttribute(a),null!==attr&&c.setAttribute(a,attr.replace(/\/client\//,'/client/to_webp,'))})});";
747
-            echo apply_filters( 'autoptimize_filter_imgopt_webp_js', '<script' . $noptimize_flag . '>' . $_webp_detect . $_webp_load . '</script>' );
747
+            echo apply_filters('autoptimize_filter_imgopt_webp_js', '<script'.$noptimize_flag.'>'.$_webp_detect.$_webp_load.'</script>');
748 748
         }
749 749
     }
750 750
 
@@ -752,47 +752,47 @@  discard block
 block discarded – undo
752 752
         // returns array of strings that if found in an <img tag will stop the img from being lazy-loaded.
753 753
         static $exclude_lazyload_array = null;
754 754
 
755
-        if ( null === $exclude_lazyload_array ) {
755
+        if (null === $exclude_lazyload_array) {
756 756
             $options = $this->options;
757 757
 
758 758
             // set default exclusions.
759
-            $exclude_lazyload_array = array( 'skip-lazy', 'data-no-lazy', 'notlazy', 'data-src', 'data-srcset' );
759
+            $exclude_lazyload_array = array('skip-lazy', 'data-no-lazy', 'notlazy', 'data-src', 'data-srcset');
760 760
 
761 761
             // add from setting.
762
-            if ( array_key_exists( 'autoptimize_imgopt_text_field_5', $options ) ) {
762
+            if (array_key_exists('autoptimize_imgopt_text_field_5', $options)) {
763 763
                 $exclude_lazyload_option = $options['autoptimize_imgopt_text_field_5'];
764
-                if ( ! empty( $exclude_lazyload_option ) ) {
765
-                    $exclude_lazyload_array = array_merge( $exclude_lazyload_array, array_filter( array_map( 'trim', explode( ',', $options['autoptimize_imgopt_text_field_5'] ) ) ) );
764
+                if (!empty($exclude_lazyload_option)) {
765
+                    $exclude_lazyload_array = array_merge($exclude_lazyload_array, array_filter(array_map('trim', explode(',', $options['autoptimize_imgopt_text_field_5']))));
766 766
                 }
767 767
             }
768 768
 
769 769
             // and filter for developer-initiated changes.
770
-            $exclude_lazyload_array = apply_filters( 'autoptimize_filter_imgopt_lazyload_exclude_array', $exclude_lazyload_array );
770
+            $exclude_lazyload_array = apply_filters('autoptimize_filter_imgopt_lazyload_exclude_array', $exclude_lazyload_array);
771 771
         }
772 772
 
773 773
         return $exclude_lazyload_array;
774 774
     }
775 775
 
776
-    public function inject_classes_in_tag( $tag, $target_class ) {
777
-        if ( strpos( $tag, 'class=' ) !== false ) {
778
-            $tag = preg_replace( '/(\sclass\s?=\s?("|\'))/', '$1' . $target_class, $tag );
776
+    public function inject_classes_in_tag($tag, $target_class) {
777
+        if (strpos($tag, 'class=') !== false) {
778
+            $tag = preg_replace('/(\sclass\s?=\s?("|\'))/', '$1'.$target_class, $tag);
779 779
         } else {
780
-            $tag = str_replace( '<img ', '<img class="' . trim( $target_class ) . '" ', $tag );
780
+            $tag = str_replace('<img ', '<img class="'.trim($target_class).'" ', $tag);
781 781
         }
782 782
 
783 783
         return $tag;
784 784
     }
785 785
 
786
-    public function get_default_lazyload_placeholder( $imgopt_w, $imgopt_h ) {
787
-        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';
786
+    public function get_default_lazyload_placeholder($imgopt_w, $imgopt_h) {
787
+        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';
788 788
     }
789 789
 
790 790
     public function should_webp() {
791 791
         static $webp_return = null;
792 792
 
793
-        if ( is_null( $webp_return ) ) {
793
+        if (is_null($webp_return)) {
794 794
             // webp only works if imgopt and lazyload are also active.
795
-            if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_4'] ) && ! empty( $this->options['autoptimize_imgopt_checkbox_field_3'] ) && $this->imgopt_active() ) {
795
+            if (!empty($this->options['autoptimize_imgopt_checkbox_field_4']) && !empty($this->options['autoptimize_imgopt_checkbox_field_3']) && $this->imgopt_active()) {
796 796
                 $webp_return = true;
797 797
             } else {
798 798
                 $webp_return = false;
@@ -813,14 +813,14 @@  discard block
 block discarded – undo
813 813
             'autoptimize_imgopt',
814 814
             'manage_options',
815 815
             'autoptimize_imgopt',
816
-            array( $this, 'imgopt_options_page' )
816
+            array($this, 'imgopt_options_page')
817 817
         );
818
-        register_setting( 'autoptimize_imgopt_settings', 'autoptimize_imgopt_settings' );
818
+        register_setting('autoptimize_imgopt_settings', 'autoptimize_imgopt_settings');
819 819
     }
820 820
 
821
-    public function add_imgopt_tab( $in )
821
+    public function add_imgopt_tab($in)
822 822
     {
823
-        $in = array_merge( $in, array( 'autoptimize_imgopt' => __( 'Images', 'autoptimize' ) ) );
823
+        $in = array_merge($in, array('autoptimize_imgopt' => __('Images', 'autoptimize')));
824 824
 
825 825
         return $in;
826 826
     }
@@ -828,7 +828,7 @@  discard block
 block discarded – undo
828 828
     public function imgopt_options_page()
829 829
     {
830 830
         // Check querystring for "refreshCacheChecker" and call cachechecker if so.
831
-        if ( array_key_exists( 'refreshImgProvStats', $_GET ) && 1 == $_GET['refreshImgProvStats'] ) {
831
+        if (array_key_exists('refreshImgProvStats', $_GET) && 1 == $_GET['refreshImgProvStats']) {
832 832
             $this->query_img_provider_stats();
833 833
         }
834 834
 
@@ -841,45 +841,45 @@  discard block
 block discarded – undo
841 841
         #autoptimize_imgopt_descr{font-size: 120%;}
842 842
     </style>
843 843
     <div class="wrap">
844
-    <h1><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?></h1>
844
+    <h1><?php _e('Autoptimize Settings', 'autoptimize'); ?></h1>
845 845
         <?php echo autoptimizeConfig::ao_admin_tabs(); ?>
846
-        <?php if ( 'down' === $options['availabilities']['extra_imgopt']['status'] ) { ?>
846
+        <?php if ('down' === $options['availabilities']['extra_imgopt']['status']) { ?>
847 847
             <div class="notice-warning notice"><p>
848 848
             <?php
849 849
             // translators: "Autoptimize support forum" will appear in a "a href".
850
-            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>' );
850
+            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>');
851 851
             ?>
852 852
             </p></div>
853 853
         <?php } ?>
854 854
 
855
-        <?php if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] && ! autoptimizeImages::instance()->launch_ok() ) { ?>
855
+        <?php if ('launch' === $options['availabilities']['extra_imgopt']['status'] && !autoptimizeImages::instance()->launch_ok()) { ?>
856 856
             <div class="notice-warning notice"><p>
857
-            <?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' ); ?>
857
+            <?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'); ?>
858 858
             </p></div>
859 859
         <?php } ?>
860 860
 
861
-        <?php if ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'get_active_modules' ) && in_array( 'photon', Jetpack::get_active_modules() ) ) { ?>
861
+        <?php if (class_exists('Jetpack') && method_exists('Jetpack', 'get_active_modules') && in_array('photon', Jetpack::get_active_modules())) { ?>
862 862
             <div class="notice-warning notice"><p>
863 863
             <?php
864 864
             // translators: "disable  Jetpack's site accelerator for images" will appear in a "a href" linking to the jetpack settings page.
865
-            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>' );
865
+            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>');
866 866
             ?>
867 867
             </p></div>
868 868
         <?php } ?>
869 869
     <form id='ao_settings_form' action='options.php' method='post'>
870
-        <?php settings_fields( 'autoptimize_imgopt_settings' ); ?>
871
-        <h2><?php _e( 'Image optimization', 'autoptimize' ); ?></h2>
872
-        <span id='autoptimize_imgopt_descr'><?php _e( 'Make your site significantly faster by just ticking a couple of checkboxes to optimize and lazy load your images, WebP support included!', 'autoptimize' ); ?></span>
870
+        <?php settings_fields('autoptimize_imgopt_settings'); ?>
871
+        <h2><?php _e('Image optimization', 'autoptimize'); ?></h2>
872
+        <span id='autoptimize_imgopt_descr'><?php _e('Make your site significantly faster by just ticking a couple of checkboxes to optimize and lazy load your images, WebP support included!', 'autoptimize'); ?></span>
873 873
         <table class="form-table">
874 874
             <tr>
875
-                <th scope="row"><?php _e( 'Optimize Images', 'autoptimize' ); ?></th>
875
+                <th scope="row"><?php _e('Optimize Images', 'autoptimize'); ?></th>
876 876
                 <td>
877
-                    <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>
877
+                    <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>
878 878
                     <?php
879 879
                     // show shortpixel status.
880 880
                     $_notice = autoptimizeImages::instance()->get_status_notice();
881
-                    if ( $_notice ) {
882
-                        switch ( $_notice['status'] ) {
881
+                    if ($_notice) {
882
+                        switch ($_notice['status']) {
883 883
                             case 2:
884 884
                                 $_notice_color = 'green';
885 885
                                 break;
@@ -895,28 +895,28 @@  discard block
 block discarded – undo
895 895
                             default:
896 896
                                 $_notice_color = 'green';
897 897
                         }
898
-                        echo apply_filters( 'autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:' . $_notice_color . ';">' . __( 'Shortpixel status: ', 'autoptimize' ) . '</span></strong>' . $_notice['notice'] . '</p>' );
898
+                        echo apply_filters('autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:'.$_notice_color.';">'.__('Shortpixel status: ', 'autoptimize').'</span></strong>'.$_notice['notice'].'</p>');
899 899
                     } else {
900 900
                         // translators: link points to shortpixel.
901
-                        $upsell_msg_1 = '<p>' . sprintf( __( 'Get more Google love and improve your website\'s loading speed by having the images optimized on the fly (also in the "next-gen" WebP image format) by %1$sShortPixel%2$s and then cached and served fast from Shortpixel\'s global CDN.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>' );
902
-                        if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] ) {
903
-                            $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' );
901
+                        $upsell_msg_1 = '<p>'.sprintf(__('Get more Google love and improve your website\'s loading speed by having the images optimized on the fly (also in the "next-gen" WebP image format) by %1$sShortPixel%2$s and then cached and served fast from Shortpixel\'s global CDN.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>');
902
+                        if ('launch' === $options['availabilities']['extra_imgopt']['status']) {
903
+                            $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');
904 904
                         } else {
905 905
                             // translators: link points to shortpixel.
906
-                            $upsell_msg_2 = sprintf( __( '%1$sSign-up now%2$s to receive a 1 000 bonus + 50&#37; more image optimization credits regardless of the traffic used. More image optimizations can be purchased starting with $4.99.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>' );
906
+                            $upsell_msg_2 = sprintf(__('%1$sSign-up now%2$s to receive a 1 000 bonus + 50&#37; more image optimization credits regardless of the traffic used. More image optimizations can be purchased starting with $4.99.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>');
907 907
                         }
908
-                        echo apply_filters( 'autoptimize_imgopt_imgopt_settings_copy', $upsell_msg_1 . ' ' . $upsell_msg_2 . '</p>' );
908
+                        echo apply_filters('autoptimize_imgopt_imgopt_settings_copy', $upsell_msg_1.' '.$upsell_msg_2.'</p>');
909 909
                     }
910 910
                     // translators: link points to shortpixel FAQ.
911
-                    $faqcopy = sprintf( __( '<strong>Questions</strong>? Have a look at the %1$sShortPixel FAQ%2$s!', 'autoptimize' ), '<strong><a href="https://shortpixel.helpscoutdocs.com/category/60-shortpixel-ai-cdn" target="_blank">', '</strong></a>' );
911
+                    $faqcopy = sprintf(__('<strong>Questions</strong>? Have a look at the %1$sShortPixel FAQ%2$s!', 'autoptimize'), '<strong><a href="https://shortpixel.helpscoutdocs.com/category/60-shortpixel-ai-cdn" target="_blank">', '</strong></a>');
912 912
                     // translators: links points to shortpixel TOS & Privacy Policy.
913
-                    $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>' );
914
-                    echo apply_filters( 'autoptimize_imgopt_imgopt_settings_tos', '<p>' . $faqcopy . ' ' . $toscopy . '</p>' );
913
+                    $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>');
914
+                    echo apply_filters('autoptimize_imgopt_imgopt_settings_tos', '<p>'.$faqcopy.' '.$toscopy.'</p>');
915 915
                     ?>
916 916
                 </td>
917 917
             </tr>
918
-            <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"'; } ?>>
919
-                <th scope="row"><?php _e( 'Image Optimization quality', 'autoptimize' ); ?></th>
918
+            <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"'; } ?>>
919
+                <th scope="row"><?php _e('Image Optimization quality', 'autoptimize'); ?></th>
920 920
                 <td>
921 921
                     <label>
922 922
                     <select name='autoptimize_imgopt_settings[autoptimize_imgopt_select_field_2]'>
@@ -924,12 +924,12 @@  discard block
 block discarded – undo
924 924
                         $_imgopt_array = autoptimizeImages::instance()->get_img_quality_array();
925 925
                         $_imgopt_val   = autoptimizeImages::instance()->get_img_quality_setting();
926 926
 
927
-                        foreach ( $_imgopt_array as $key => $value ) {
928
-                            echo '<option value="' . $key . '"';
929
-                            if ( $_imgopt_val == $key ) {
927
+                        foreach ($_imgopt_array as $key => $value) {
928
+                            echo '<option value="'.$key.'"';
929
+                            if ($_imgopt_val == $key) {
930 930
                                 echo ' selected';
931 931
                             }
932
-                            echo '>' . ucfirst( $value ) . '</option>';
932
+                            echo '>'.ucfirst($value).'</option>';
933 933
                         }
934 934
                         echo "\n";
935 935
                         ?>
@@ -938,31 +938,31 @@  discard block
 block discarded – undo
938 938
                     <p>
939 939
                         <?php
940 940
                             // translators: link points to shortpixel image test page.
941
-                            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>' ) );
941
+                            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>'));
942 942
                         ?>
943 943
                     </p>
944 944
                 </td>
945 945
             </tr>
946
-            <tr id='autoptimize_imgopt_webp' <?php if ( ! array_key_exists( 'autoptimize_imgopt_checkbox_field_1', $options ) || ( isset( $options['autoptimize_imgopt_checkbox_field_1'] ) && '1' !== $options['autoptimize_imgopt_checkbox_field_1'] ) ) { echo 'class="hidden"'; } ?>>
947
-                <th scope="row"><?php _e( 'Load WebP in supported browsers?', 'autoptimize' ); ?></th>
946
+            <tr id='autoptimize_imgopt_webp' <?php if (!array_key_exists('autoptimize_imgopt_checkbox_field_1', $options) || (isset($options['autoptimize_imgopt_checkbox_field_1']) && '1' !== $options['autoptimize_imgopt_checkbox_field_1'])) { echo 'class="hidden"'; } ?>>
947
+                <th scope="row"><?php _e('Load WebP in supported browsers?', 'autoptimize'); ?></th>
948 948
                 <td>
949
-                    <label><input type='checkbox' id='autoptimize_imgopt_webp_checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_4]' <?php if ( ! empty( $options['autoptimize_imgopt_checkbox_field_4'] ) && '1' === $options['autoptimize_imgopt_checkbox_field_3'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Automatically serve "next-gen" WebP image format to any browser that supports it (requires lazy load to be active).', 'autoptimize' ); ?></label>
949
+                    <label><input type='checkbox' id='autoptimize_imgopt_webp_checkbox' name='autoptimize_imgopt_settings[autoptimize_imgopt_checkbox_field_4]' <?php if (!empty($options['autoptimize_imgopt_checkbox_field_4']) && '1' === $options['autoptimize_imgopt_checkbox_field_3']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Automatically serve "next-gen" WebP image format to any browser that supports it (requires lazy load to be active).', 'autoptimize'); ?></label>
950 950
                 </td>
951 951
             </tr>
952 952
             <tr>
953
-                <th scope="row"><?php _e( 'Lazy-load images?', 'autoptimize' ); ?></th>
953
+                <th scope="row"><?php _e('Lazy-load images?', 'autoptimize'); ?></th>
954 954
                 <td>
955
-                    <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>
955
+                    <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>
956 956
                 </td>
957 957
             </tr>
958
-            <tr id='autoptimize_imgopt_lazyload_exclusions' <?php if ( ! array_key_exists( 'autoptimize_imgopt_checkbox_field_3', $options ) || ( isset( $options['autoptimize_imgopt_checkbox_field_3'] ) && '1' !== $options['autoptimize_imgopt_checkbox_field_3'] ) ) { echo 'class="hidden"'; } ?>>
959
-                <th scope="row"><?php _e( 'Lazy-load exclusions', 'autoptimize' ); ?></th>
958
+            <tr id='autoptimize_imgopt_lazyload_exclusions' <?php if (!array_key_exists('autoptimize_imgopt_checkbox_field_3', $options) || (isset($options['autoptimize_imgopt_checkbox_field_3']) && '1' !== $options['autoptimize_imgopt_checkbox_field_3'])) { echo 'class="hidden"'; } ?>>
959
+                <th scope="row"><?php _e('Lazy-load exclusions', 'autoptimize'); ?></th>
960 960
                 <td>
961
-                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_lazyload_exclusions' name='autoptimize_imgopt_settings[autoptimize_imgopt_text_field_5]' value='<?php if ( ! empty( $options['autoptimize_imgopt_text_field_5'] ) ) { echo esc_attr( $options['autoptimize_imgopt_text_field_5'] ); } ?>'><br /><?php _e( 'Comma-separated list of to be excluded image classes or filenames.', 'autoptimize' ); ?></label>
961
+                    <label><input type='text' style='width:80%' id='autoptimize_imgopt_lazyload_exclusions' name='autoptimize_imgopt_settings[autoptimize_imgopt_text_field_5]' value='<?php if (!empty($options['autoptimize_imgopt_text_field_5'])) { echo esc_attr($options['autoptimize_imgopt_text_field_5']); } ?>'><br /><?php _e('Comma-separated list of to be excluded image classes or filenames.', 'autoptimize'); ?></label>
962 962
                 </td>
963 963
             </tr>
964 964
         </table>
965
-        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save Changes', 'autoptimize' ); ?>" /></p>
965
+        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'autoptimize'); ?>" /></p>
966 966
     </form>
967 967
     <script>
968 968
         jQuery(document).ready(function() {
@@ -998,37 +998,37 @@  discard block
 block discarded – undo
998 998
      * Ïmg opt status as used on dashboard.
999 999
      */
1000 1000
     public function get_imgopt_status_notice() {
1001
-        if ( $this->imgopt_active() ) {
1001
+        if ($this->imgopt_active()) {
1002 1002
             $_imgopt_notice = '';
1003
-            $_stat          = get_option( 'autoptimize_imgopt_provider_stat', '' );
1003
+            $_stat          = get_option('autoptimize_imgopt_provider_stat', '');
1004 1004
             $_site_host     = AUTOPTIMIZE_SITE_DOMAIN;
1005
-            $_imgopt_upsell = 'https://shortpixel.com/aospai/af/GWRGFLW109483/' . $_site_host;
1005
+            $_imgopt_upsell = 'https://shortpixel.com/aospai/af/GWRGFLW109483/'.$_site_host;
1006 1006
 
1007
-            if ( is_array( $_stat ) ) {
1008
-                if ( 1 == $_stat['Status'] ) {
1007
+            if (is_array($_stat)) {
1008
+                if (1 == $_stat['Status']) {
1009 1009
                     // translators: "add more credits" will appear in a "a href".
1010
-                    $_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>' );
1010
+                    $_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>');
1011 1011
                 } elseif ( -1 == $_stat['Status'] || -2 == $_stat['Status'] ) {
1012 1012
                     // translators: "add more credits" will appear in a "a href".
1013
-                    $_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>' );
1014
-                    $_imgopt_stats_refresh_url = add_query_arg( array(
1013
+                    $_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>');
1014
+                    $_imgopt_stats_refresh_url = add_query_arg(array(
1015 1015
                         'page'                => 'autoptimize_imgopt',
1016 1016
                         'refreshImgProvStats' => '1',
1017
-                    ), admin_url( 'options-general.php' ) );
1018
-                    if ( $_stat && array_key_exists( 'timestamp', $_stat ) && ! empty( $_stat['timestamp'] ) ) {
1019
-                        $_imgopt_stats_last_run = __( 'based on status at ', 'autoptimize' ) . date_i18n( get_option( 'time_format' ), $_stat['timestamp'] );
1017
+                    ), admin_url('options-general.php'));
1018
+                    if ($_stat && array_key_exists('timestamp', $_stat) && !empty($_stat['timestamp'])) {
1019
+                        $_imgopt_stats_last_run = __('based on status at ', 'autoptimize').date_i18n(get_option('time_format'), $_stat['timestamp']);
1020 1020
                     } else {
1021
-                        $_imgopt_stats_last_run = __( 'based on previously fetched data', 'autoptimize' );
1021
+                        $_imgopt_stats_last_run = __('based on previously fetched data', 'autoptimize');
1022 1022
                     }
1023
-                    $_imgopt_notice .= ' (' . $_imgopt_stats_last_run . ', ';
1023
+                    $_imgopt_notice .= ' ('.$_imgopt_stats_last_run.', ';
1024 1024
                     // translators: "here to refresh" links to the Autoptimize Extra page and forces a refresh of the img opt stats.
1025
-                    $_imgopt_notice .= sprintf( __( 'click %1$shere to refresh%2$s', 'autoptimize' ), '<a href="' . $_imgopt_stats_refresh_url . '">', '</a>).' );
1025
+                    $_imgopt_notice .= sprintf(__('click %1$shere to refresh%2$s', 'autoptimize'), '<a href="'.$_imgopt_stats_refresh_url.'">', '</a>).');
1026 1026
                 } else {
1027 1027
                     $_imgopt_upsell = 'https://shortpixel.com/g/af/GWRGFLW109483';
1028 1028
                     // translators: "log in to check your account" will appear in a "a href".
1029
-                    $_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>' );
1029
+                    $_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>');
1030 1030
                 }
1031
-                $_imgopt_notice = apply_filters( 'autoptimize_filter_imgopt_notice', $_imgopt_notice );
1031
+                $_imgopt_notice = apply_filters('autoptimize_filter_imgopt_notice', $_imgopt_notice);
1032 1032
 
1033 1033
                 return array(
1034 1034
                     'status' => $_stat['Status'],
@@ -1049,14 +1049,14 @@  discard block
 block discarded – undo
1049 1049
      * Get img provider stats (used to display notice).
1050 1050
      */
1051 1051
     public function query_img_provider_stats() {
1052
-        if ( ! empty( $this->options['autoptimize_imgopt_checkbox_field_1'] ) ) {
1052
+        if (!empty($this->options['autoptimize_imgopt_checkbox_field_1'])) {
1053 1053
             $url      = '';
1054
-            $endpoint = $this->get_imgopt_host() . 'read-domain/';
1054
+            $endpoint = $this->get_imgopt_host().'read-domain/';
1055 1055
             $domain   = AUTOPTIMIZE_SITE_DOMAIN;
1056 1056
 
1057 1057
             // make sure parse_url result makes sense, keeping $url empty if not.
1058
-            if ( $domain && ! empty( $domain ) ) {
1059
-                $url = $endpoint . $domain;
1058
+            if ($domain && !empty($domain)) {
1059
+                $url = $endpoint.$domain;
1060 1060
             }
1061 1061
 
1062 1062
             $url = apply_filters(
@@ -1066,12 +1066,12 @@  discard block
 block discarded – undo
1066 1066
 
1067 1067
             // only do the remote call if $url is not empty to make sure no parse_url
1068 1068
             // weirdness results in useless calls.
1069
-            if ( ! empty( $url ) ) {
1070
-                $response = wp_remote_get( $url );
1071
-                if ( ! is_wp_error( $response ) ) {
1072
-                    if ( '200' == wp_remote_retrieve_response_code( $response ) ) {
1073
-                        $stats = json_decode( wp_remote_retrieve_body( $response ), true );
1074
-                        update_option( 'autoptimize_imgopt_provider_stat', $stats );
1069
+            if (!empty($url)) {
1070
+                $response = wp_remote_get($url);
1071
+                if (!is_wp_error($response)) {
1072
+                    if ('200' == wp_remote_retrieve_response_code($response)) {
1073
+                        $stats = json_decode(wp_remote_retrieve_body($response), true);
1074
+                        update_option('autoptimize_imgopt_provider_stat', $stats);
1075 1075
                     }
1076 1076
                 }
1077 1077
             }
@@ -1094,15 +1094,15 @@  discard block
 block discarded – undo
1094 1094
     {
1095 1095
         static $launch_status = null;
1096 1096
 
1097
-        if ( null === $launch_status ) {
1097
+        if (null === $launch_status) {
1098 1098
             $avail_imgopt  = $this->options['availabilities']['extra_imgopt'];
1099
-            $magic_number  = intval( substr( md5( parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) ), 0, 3 ), 16 );
1100
-            $has_launched  = get_option( 'autoptimize_imgopt_launched', '' );
1099
+            $magic_number  = intval(substr(md5(parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST)), 0, 3), 16);
1100
+            $has_launched  = get_option('autoptimize_imgopt_launched', '');
1101 1101
             $launch_status = false;
1102
-            if ( $has_launched || ( is_array( $avail_imgopt ) && array_key_exists( 'launch-threshold', $avail_imgopt ) && $magic_number < $avail_imgopt['launch-threshold'] ) ) {
1102
+            if ($has_launched || (is_array($avail_imgopt) && array_key_exists('launch-threshold', $avail_imgopt) && $magic_number < $avail_imgopt['launch-threshold'])) {
1103 1103
                 $launch_status = true;
1104
-                if ( ! $has_launched ) {
1105
-                    update_option( 'autoptimize_imgopt_launched', 'on' );
1104
+                if (!$has_launched) {
1105
+                    update_option('autoptimize_imgopt_launched', 'on');
1106 1106
                 }
1107 1107
             }
1108 1108
         }
@@ -1119,16 +1119,16 @@  discard block
 block discarded – undo
1119 1119
     public function get_imgopt_provider_userstatus() {
1120 1120
         static $_provider_userstatus = null;
1121 1121
 
1122
-        if ( is_null( $_provider_userstatus ) ) {
1123
-            $_stat = get_option( 'autoptimize_imgopt_provider_stat', '' );
1124
-            if ( is_array( $_stat ) ) {
1125
-                if ( array_key_exists( 'Status', $_stat ) ) {
1122
+        if (is_null($_provider_userstatus)) {
1123
+            $_stat = get_option('autoptimize_imgopt_provider_stat', '');
1124
+            if (is_array($_stat)) {
1125
+                if (array_key_exists('Status', $_stat)) {
1126 1126
                     $_provider_userstatus['Status'] = $_stat['Status'];
1127 1127
                 } else {
1128 1128
                     // if no stats then we assume all is well.
1129 1129
                     $_provider_userstatus['Status'] = 2;
1130 1130
                 }
1131
-                if ( array_key_exists( 'timestamp', $_stat ) ) {
1131
+                if (array_key_exists('timestamp', $_stat)) {
1132 1132
                     $_provider_userstatus['timestamp'] = $_stat['timestamp'];
1133 1133
                 } else {
1134 1134
                     // if no timestamp then we return "".
@@ -1141,27 +1141,27 @@  discard block
 block discarded – undo
1141 1141
     }
1142 1142
 
1143 1143
     public function get_status_notice() {
1144
-        if ( $this->imgopt_active() ) {
1144
+        if ($this->imgopt_active()) {
1145 1145
             $notice = '';
1146 1146
             $stat   = $this->get_imgopt_provider_userstatus();
1147
-            $upsell = 'https://shortpixel.com/aospai/af/GWRGFLW109483/' . AUTOPTIMIZE_SITE_DOMAIN;
1147
+            $upsell = 'https://shortpixel.com/aospai/af/GWRGFLW109483/'.AUTOPTIMIZE_SITE_DOMAIN;
1148 1148
             $assoc  = 'https://shortpixel.helpscoutdocs.com/article/94-how-to-associate-a-domain-to-my-account';
1149 1149
 
1150
-            if ( is_array( $stat ) ) {
1151
-                if ( 1 == $stat['Status'] ) {
1150
+            if (is_array($stat)) {
1151
+                if (1 == $stat['Status']) {
1152 1152
                     // translators: "add more credits" will appear in a "a href".
1153
-                    $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 rel="noopener noreferrer" href="' . $upsell . '" target="_blank">', '</a>' );
1153
+                    $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 rel="noopener noreferrer" href="'.$upsell.'" target="_blank">', '</a>');
1154 1154
                 } elseif ( -1 == $stat['Status'] || -2 == $stat['Status'] ) {
1155 1155
                     // translators: "add more credits" will appear in a "a href".
1156
-                    $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 rel="noopener noreferrer" href="' . $upsell . '" target="_blank">', '</a>' );
1156
+                    $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 rel="noopener noreferrer" href="'.$upsell.'" target="_blank">', '</a>');
1157 1157
                     // translators: "associate your domain" will appear in a "a href".
1158
-                    $notice = $notice . ' ' . sprintf( __( 'If you already have enough credits then you may need to %1$sassociate your domain%2$s to your Shortpixel account.', 'autoptimize' ), '<a rel="noopener noreferrer" href="' . $assoc . '" target="_blank">', '</a>' );
1158
+                    $notice = $notice.' '.sprintf(__('If you already have enough credits then you may need to %1$sassociate your domain%2$s to your Shortpixel account.', 'autoptimize'), '<a rel="noopener noreferrer" href="'.$assoc.'" target="_blank">', '</a>');
1159 1159
                 } else {
1160 1160
                     $upsell = 'https://shortpixel.com/g/af/GWRGFLW109483';
1161 1161
                     // translators: "log in to check your account" will appear in a "a href".
1162
-                    $notice = sprintf( __( 'Your ShortPixel image optimization and CDN quota are in good shape, %1$slog in to check your account%2$s.', 'autoptimize' ), '<a rel="noopener noreferrer" href="' . $upsell . '" target="_blank">', '</a>' );
1162
+                    $notice = sprintf(__('Your ShortPixel image optimization and CDN quota are in good shape, %1$slog in to check your account%2$s.', 'autoptimize'), '<a rel="noopener noreferrer" href="'.$upsell.'" target="_blank">', '</a>');
1163 1163
                 }
1164
-                $notice = apply_filters( 'autoptimize_filter_imgopt_notice', $notice );
1164
+                $notice = apply_filters('autoptimize_filter_imgopt_notice', $notice);
1165 1165
 
1166 1166
                 return array(
1167 1167
                     'status' => $stat['Status'],
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
 
@@ -23,7 +23,7 @@  discard block
 block discarded – undo
23 23
      */
24 24
     public $debug_log = false;
25 25
 
26
-    public function __construct( $content )
26
+    public function __construct($content)
27 27
     {
28 28
         $this->content = $content;
29 29
     }
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
      *
36 36
      * @return bool
37 37
      */
38
-    abstract public function read( $options );
38
+    abstract public function read($options);
39 39
 
40 40
     /**
41 41
      * Joins and optimizes collected things.
@@ -66,40 +66,40 @@  discard block
 block discarded – undo
66 66
      *
67 67
      * @return bool|string
68 68
      */
69
-    public function getpath( $url )
69
+    public function getpath($url)
70 70
     {
71
-        $url = apply_filters( 'autoptimize_filter_cssjs_alter_url', $url );
71
+        $url = apply_filters('autoptimize_filter_cssjs_alter_url', $url);
72 72
 
73
-        if ( false !== strpos( $url, '%' ) ) {
74
-            $url = urldecode( $url );
73
+        if (false !== strpos($url, '%')) {
74
+            $url = urldecode($url);
75 75
         }
76 76
 
77
-        $site_host    = parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST );
78
-        $content_host = parse_url( AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST );
77
+        $site_host    = parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST);
78
+        $content_host = parse_url(AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST);
79 79
 
80 80
         // Normalizing attempts...
81
-        $double_slash_position = strpos( $url, '//' );
82
-        if ( 0 === $double_slash_position ) {
83
-            if ( is_ssl() ) {
84
-                $url = 'https:' . $url;
81
+        $double_slash_position = strpos($url, '//');
82
+        if (0 === $double_slash_position) {
83
+            if (is_ssl()) {
84
+                $url = 'https:'.$url;
85 85
             } else {
86
-                $url = 'http:' . $url;
86
+                $url = 'http:'.$url;
87 87
             }
88
-        } elseif ( ( false === $double_slash_position ) && ( false === strpos( $url, $site_host ) ) ) {
89
-            if ( AUTOPTIMIZE_WP_SITE_URL === $site_host ) {
90
-                $url = AUTOPTIMIZE_WP_SITE_URL . $url;
88
+        } elseif ((false === $double_slash_position) && (false === strpos($url, $site_host))) {
89
+            if (AUTOPTIMIZE_WP_SITE_URL === $site_host) {
90
+                $url = AUTOPTIMIZE_WP_SITE_URL.$url;
91 91
             } else {
92
-                $url = AUTOPTIMIZE_WP_SITE_URL . autoptimizeUtils::path_canonicalize( $url );
92
+                $url = AUTOPTIMIZE_WP_SITE_URL.autoptimizeUtils::path_canonicalize($url);
93 93
             }
94 94
         }
95 95
 
96
-        if ( $site_host !== $content_host ) {
97
-            $url = str_replace( AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL . AUTOPTIMIZE_WP_CONTENT_NAME, $url );
96
+        if ($site_host !== $content_host) {
97
+            $url = str_replace(AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL.AUTOPTIMIZE_WP_CONTENT_NAME, $url);
98 98
         }
99 99
 
100 100
         // First check; hostname wp site should be hostname of url!
101
-        $url_host = @parse_url( $url, PHP_URL_HOST ); // @codingStandardsIgnoreLine
102
-        if ( $url_host !== $site_host ) {
101
+        $url_host = @parse_url($url, PHP_URL_HOST); // @codingStandardsIgnoreLine
102
+        if ($url_host !== $site_host) {
103 103
             /**
104 104
              * First try to get all domains from WPML (if available)
105 105
              * then explicitely declare $this->cdn_url as OK as well
@@ -108,20 +108,20 @@  discard block
 block discarded – undo
108 108
              */
109 109
             $multidomains = array();
110 110
 
111
-            $multidomains_wpml = apply_filters( 'wpml_setting', array(), 'language_domains' );
112
-            if ( ! empty( $multidomains_wpml ) ) {
113
-                $multidomains = array_map( array( $this, 'get_url_hostname' ), $multidomains_wpml );
111
+            $multidomains_wpml = apply_filters('wpml_setting', array(), 'language_domains');
112
+            if (!empty($multidomains_wpml)) {
113
+                $multidomains = array_map(array($this, 'get_url_hostname'), $multidomains_wpml);
114 114
             }
115 115
 
116
-            if ( ! empty( $this->cdn_url ) ) {
117
-                $multidomains[] = parse_url( $this->cdn_url, PHP_URL_HOST );
116
+            if (!empty($this->cdn_url)) {
117
+                $multidomains[] = parse_url($this->cdn_url, PHP_URL_HOST);
118 118
             }
119 119
 
120
-            $multidomains = apply_filters( 'autoptimize_filter_cssjs_multidomain', $multidomains );
120
+            $multidomains = apply_filters('autoptimize_filter_cssjs_multidomain', $multidomains);
121 121
 
122
-            if ( ! empty( $multidomains ) ) {
123
-                if ( in_array( $url_host, $multidomains ) ) {
124
-                    $url = str_replace( $url_host, $site_host, $url );
122
+            if (!empty($multidomains)) {
123
+                if (in_array($url_host, $multidomains)) {
124
+                    $url = str_replace($url_host, $site_host, $url);
125 125
                 } else {
126 126
                     return false;
127 127
                 }
@@ -131,28 +131,28 @@  discard block
 block discarded – undo
131 131
         }
132 132
 
133 133
         // Try to remove "wp root url" from url while not minding http<>https.
134
-        $tmp_ao_root = preg_replace( '/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL );
134
+        $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL);
135 135
 
136
-        if ( $site_host !== $content_host ) {
136
+        if ($site_host !== $content_host) {
137 137
             // As we replaced the content-domain with the site-domain, we should match against that.
138
-            $tmp_ao_root = preg_replace( '/https?:/', '', AUTOPTIMIZE_WP_SITE_URL );
138
+            $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_SITE_URL);
139 139
         }
140 140
 
141
-        $tmp_url = preg_replace( '/https?:/', '', $url );
142
-        $path    = str_replace( $tmp_ao_root, '', $tmp_url );
141
+        $tmp_url = preg_replace('/https?:/', '', $url);
142
+        $path    = str_replace($tmp_ao_root, '', $tmp_url);
143 143
 
144 144
         // If path starts with :// or //, this is not a URL in the WP context and
145 145
         // we have to assume we can't aggregate.
146
-        if ( preg_match( '#^:?//#', $path ) ) {
146
+        if (preg_match('#^:?//#', $path)) {
147 147
             // External script/css (adsense, etc).
148 148
             return false;
149 149
         }
150 150
 
151 151
         // Prepend with WP_ROOT_DIR to have full path to file.
152
-        $path = str_replace( '//', '/', WP_ROOT_DIR . $path );
152
+        $path = str_replace('//', '/', WP_ROOT_DIR.$path);
153 153
 
154 154
         // Final check: does file exist and is it readable?
155
-        if ( file_exists( $path ) && is_file( $path ) && is_readable( $path ) ) {
155
+        if (file_exists($path) && is_file($path) && is_readable($path)) {
156 156
             return $path;
157 157
         } else {
158 158
             return false;
@@ -169,18 +169,18 @@  discard block
 block discarded – undo
169 169
      *
170 170
      * @return string
171 171
      */
172
-    protected function get_url_hostname( $url )
172
+    protected function get_url_hostname($url)
173 173
     {
174 174
         // Checking that the url starts with something vaguely resembling a protocol.
175
-        if ( ( 0 !== strpos( $url, 'http' ) ) && ( 0 !== strpos( $url, '//' ) ) ) {
176
-            $url = 'http://' . $url;
175
+        if ((0 !== strpos($url, 'http')) && (0 !== strpos($url, '//'))) {
176
+            $url = 'http://'.$url;
177 177
         }
178 178
 
179 179
         // Grab the hostname.
180
-        $hostname = parse_url( $url, PHP_URL_HOST );
180
+        $hostname = parse_url($url, PHP_URL_HOST);
181 181
 
182 182
         // Fallback when parse_url() fails.
183
-        if ( empty( $hostname ) ) {
183
+        if (empty($hostname)) {
184 184
             $hostname = $url;
185 185
         }
186 186
 
@@ -194,7 +194,7 @@  discard block
 block discarded – undo
194 194
      *
195 195
      * @return string
196 196
      */
197
-    protected function hide_noptimize( $markup )
197
+    protected function hide_noptimize($markup)
198 198
     {
199 199
         return $this->replace_contents_with_marker_if_exists(
200 200
             'NOPTIMIZE',
@@ -211,9 +211,9 @@  discard block
 block discarded – undo
211 211
      *
212 212
      * @return string
213 213
      */
214
-    protected function restore_noptimize( $markup )
214
+    protected function restore_noptimize($markup)
215 215
     {
216
-        return $this->restore_marked_content( 'NOPTIMIZE', $markup );
216
+        return $this->restore_marked_content('NOPTIMIZE', $markup);
217 217
     }
218 218
 
219 219
     /**
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
      *
224 224
      * @return string
225 225
      */
226
-    protected function hide_iehacks( $markup )
226
+    protected function hide_iehacks($markup)
227 227
     {
228 228
         return $this->replace_contents_with_marker_if_exists(
229 229
             'IEHACK', // Marker name...
@@ -240,9 +240,9 @@  discard block
 block discarded – undo
240 240
      *
241 241
      * @return string
242 242
      */
243
-    protected function restore_iehacks( $markup )
243
+    protected function restore_iehacks($markup)
244 244
     {
245
-        return $this->restore_marked_content( 'IEHACK', $markup );
245
+        return $this->restore_marked_content('IEHACK', $markup);
246 246
     }
247 247
 
248 248
     /**
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
      *
255 255
      * @return string
256 256
      */
257
-    protected function hide_comments( $markup )
257
+    protected function hide_comments($markup)
258 258
     {
259 259
         return $this->replace_contents_with_marker_if_exists(
260 260
             'COMMENTS',
@@ -272,9 +272,9 @@  discard block
 block discarded – undo
272 272
      *
273 273
      * @return string
274 274
      */
275
-    protected function restore_comments( $markup )
275
+    protected function restore_comments($markup)
276 276
     {
277
-        return $this->restore_marked_content( 'COMMENTS', $markup );
277
+        return $this->restore_marked_content('COMMENTS', $markup);
278 278
     }
279 279
 
280 280
     /**
@@ -285,44 +285,44 @@  discard block
 block discarded – undo
285 285
      *
286 286
      * @return string
287 287
      */
288
-    public function url_replace_cdn( $url )
288
+    public function url_replace_cdn($url)
289 289
     {
290 290
         // For 2.3 back-compat in which cdn-ing appeared to be automatically
291 291
         // including WP subfolder/subdirectory into account as part of cdn-ing,
292 292
         // even though it might've caused serious troubles in certain edge-cases.
293
-        $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed( $this->cdn_url );
293
+        $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed($this->cdn_url);
294 294
 
295 295
         // Allows API/filter to further tweak the cdn url...
296
-        $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', $cdn_url );
297
-        if ( ! empty( $cdn_url ) ) {
298
-            $this->debug_log( 'before=' . $url );
296
+        $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', $cdn_url);
297
+        if (!empty($cdn_url)) {
298
+            $this->debug_log('before='.$url);
299 299
 
300 300
             // Simple str_replace-based approach fails when $url is protocol-or-host-relative.
301
-            $is_protocol_relative = autoptimizeUtils::is_protocol_relative( $url );
302
-            $is_host_relative     = ( ! $is_protocol_relative && ( '/' === $url{0} ) );
303
-            $cdn_url              = rtrim( $cdn_url, '/' );
301
+            $is_protocol_relative = autoptimizeUtils::is_protocol_relative($url);
302
+            $is_host_relative     = (!$is_protocol_relative && ('/' === $url{0} ));
303
+            $cdn_url              = rtrim($cdn_url, '/');
304 304
 
305
-            if ( $is_host_relative ) {
305
+            if ($is_host_relative) {
306 306
                 // Prepending host-relative urls with the cdn url.
307
-                $url = $cdn_url . $url;
307
+                $url = $cdn_url.$url;
308 308
             } else {
309 309
                 // Either a protocol-relative or "regular" url, replacing it either way.
310
-                if ( $is_protocol_relative ) {
310
+                if ($is_protocol_relative) {
311 311
                     // Massage $site_url so that simple str_replace() still "works" by
312 312
                     // searching for the protocol-relative version of AUTOPTIMIZE_WP_SITE_URL.
313
-                    $site_url = str_replace( array( 'http:', 'https:' ), '', AUTOPTIMIZE_WP_SITE_URL );
313
+                    $site_url = str_replace(array('http:', 'https:'), '', AUTOPTIMIZE_WP_SITE_URL);
314 314
                 } else {
315 315
                     $site_url = AUTOPTIMIZE_WP_SITE_URL;
316 316
                 }
317
-                $this->debug_log( '`' . $site_url . '` -> `' . $cdn_url . '` in `' . $url . '`' );
318
-                $url = str_replace( $site_url, $cdn_url, $url );
317
+                $this->debug_log('`'.$site_url.'` -> `'.$cdn_url.'` in `'.$url.'`');
318
+                $url = str_replace($site_url, $cdn_url, $url);
319 319
             }
320 320
 
321
-            $this->debug_log( 'after=' . $url );
321
+            $this->debug_log('after='.$url);
322 322
         }
323 323
 
324 324
         // Allow API filter to take further care of CDN replacement.
325
-        $url = apply_filters( 'autoptimize_filter_base_replace_cdn', $url );
325
+        $url = apply_filters('autoptimize_filter_base_replace_cdn', $url);
326 326
 
327 327
         return $url;
328 328
     }
@@ -340,18 +340,18 @@  discard block
 block discarded – undo
340 340
      *
341 341
      * @return void
342 342
      */
343
-    protected function inject_in_html( $payload, $where )
343
+    protected function inject_in_html($payload, $where)
344 344
     {
345 345
         $warned   = false;
346
-        $position = autoptimizeUtils::strpos( $this->content, $where[0] );
347
-        if ( false !== $position ) {
346
+        $position = autoptimizeUtils::strpos($this->content, $where[0]);
347
+        if (false !== $position) {
348 348
             // Found the tag, setup content/injection as specified.
349
-            if ( 'after' === $where[1] ) {
350
-                $content = $where[0] . $payload;
351
-            } elseif ( 'replace' === $where[1] ) {
349
+            if ('after' === $where[1]) {
350
+                $content = $where[0].$payload;
351
+            } elseif ('replace' === $where[1]) {
352 352
                 $content = $payload;
353 353
             } else {
354
-                $content = $payload . $where[0];
354
+                $content = $payload.$where[0];
355 355
             }
356 356
             // Place where specified.
357 357
             $this->content = autoptimizeUtils::substr_replace(
@@ -360,14 +360,14 @@  discard block
 block discarded – undo
360 360
                 $position,
361 361
                 // Using plain strlen() should be safe here for now, since
362 362
                 // we're not searching for multibyte chars here still...
363
-                strlen( $where[0] )
363
+                strlen($where[0])
364 364
             );
365 365
         } else {
366 366
             // Couldn't find what was specified, just append and add a warning.
367 367
             $this->content .= $payload;
368
-            if ( ! $warned ) {
369
-                $tag_display    = str_replace( array( '<', '>' ), '', $where[0] );
370
-                $this->content .= '<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `' . $tag_display . '` missing --><!--/noptimize-->';
368
+            if (!$warned) {
369
+                $tag_display    = str_replace(array('<', '>'), '', $where[0]);
370
+                $this->content .= '<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `'.$tag_display.'` missing --><!--/noptimize-->';
371 371
                 $warned         = true;
372 372
             }
373 373
         }
@@ -381,10 +381,10 @@  discard block
 block discarded – undo
381 381
      *
382 382
      * @return bool
383 383
      */
384
-    protected function isremovable( $tag, $removables )
384
+    protected function isremovable($tag, $removables)
385 385
     {
386
-        foreach ( $removables as $match ) {
387
-            if ( false !== strpos( $tag, $match ) ) {
386
+        foreach ($removables as $match) {
387
+            if (false !== strpos($tag, $match)) {
388 388
                 return true;
389 389
             }
390 390
         }
@@ -399,10 +399,10 @@  discard block
 block discarded – undo
399 399
      *
400 400
      * @return string
401 401
      */
402
-    public function inject_minified_callback( $matches )
402
+    public function inject_minified_callback($matches)
403 403
     {
404 404
         static $conf = null;
405
-        if ( null === $conf ) {
405
+        if (null === $conf) {
406 406
             $conf = autoptimizeConfig::instance();
407 407
         }
408 408
 
@@ -417,62 +417,62 @@  discard block
 block discarded – undo
417 417
         $filehash = null;
418 418
 
419 419
         // Grab the parts we need.
420
-        $parts = explode( '|', $matches[1] );
421
-        if ( ! empty( $parts ) ) {
422
-            $filepath = isset( $parts[0] ) ? base64_decode( $parts[0] ) : null;
423
-            $filehash = isset( $parts[1] ) ? $parts[1] : null;
420
+        $parts = explode('|', $matches[1]);
421
+        if (!empty($parts)) {
422
+            $filepath = isset($parts[0]) ? base64_decode($parts[0]) : null;
423
+            $filehash = isset($parts[1]) ? $parts[1] : null;
424 424
         }
425 425
 
426 426
         // Bail early if something's not right...
427
-        if ( ! $filepath || ! $filehash ) {
427
+        if (!$filepath || !$filehash) {
428 428
             return "\n";
429 429
         }
430 430
 
431
-        $filecontent = file_get_contents( $filepath );
431
+        $filecontent = file_get_contents($filepath);
432 432
 
433 433
         // Some things are differently handled for css/js...
434
-        $is_js_file = ( '.js' === substr( $filepath, -3, 3 ) );
434
+        $is_js_file = ('.js' === substr($filepath, -3, 3));
435 435
 
436 436
         $is_css_file = false;
437
-        if ( ! $is_js_file ) {
438
-            $is_css_file = ( '.css' === substr( $filepath, -4, 4 ) );
437
+        if (!$is_js_file) {
438
+            $is_css_file = ('.css' === substr($filepath, -4, 4));
439 439
         }
440 440
 
441 441
         // BOMs being nuked here unconditionally (regardless of where they are)!
442
-        $filecontent = preg_replace( "#\x{EF}\x{BB}\x{BF}#", '', $filecontent );
442
+        $filecontent = preg_replace("#\x{EF}\x{BB}\x{BF}#", '', $filecontent);
443 443
 
444 444
         // Remove comments and blank lines.
445
-        if ( $is_js_file ) {
446
-            $filecontent = preg_replace( '#^\s*\/\/.*$#Um', '', $filecontent );
445
+        if ($is_js_file) {
446
+            $filecontent = preg_replace('#^\s*\/\/.*$#Um', '', $filecontent);
447 447
         }
448 448
 
449 449
         // Nuke un-important comments.
450
-        $filecontent = preg_replace( '#^\s*\/\*[^!].*\*\/\s?#Um', '', $filecontent );
450
+        $filecontent = preg_replace('#^\s*\/\*[^!].*\*\/\s?#Um', '', $filecontent);
451 451
 
452 452
         // Normalize newlines.
453
-        $filecontent = preg_replace( '#(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+#', "\n", $filecontent );
453
+        $filecontent = preg_replace('#(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+#', "\n", $filecontent);
454 454
 
455 455
         // JS specifics.
456
-        if ( $is_js_file ) {
456
+        if ($is_js_file) {
457 457
             // Append a semicolon at the end of js files if it's missing.
458
-            $last_char = substr( $filecontent, -1, 1 );
459
-            if ( ';' !== $last_char && '}' !== $last_char ) {
458
+            $last_char = substr($filecontent, -1, 1);
459
+            if (';' !== $last_char && '}' !== $last_char) {
460 460
                 $filecontent .= ';';
461 461
             }
462 462
             // Check if try/catch should be used.
463
-            $opt_js_try_catch = $conf->get( 'autoptimize_js_trycatch' );
464
-            if ( 'on' === $opt_js_try_catch ) {
463
+            $opt_js_try_catch = $conf->get('autoptimize_js_trycatch');
464
+            if ('on' === $opt_js_try_catch) {
465 465
                 // It should, wrap in try/catch.
466
-                $filecontent = 'try{' . $filecontent . '}catch(e){}';
466
+                $filecontent = 'try{'.$filecontent.'}catch(e){}';
467 467
             }
468
-        } elseif ( $is_css_file ) {
469
-            $filecontent = autoptimizeStyles::fixurls( $filepath, $filecontent );
468
+        } elseif ($is_css_file) {
469
+            $filecontent = autoptimizeStyles::fixurls($filepath, $filecontent);
470 470
         } else {
471 471
             $filecontent = '';
472 472
         }
473 473
 
474 474
         // Return modified (or empty!) code/content.
475
-        return "\n" . $filecontent;
475
+        return "\n".$filecontent;
476 476
     }
477 477
 
478 478
     /**
@@ -482,13 +482,13 @@  discard block
 block discarded – undo
482 482
      *
483 483
      * @return string
484 484
      */
485
-    protected function inject_minified( $in )
485
+    protected function inject_minified($in)
486 486
     {
487 487
         $out = $in;
488
-        if ( false !== strpos( $in, '%%INJECTLATER%%' ) ) {
488
+        if (false !== strpos($in, '%%INJECTLATER%%')) {
489 489
             $out = preg_replace_callback(
490
-                '#\/\*\!%%INJECTLATER' . AUTOPTIMIZE_HASH . '%%(.*?)%%INJECTLATER%%\*\/#is',
491
-                array( $this, 'inject_minified_callback' ),
490
+                '#\/\*\!%%INJECTLATER'.AUTOPTIMIZE_HASH.'%%(.*?)%%INJECTLATER%%\*\/#is',
491
+                array($this, 'inject_minified_callback'),
492 492
                 $in
493 493
             );
494 494
         }
@@ -508,9 +508,9 @@  discard block
 block discarded – undo
508 508
      *
509 509
      * @return string
510 510
      */
511
-    public static function build_injectlater_marker( $filepath, $hash )
511
+    public static function build_injectlater_marker($filepath, $hash)
512 512
     {
513
-        $contents = '/*!' . self::build_marker( 'INJECTLATER', $filepath, $hash ) . '*/';
513
+        $contents = '/*!'.self::build_marker('INJECTLATER', $filepath, $hash).'*/';
514 514
 
515 515
         return $contents;
516 516
     }
@@ -528,18 +528,18 @@  discard block
 block discarded – undo
528 528
      *
529 529
      * @return string
530 530
      */
531
-    public static function build_marker( $name, $data, $hash = null )
531
+    public static function build_marker($name, $data, $hash = null)
532 532
     {
533 533
         // Start the marker, add the data.
534
-        $marker = '%%' . $name . AUTOPTIMIZE_HASH . '%%' . base64_encode( $data );
534
+        $marker = '%%'.$name.AUTOPTIMIZE_HASH.'%%'.base64_encode($data);
535 535
 
536 536
         // Add the hash if provided.
537
-        if ( null !== $hash ) {
538
-            $marker .= '|' . $hash;
537
+        if (null !== $hash) {
538
+            $marker .= '|'.$hash;
539 539
         }
540 540
 
541 541
         // Close the marker.
542
-        $marker .= '%%' . $name . '%%';
542
+        $marker .= '%%'.$name.'%%';
543 543
 
544 544
         return $marker;
545 545
     }
@@ -559,22 +559,22 @@  discard block
 block discarded – undo
559 559
      *
560 560
      * @return string
561 561
      */
562
-    public static function replace_contents_with_marker_if_exists( $marker, $search, $re_replace_pattern, $content )
562
+    public static function replace_contents_with_marker_if_exists($marker, $search, $re_replace_pattern, $content)
563 563
     {
564 564
         $found = false;
565 565
 
566
-        $is_regex = autoptimizeUtils::str_is_valid_regex( $search );
567
-        if ( $is_regex ) {
568
-            $found = preg_match( $search, $content );
566
+        $is_regex = autoptimizeUtils::str_is_valid_regex($search);
567
+        if ($is_regex) {
568
+            $found = preg_match($search, $content);
569 569
         } else {
570
-            $found = ( false !== strpos( $content, $search ) );
570
+            $found = (false !== strpos($content, $search));
571 571
         }
572 572
 
573
-        if ( $found ) {
573
+        if ($found) {
574 574
             $content = preg_replace_callback(
575 575
                 $re_replace_pattern,
576
-                function( $matches ) use ( $marker ) {
577
-                    return autoptimizeBase::build_marker( $marker, $matches[0] );
576
+                function($matches) use ($marker) {
577
+                    return autoptimizeBase::build_marker($marker, $matches[0]);
578 578
                 },
579 579
                 $content
580 580
             );
@@ -591,13 +591,13 @@  discard block
 block discarded – undo
591 591
      *
592 592
      * @return string
593 593
      */
594
-    public static function restore_marked_content( $marker, $content )
594
+    public static function restore_marked_content($marker, $content)
595 595
     {
596
-        if ( false !== strpos( $content, $marker ) ) {
596
+        if (false !== strpos($content, $marker)) {
597 597
             $content = preg_replace_callback(
598
-                '#%%' . $marker . AUTOPTIMIZE_HASH . '%%(.*?)%%' . $marker . '%%#is',
599
-                function ( $matches ) {
600
-                    return base64_decode( $matches[1] );
598
+                '#%%'.$marker.AUTOPTIMIZE_HASH.'%%(.*?)%%'.$marker.'%%#is',
599
+                function($matches) {
600
+                    return base64_decode($matches[1]);
601 601
                 },
602 602
                 $content
603 603
             );
@@ -613,17 +613,17 @@  discard block
 block discarded – undo
613 613
      *
614 614
      * @return void
615 615
      */
616
-    protected function debug_log( $data )
616
+    protected function debug_log($data)
617 617
     {
618
-        if ( ! isset( $this->debug_log ) || ! $this->debug_log ) {
618
+        if (!isset($this->debug_log) || !$this->debug_log) {
619 619
             return;
620 620
         }
621 621
 
622
-        if ( ! is_string( $data ) && ! is_resource( $data ) ) {
623
-            $data = var_export( $data, true );
622
+        if (!is_string($data) && !is_resource($data)) {
623
+            $data = var_export($data, true);
624 624
         }
625 625
 
626
-        error_log( $data );
626
+        error_log($data);
627 627
     }
628 628
 
629 629
     /**
@@ -633,12 +633,12 @@  discard block
 block discarded – undo
633 633
      *
634 634
      * @return bool|string to be minified code or false.
635 635
      */
636
-    protected function prepare_minify_single( $filepath )
636
+    protected function prepare_minify_single($filepath)
637 637
     {
638 638
         // Decide what we're dealing with, return false if we don't know.
639
-        if ( $this->str_ends_in( $filepath, '.js' ) ) {
639
+        if ($this->str_ends_in($filepath, '.js')) {
640 640
             $type = 'js';
641
-        } elseif ( $this->str_ends_in( $filepath, '.css' ) ) {
641
+        } elseif ($this->str_ends_in($filepath, '.css')) {
642 642
             $type = 'css';
643 643
         } else {
644 644
             return false;
@@ -647,18 +647,18 @@  discard block
 block discarded – undo
647 647
         // Bail if it looks like its already minifed (by having -min or .min
648 648
         // in filename) or if it looks like WP jquery.js (which is minified).
649 649
         $minified_variants = array(
650
-            '-min.' . $type,
651
-            '.min.' . $type,
650
+            '-min.'.$type,
651
+            '.min.'.$type,
652 652
             'js/jquery/jquery.js',
653 653
         );
654
-        foreach ( $minified_variants as $ending ) {
655
-            if ( $this->str_ends_in( $filepath, $ending ) ) {
654
+        foreach ($minified_variants as $ending) {
655
+            if ($this->str_ends_in($filepath, $ending)) {
656 656
                 return false;
657 657
             }
658 658
         }
659 659
 
660 660
         // Get file contents, bail if empty.
661
-        $contents = file_get_contents( $filepath );
661
+        $contents = file_get_contents($filepath);
662 662
 
663 663
         return $contents;
664 664
     }
@@ -671,12 +671,12 @@  discard block
 block discarded – undo
671 671
      *
672 672
      * @return string
673 673
      */
674
-    protected function build_minify_single_url( autoptimizeCache $cache )
674
+    protected function build_minify_single_url(autoptimizeCache $cache)
675 675
     {
676
-        $url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
676
+        $url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
677 677
 
678 678
         // CDN-replace the resulting URL if needed...
679
-        $url = $this->url_replace_cdn( $url );
679
+        $url = $this->url_replace_cdn($url);
680 680
 
681 681
         return $url;
682 682
     }
@@ -689,15 +689,15 @@  discard block
 block discarded – undo
689 689
      *
690 690
      * @return bool
691 691
      */
692
-    protected function str_ends_in( $str, $test )
692
+    protected function str_ends_in($str, $test)
693 693
     {
694 694
         // @codingStandardsIgnoreStart
695 695
         // substr_compare() is bugged on 5.5.11: https://3v4l.org/qGYBH
696 696
         // return ( 0 === substr_compare( $str, $test, -strlen( $test ) ) );
697 697
         // @codingStandardsIgnoreEnd
698 698
 
699
-        $length = strlen( $test );
699
+        $length = strlen($test);
700 700
 
701
-        return ( substr( $str, -$length, $length ) === $test );
701
+        return (substr($str, -$length, $length) === $test);
702 702
     }
703 703
 }
Please login to merge, or discard this patch.
classes/autoptimizeVersionUpdatesHandler.php 1 patch
Spacing   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles version updates and should only be instantiated in autoptimize.php if/when needed.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -16,9 +16,9 @@  discard block
 block discarded – undo
16 16
      */
17 17
     protected $current_major_version = null;
18 18
 
19
-    public function __construct( $current_version )
19
+    public function __construct($current_version)
20 20
     {
21
-        $this->current_major_version = substr( $current_version, 0, 3 );
21
+        $this->current_major_version = substr($current_version, 0, 3);
22 22
     }
23 23
 
24 24
     /**
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
     {
30 30
         $major_update = false;
31 31
 
32
-        switch ( $this->current_major_version ) {
32
+        switch ($this->current_major_version) {
33 33
             case '1.6':
34 34
                 $this->upgrade_from_1_6();
35 35
                 $major_update = true;
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
                 $major_update = true;
48 48
                 // No break, intentionally, so all upgrades are ran during a single request...
49 49
             case '2.4':
50
-                if ( get_option( 'autoptimize_version', 'none' ) == '2.4.2' ) {
50
+                if (get_option('autoptimize_version', 'none') == '2.4.2') {
51 51
                     $this->upgrade_from_2_4_2();
52 52
                 }
53 53
                 $this->upgrade_from_2_4();
@@ -55,7 +55,7 @@  discard block
 block discarded – undo
55 55
                 // No break, intentionally, so all upgrades are ran during a single request...
56 56
         }
57 57
 
58
-        if ( true === $major_update ) {
58
+        if (true === $major_update) {
59 59
             $this->on_major_version_update();
60 60
         }
61 61
     }
@@ -67,19 +67,19 @@  discard block
 block discarded – undo
67 67
      *
68 68
      * @param string $target Target version to check against (ie., the currently running one).
69 69
      */
70
-    public static function check_installed_and_update( $target )
70
+    public static function check_installed_and_update($target)
71 71
     {
72
-        $db_version = get_option( 'autoptimize_version', 'none' );
73
-        if ( $db_version !== $target ) {
74
-            if ( 'none' === $db_version ) {
75
-                add_action( 'admin_notices', 'autoptimizeMain::notice_installed' );
72
+        $db_version = get_option('autoptimize_version', 'none');
73
+        if ($db_version !== $target) {
74
+            if ('none' === $db_version) {
75
+                add_action('admin_notices', 'autoptimizeMain::notice_installed');
76 76
             } else {
77
-                $updater = new self( $db_version );
77
+                $updater = new self($db_version);
78 78
                 $updater->run_needed_major_upgrades();
79 79
             }
80 80
 
81 81
             // Versions differed, upgrades happened if needed, store the new version.
82
-            update_option( 'autoptimize_version', $target );
82
+            update_option('autoptimize_version', $target);
83 83
         }
84 84
     }
85 85
 
@@ -90,10 +90,10 @@  discard block
 block discarded – undo
90 90
     protected function on_major_version_update()
91 91
     {
92 92
         // The transients guard here prevents stale object caches from busting the cache on every request.
93
-        if ( false == get_transient( 'autoptimize_stale_option_buster' ) ) {
94
-            set_transient( 'autoptimize_stale_option_buster', 'Mamsie & Liessie zehhe: ZWIJH!', HOUR_IN_SECONDS );
93
+        if (false == get_transient('autoptimize_stale_option_buster')) {
94
+            set_transient('autoptimize_stale_option_buster', 'Mamsie & Liessie zehhe: ZWIJH!', HOUR_IN_SECONDS);
95 95
             autoptimizeCache::clearall();
96
-            add_action( 'admin_notices', 'autoptimizeMain::notice_updated' );
96
+            add_action('admin_notices', 'autoptimizeMain::notice_updated');
97 97
         }
98 98
     }
99 99
 
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
     private function upgrade_from_1_6()
104 104
     {
105 105
         // If user was on version 1.6.x, force advanced options to be shown by default.
106
-        update_option( 'autoptimize_show_adv', '1' );
106
+        update_option('autoptimize_show_adv', '1');
107 107
 
108 108
         // And remove old options.
109 109
         $to_delete_options = array(
@@ -115,8 +115,8 @@  discard block
 block discarded – undo
115 115
             'autoptimize_cdn_img_url',
116 116
             'autoptimize_css_yui',
117 117
         );
118
-        foreach ( $to_delete_options as $del_opt ) {
119
-            delete_option( $del_opt );
118
+        foreach ($to_delete_options as $del_opt) {
119
+            delete_option($del_opt);
120 120
         }
121 121
     }
122 122
 
@@ -127,29 +127,29 @@  discard block
 block discarded – undo
127 127
      */
128 128
     private function upgrade_from_1_7()
129 129
     {
130
-        if ( ! is_multisite() ) {
131
-            $css_exclude = get_option( 'autoptimize_css_exclude' );
132
-            if ( empty( $css_exclude ) ) {
130
+        if (!is_multisite()) {
131
+            $css_exclude = get_option('autoptimize_css_exclude');
132
+            if (empty($css_exclude)) {
133 133
                 $css_exclude = 'admin-bar.min.css, dashicons.min.css';
134
-            } elseif ( false === strpos( $css_exclude, 'dashicons.min.css' ) ) {
134
+            } elseif (false === strpos($css_exclude, 'dashicons.min.css')) {
135 135
                 $css_exclude .= ', dashicons.min.css';
136 136
             }
137
-            update_option( 'autoptimize_css_exclude', $css_exclude );
137
+            update_option('autoptimize_css_exclude', $css_exclude);
138 138
         } else {
139 139
             global $wpdb;
140
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
140
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
141 141
             $original_blog_id = get_current_blog_id();
142
-            foreach ( $blog_ids as $blog_id ) {
143
-                switch_to_blog( $blog_id );
144
-                $css_exclude = get_option( 'autoptimize_css_exclude' );
145
-                if ( empty( $css_exclude ) ) {
142
+            foreach ($blog_ids as $blog_id) {
143
+                switch_to_blog($blog_id);
144
+                $css_exclude = get_option('autoptimize_css_exclude');
145
+                if (empty($css_exclude)) {
146 146
                     $css_exclude = 'admin-bar.min.css, dashicons.min.css';
147
-                } elseif ( false === strpos( $css_exclude, 'dashicons.min.css' ) ) {
147
+                } elseif (false === strpos($css_exclude, 'dashicons.min.css')) {
148 148
                     $css_exclude .= ', dashicons.min.css';
149 149
                 }
150
-                update_option( 'autoptimize_css_exclude', $css_exclude );
150
+                update_option('autoptimize_css_exclude', $css_exclude);
151 151
             }
152
-            switch_to_blog( $original_blog_id );
152
+            switch_to_blog($original_blog_id);
153 153
         }
154 154
     }
155 155
 
@@ -161,19 +161,19 @@  discard block
 block discarded – undo
161 161
      */
162 162
     private function upgrade_from_1_9()
163 163
     {
164
-        if ( ! is_multisite() ) {
165
-            update_option( 'autoptimize_css_include_inline', 'on' );
166
-            update_option( 'autoptimize_js_include_inline', 'on' );
164
+        if (!is_multisite()) {
165
+            update_option('autoptimize_css_include_inline', 'on');
166
+            update_option('autoptimize_js_include_inline', 'on');
167 167
         } else {
168 168
             global $wpdb;
169
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
169
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
170 170
             $original_blog_id = get_current_blog_id();
171
-            foreach ( $blog_ids as $blog_id ) {
172
-                switch_to_blog( $blog_id );
173
-                update_option( 'autoptimize_css_include_inline', 'on' );
174
-                update_option( 'autoptimize_js_include_inline', 'on' );
171
+            foreach ($blog_ids as $blog_id) {
172
+                switch_to_blog($blog_id);
173
+                update_option('autoptimize_css_include_inline', 'on');
174
+                update_option('autoptimize_js_include_inline', 'on');
175 175
             }
176
-            switch_to_blog( $original_blog_id );
176
+            switch_to_blog($original_blog_id);
177 177
         }
178 178
     }
179 179
 
@@ -184,17 +184,17 @@  discard block
 block discarded – undo
184 184
      */
185 185
     private function upgrade_from_2_2()
186 186
     {
187
-        if ( ! is_multisite() ) {
187
+        if (!is_multisite()) {
188 188
             $this->do_2_2_settings_update();
189 189
         } else {
190 190
             global $wpdb;
191
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
191
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
192 192
             $original_blog_id = get_current_blog_id();
193
-            foreach ( $blog_ids as $blog_id ) {
194
-                switch_to_blog( $blog_id );
193
+            foreach ($blog_ids as $blog_id) {
194
+                switch_to_blog($blog_id);
195 195
                 $this->do_2_2_settings_update();
196 196
             }
197
-            switch_to_blog( $original_blog_id );
197
+            switch_to_blog($original_blog_id);
198 198
         }
199 199
     }
200 200
 
@@ -203,12 +203,12 @@  discard block
 block discarded – undo
203 203
      */
204 204
     private function do_2_2_settings_update()
205 205
     {
206
-        $nogooglefont    = get_option( 'autoptimize_css_nogooglefont', '' );
207
-        $ao_extrasetting = get_option( 'autoptimize_extra_settings', '' );
208
-        if ( ( $nogooglefont ) && ( empty( $ao_extrasetting ) ) ) {
209
-            update_option( 'autoptimize_extra_settings', autoptimizeConfig::get_ao_extra_default_options() );
206
+        $nogooglefont    = get_option('autoptimize_css_nogooglefont', '');
207
+        $ao_extrasetting = get_option('autoptimize_extra_settings', '');
208
+        if (($nogooglefont) && (empty($ao_extrasetting))) {
209
+            update_option('autoptimize_extra_settings', autoptimizeConfig::get_ao_extra_default_options());
210 210
         }
211
-        delete_option( 'autoptimize_css_nogooglefont' );
211
+        delete_option('autoptimize_css_nogooglefont');
212 212
     }
213 213
 
214 214
     /**
@@ -220,29 +220,29 @@  discard block
 block discarded – undo
220 220
         $jobs = _get_cron_array();
221 221
 
222 222
         // Remove all ao_cachechecker cron jobs (for now).
223
-        foreach ( $jobs as $when => $job ) {
224
-            $name = key( $job );
223
+        foreach ($jobs as $when => $job) {
224
+            $name = key($job);
225 225
 
226
-            if ( false !== strpos( $name, 'ao_cachechecker' ) ) {
227
-                unset( $jobs[ $when ] );
226
+            if (false !== strpos($name, 'ao_cachechecker')) {
227
+                unset($jobs[$when]);
228 228
             }
229 229
         }
230 230
 
231 231
         // Save the data.
232
-        _set_cron_array( $jobs );
232
+        _set_cron_array($jobs);
233 233
     }
234 234
 
235 235
     /**
236 236
      * Migrate imgopt options from autoptimize_extra_settings to autoptimize_imgopt_settings
237 237
      */
238 238
     private function upgrade_from_2_4() {
239
-        $extra_settings  = get_option( 'autoptimize_extra_settings' );
240
-        $imgopt_settings = get_option( 'autoptimize_imgopt_settings' );
241
-        if ( empty( $imgopt_settings ) ) {
239
+        $extra_settings  = get_option('autoptimize_extra_settings');
240
+        $imgopt_settings = get_option('autoptimize_imgopt_settings');
241
+        if (empty($imgopt_settings)) {
242 242
             $imgopt_settings                                        = autoptimizeConfig::get_ao_imgopt_default_options();
243 243
             $imgopt_settings['autoptimize_imgopt_checkbox_field_1'] = $extra_settings['autoptimize_extra_checkbox_field_5'];
244 244
             $imgopt_settings['autoptimize_imgopt_select_field_2']   = $extra_settings['autoptimize_extra_select_field_6'];
245
-            update_option( 'autoptimize_imgopt_settings', $imgopt_settings );
245
+            update_option('autoptimize_imgopt_settings', $imgopt_settings);
246 246
         }
247 247
     }
248 248
 }
Please login to merge, or discard this patch.
classes/autoptimizeStyles.php 1 patch
Spacing   +313 added lines, -313 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Class for CSS optimization.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -49,53 +49,53 @@  discard block
 block discarded – undo
49 49
     // public $cdn_url; // Used all over the place implicitly, so will have to be either public or protected :/ .
50 50
 
51 51
     // Reads the page and collects style tags.
52
-    public function read( $options )
52
+    public function read($options)
53 53
     {
54
-        $noptimizeCSS = apply_filters( 'autoptimize_filter_css_noptimize', false, $this->content );
55
-        if ( $noptimizeCSS ) {
54
+        $noptimizeCSS = apply_filters('autoptimize_filter_css_noptimize', false, $this->content);
55
+        if ($noptimizeCSS) {
56 56
             return false;
57 57
         }
58 58
 
59
-        $whitelistCSS = apply_filters( 'autoptimize_filter_css_whitelist', '', $this->content );
60
-        if ( ! empty( $whitelistCSS ) ) {
61
-            $this->whitelist = array_filter( array_map( 'trim', explode( ',', $whitelistCSS ) ) );
59
+        $whitelistCSS = apply_filters('autoptimize_filter_css_whitelist', '', $this->content);
60
+        if (!empty($whitelistCSS)) {
61
+            $this->whitelist = array_filter(array_map('trim', explode(',', $whitelistCSS)));
62 62
         }
63 63
 
64
-        $removableCSS = apply_filters( 'autoptimize_filter_css_removables', '' );
65
-        if ( ! empty( $removableCSS ) ) {
66
-            $this->cssremovables = array_filter( array_map( 'trim', explode( ',', $removableCSS ) ) );
64
+        $removableCSS = apply_filters('autoptimize_filter_css_removables', '');
65
+        if (!empty($removableCSS)) {
66
+            $this->cssremovables = array_filter(array_map('trim', explode(',', $removableCSS)));
67 67
         }
68 68
 
69
-        $this->cssinlinesize = apply_filters( 'autoptimize_filter_css_inlinesize', 256 );
69
+        $this->cssinlinesize = apply_filters('autoptimize_filter_css_inlinesize', 256);
70 70
 
71 71
         // filter to "late inject minified CSS", default to true for now (it is faster).
72
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_css_inject_min_late', true );
72
+        $this->inject_min_late = apply_filters('autoptimize_filter_css_inject_min_late', true);
73 73
 
74 74
         // Remove everything that's not the header.
75
-        if ( apply_filters( 'autoptimize_filter_css_justhead', $options['justhead'] ) ) {
76
-            $content             = explode( '</head>', $this->content, 2 );
77
-            $this->content       = $content[0] . '</head>';
75
+        if (apply_filters('autoptimize_filter_css_justhead', $options['justhead'])) {
76
+            $content             = explode('</head>', $this->content, 2);
77
+            $this->content       = $content[0].'</head>';
78 78
             $this->restofcontent = $content[1];
79 79
         }
80 80
 
81 81
         // Determine whether we're doing CSS-files aggregation or not.
82
-        if ( isset( $options['aggregate'] ) && ! $options['aggregate'] ) {
82
+        if (isset($options['aggregate']) && !$options['aggregate']) {
83 83
             $this->aggregate = false;
84 84
         }
85 85
         // Returning true for "dontaggregate" turns off aggregation.
86
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_css_dontaggregate', false ) ) {
86
+        if ($this->aggregate && apply_filters('autoptimize_filter_css_dontaggregate', false)) {
87 87
             $this->aggregate = false;
88 88
         }
89 89
 
90 90
         // include inline?
91
-        if ( apply_filters( 'autoptimize_css_include_inline', $options['include_inline'] ) ) {
91
+        if (apply_filters('autoptimize_css_include_inline', $options['include_inline'])) {
92 92
             $this->include_inline = true;
93 93
         }
94 94
 
95 95
         // List of CSS strings which are excluded from autoptimization.
96
-        $excludeCSS = apply_filters( 'autoptimize_filter_css_exclude', $options['css_exclude'], $this->content );
97
-        if ( '' !== $excludeCSS ) {
98
-            $this->dontmove = array_filter( array_map( 'trim', explode( ',', $excludeCSS ) ) );
96
+        $excludeCSS = apply_filters('autoptimize_filter_css_exclude', $options['css_exclude'], $this->content);
97
+        if ('' !== $excludeCSS) {
98
+            $this->dontmove = array_filter(array_map('trim', explode(',', $excludeCSS)));
99 99
         } else {
100 100
             $this->dontmove = array();
101 101
         }
@@ -106,16 +106,16 @@  discard block
 block discarded – undo
106 106
         // Should we defer css?
107 107
         // value: true / false.
108 108
         $this->defer = $options['defer'];
109
-        $this->defer = apply_filters( 'autoptimize_filter_css_defer', $this->defer, $this->content );
109
+        $this->defer = apply_filters('autoptimize_filter_css_defer', $this->defer, $this->content);
110 110
 
111 111
         // Should we inline while deferring?
112 112
         // value: inlined CSS.
113
-        $this->defer_inline = apply_filters( 'autoptimize_filter_css_defer_inline', $options['defer_inline'], $this->content );
113
+        $this->defer_inline = apply_filters('autoptimize_filter_css_defer_inline', $options['defer_inline'], $this->content);
114 114
 
115 115
         // Should we inline?
116 116
         // value: true / false.
117 117
         $this->inline = $options['inline'];
118
-        $this->inline = apply_filters( 'autoptimize_filter_css_inline', $this->inline, $this->content );
118
+        $this->inline = apply_filters('autoptimize_filter_css_inline', $this->inline, $this->content);
119 119
 
120 120
         // Store cdn url.
121 121
         $this->cdn_url = $options['cdn_url'];
@@ -124,12 +124,12 @@  discard block
 block discarded – undo
124 124
         $this->datauris = $options['datauris'];
125 125
 
126 126
         // Determine whether excluded files should be minified if not yet so.
127
-        if ( ! $options['minify_excluded'] && $options['aggregate'] ) {
127
+        if (!$options['minify_excluded'] && $options['aggregate']) {
128 128
             $this->minify_excluded = false;
129 129
         }
130 130
 
131 131
         // noptimize me.
132
-        $this->content = $this->hide_noptimize( $this->content );
132
+        $this->content = $this->hide_noptimize($this->content);
133 133
 
134 134
         // Exclude (no)script, as those may contain CSS which should be left as is.
135 135
         $this->content = $this->replace_contents_with_marker_if_exists(
@@ -140,26 +140,26 @@  discard block
 block discarded – undo
140 140
         );
141 141
 
142 142
         // Save IE hacks.
143
-        $this->content = $this->hide_iehacks( $this->content );
143
+        $this->content = $this->hide_iehacks($this->content);
144 144
 
145 145
         // Hide HTML comments.
146
-        $this->content = $this->hide_comments( $this->content );
146
+        $this->content = $this->hide_comments($this->content);
147 147
 
148 148
         // Get <style> and <link>.
149
-        if ( preg_match_all( '#(<style[^>]*>.*</style>)|(<link[^>]*stylesheet[^>]*>)#Usmi', $this->content, $matches ) ) {
149
+        if (preg_match_all('#(<style[^>]*>.*</style>)|(<link[^>]*stylesheet[^>]*>)#Usmi', $this->content, $matches)) {
150 150
 
151
-            foreach ( $matches[0] as $tag ) {
152
-                if ( $this->isremovable( $tag, $this->cssremovables ) ) {
153
-                    $this->content = str_replace( $tag, '', $this->content );
154
-                } elseif ( $this->ismovable( $tag ) ) {
151
+            foreach ($matches[0] as $tag) {
152
+                if ($this->isremovable($tag, $this->cssremovables)) {
153
+                    $this->content = str_replace($tag, '', $this->content);
154
+                } elseif ($this->ismovable($tag)) {
155 155
                     // Get the media.
156
-                    if ( false !== strpos( $tag, 'media=' ) ) {
157
-                        preg_match( '#media=(?:"|\')([^>]*)(?:"|\')#Ui', $tag, $medias );
158
-                        $medias = explode( ',', $medias[1] );
156
+                    if (false !== strpos($tag, 'media=')) {
157
+                        preg_match('#media=(?:"|\')([^>]*)(?:"|\')#Ui', $tag, $medias);
158
+                        $medias = explode(',', $medias[1]);
159 159
                         $media = array();
160
-                        foreach ( $medias as $elem ) {
160
+                        foreach ($medias as $elem) {
161 161
                             /* $media[] = current(explode(' ',trim($elem),2)); */
162
-                            if ( empty( $elem ) ) {
162
+                            if (empty($elem)) {
163 163
                                 $elem = 'all';
164 164
                             }
165 165
 
@@ -167,69 +167,69 @@  discard block
 block discarded – undo
167 167
                         }
168 168
                     } else {
169 169
                         // No media specified - applies to all.
170
-                        $media = array( 'all' );
170
+                        $media = array('all');
171 171
                     }
172 172
 
173
-                    $media = apply_filters( 'autoptimize_filter_css_tagmedia', $media, $tag );
173
+                    $media = apply_filters('autoptimize_filter_css_tagmedia', $media, $tag);
174 174
 
175
-                    if ( preg_match( '#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source ) ) {
175
+                    if (preg_match('#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source)) {
176 176
                         // <link>.
177
-                        $url  = current( explode( '?', $source[2], 2 ) );
178
-                        $path = $this->getpath( $url );
177
+                        $url  = current(explode('?', $source[2], 2));
178
+                        $path = $this->getpath($url);
179 179
 
180
-                        if ( false !== $path && preg_match( '#\.css$#', $path ) ) {
180
+                        if (false !== $path && preg_match('#\.css$#', $path)) {
181 181
                             // Good link.
182
-                            $this->css[] = array( $media, $path );
182
+                            $this->css[] = array($media, $path);
183 183
                         } else {
184 184
                             // Link is dynamic (.php etc).
185
-                            $new_tag = $this->optionally_defer_excluded( $tag, 'none' );
186
-                            if ( $new_tag !== $tag ) {
187
-                                $this->content = str_replace( $tag, $new_tag, $this->content );
185
+                            $new_tag = $this->optionally_defer_excluded($tag, 'none');
186
+                            if ($new_tag !== $tag) {
187
+                                $this->content = str_replace($tag, $new_tag, $this->content);
188 188
                             }
189 189
                             $tag = '';
190 190
                         }
191 191
                     } else {
192 192
                         // Inline css in style tags can be wrapped in comment tags, so restore comments.
193
-                        $tag = $this->restore_comments( $tag );
194
-                        preg_match( '#<style.*>(.*)</style>#Usmi', $tag, $code );
193
+                        $tag = $this->restore_comments($tag);
194
+                        preg_match('#<style.*>(.*)</style>#Usmi', $tag, $code);
195 195
 
196 196
                         // And re-hide them to be able to to the removal based on tag.
197
-                        $tag = $this->hide_comments( $tag );
197
+                        $tag = $this->hide_comments($tag);
198 198
 
199
-                        if ( $this->include_inline ) {
200
-                            $code = preg_replace( '#^.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*$#sm', '$1', $code[1] );
201
-                            $this->css[] = array( $media, 'INLINE;' . $code );
199
+                        if ($this->include_inline) {
200
+                            $code = preg_replace('#^.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*$#sm', '$1', $code[1]);
201
+                            $this->css[] = array($media, 'INLINE;'.$code);
202 202
                         } else {
203 203
                             $tag = '';
204 204
                         }
205 205
                     }
206 206
 
207 207
                     // Remove the original style tag.
208
-                    $this->content = str_replace( $tag, '', $this->content );
208
+                    $this->content = str_replace($tag, '', $this->content);
209 209
                 } else {
210 210
                     // Excluded CSS, minify that file:
211 211
                     // -> if aggregate is on and exclude minify is on
212 212
                     // -> if aggregate is off and the file is not in dontmove.
213
-                    if ( preg_match( '#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source ) ) {
214
-                        $exploded_url = explode( '?', $source[2], 2 );
213
+                    if (preg_match('#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source)) {
214
+                        $exploded_url = explode('?', $source[2], 2);
215 215
                         $url          = $exploded_url[0];
216
-                        $path         = $this->getpath( $url );
216
+                        $path         = $this->getpath($url);
217 217
 
218
-                        if ( $path && ( $this->minify_excluded || apply_filters( 'autoptimize_filter_css_minify_excluded', false, $url ) ) ) {
219
-                            $consider_minified_array = apply_filters( 'autoptimize_filter_css_consider_minified', false );
220
-                            if ( ( false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path ) || ( true === $this->aggregate && ( false === $consider_minified_array || str_replace( $consider_minified_array, '', $path ) === $path ) ) ) {
221
-                                $minified_url = $this->minify_single( $path );
222
-                                if ( ! empty( $minified_url ) ) {
218
+                        if ($path && ($this->minify_excluded || apply_filters('autoptimize_filter_css_minify_excluded', false, $url))) {
219
+                            $consider_minified_array = apply_filters('autoptimize_filter_css_consider_minified', false);
220
+                            if ((false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path) || (true === $this->aggregate && (false === $consider_minified_array || str_replace($consider_minified_array, '', $path) === $path))) {
221
+                                $minified_url = $this->minify_single($path);
222
+                                if (!empty($minified_url)) {
223 223
                                     // Replace orig URL with cached minified URL.
224
-                                    $new_tag = str_replace( $url, $minified_url, $tag );
224
+                                    $new_tag = str_replace($url, $minified_url, $tag);
225 225
                                 } else {
226 226
                                     $new_tag = $tag;
227 227
                                 }
228 228
 
229
-                                $new_tag = $this->optionally_defer_excluded( $new_tag, $url );
229
+                                $new_tag = $this->optionally_defer_excluded($new_tag, $url);
230 230
 
231 231
                                 // And replace!
232
-                                $this->content = str_replace( $tag, $new_tag, $this->content );
232
+                                $this->content = str_replace($tag, $new_tag, $this->content);
233 233
                             }
234 234
                         }
235 235
                     }
@@ -251,10 +251,10 @@  discard block
 block discarded – undo
251 251
      *
252 252
      * @return string $new_tag
253 253
      */
254
-    private function optionally_defer_excluded( $new_tag, $url = '' )
254
+    private function optionally_defer_excluded($new_tag, $url = '')
255 255
     {
256 256
         // Defer single CSS if "inline & defer" is ON and there is inline CSS.
257
-        if ( $this->defer && ! empty( $this->defer_inline ) ) {
257
+        if ($this->defer && !empty($this->defer_inline)) {
258 258
             // Get/ set (via filter) the JS to be triggers onload of the preloaded CSS.
259 259
             $_preload_onload = apply_filters(
260 260
                 'autoptimize_filter_css_preload_onload',
@@ -262,12 +262,12 @@  discard block
 block discarded – undo
262 262
                 $url
263 263
             );
264 264
             // Adapt original <link> element for CSS to be preloaded and add <noscript>-version for fallback.
265
-            $new_tag = '<noscript>' . $new_tag . '</noscript>' . str_replace(
265
+            $new_tag = '<noscript>'.$new_tag.'</noscript>'.str_replace(
266 266
                 array(
267 267
                     "rel='stylesheet'",
268 268
                     'rel="stylesheet"',
269 269
                 ),
270
-                "rel='preload' as='style' onload=\"" . $_preload_onload . "\"",
270
+                "rel='preload' as='style' onload=\"".$_preload_onload."\"",
271 271
                 $new_tag
272 272
             );
273 273
         }
@@ -281,22 +281,22 @@  discard block
 block discarded – undo
281 281
      * @param string $path
282 282
      * @return boolean
283 283
      */
284
-    private function is_datauri_candidate( $path )
284
+    private function is_datauri_candidate($path)
285 285
     {
286 286
         // Call only once since it's called from a loop.
287 287
         static $max_size = null;
288
-        if ( null === $max_size ) {
288
+        if (null === $max_size) {
289 289
             $max_size = $this->get_datauri_maxsize();
290 290
         }
291 291
 
292
-        if ( $path && preg_match( '#\.(jpe?g|png|gif|webp|bmp)$#i', $path ) &&
293
-            file_exists( $path ) && is_readable( $path ) && filesize( $path ) <= $max_size ) {
292
+        if ($path && preg_match('#\.(jpe?g|png|gif|webp|bmp)$#i', $path) &&
293
+            file_exists($path) && is_readable($path) && filesize($path) <= $max_size) {
294 294
 
295 295
             // Seems we have a candidate.
296 296
             $is_candidate = true;
297 297
         } else {
298 298
             // Filter allows overriding default decision (which checks for local file existence).
299
-            $is_candidate = apply_filters( 'autoptimize_filter_css_is_datauri_candidate', false, $path );
299
+            $is_candidate = apply_filters('autoptimize_filter_css_is_datauri_candidate', false, $path);
300 300
         }
301 301
 
302 302
         return $is_candidate;
@@ -321,29 +321,29 @@  discard block
 block discarded – undo
321 321
          * of thing you're probably better of building assets completely
322 322
          * outside of WordPress anyway.
323 323
          */
324
-        if ( null === $max_size ) {
325
-            $max_size = (int) apply_filters( 'autoptimize_filter_css_datauri_maxsize', 4096 );
324
+        if (null === $max_size) {
325
+            $max_size = (int) apply_filters('autoptimize_filter_css_datauri_maxsize', 4096);
326 326
         }
327 327
 
328 328
         return $max_size;
329 329
     }
330 330
 
331
-    private function check_datauri_exclude_list( $url )
331
+    private function check_datauri_exclude_list($url)
332 332
     {
333 333
         static $exclude_list = null;
334 334
         $no_datauris         = array();
335 335
 
336 336
         // Again, skip doing certain stuff repeatedly when loop-called.
337
-        if ( null === $exclude_list ) {
338
-            $exclude_list = apply_filters( 'autoptimize_filter_css_datauri_exclude', '' );
339
-            $no_datauris = array_filter( array_map( 'trim', explode( ',', $exclude_list ) ) );
337
+        if (null === $exclude_list) {
338
+            $exclude_list = apply_filters('autoptimize_filter_css_datauri_exclude', '');
339
+            $no_datauris = array_filter(array_map('trim', explode(',', $exclude_list)));
340 340
         }
341 341
 
342 342
         $matched = false;
343 343
 
344
-        if ( ! empty( $exclude_list ) ) {
345
-            foreach ( $no_datauris as $no_datauri ) {
346
-                if ( false !== strpos( $url, $no_datauri ) ) {
344
+        if (!empty($exclude_list)) {
345
+            foreach ($no_datauris as $no_datauri) {
346
+                if (false !== strpos($url, $no_datauri)) {
347 347
                     $matched = true;
348 348
                     break;
349 349
                 }
@@ -353,7 +353,7 @@  discard block
 block discarded – undo
353 353
         return $matched;
354 354
     }
355 355
 
356
-    private function build_or_get_datauri_image( $path )
356
+    private function build_or_get_datauri_image($path)
357 357
     {
358 358
         /**
359 359
          * TODO/FIXME: document the required return array format, or better yet,
@@ -362,27 +362,27 @@  discard block
 block discarded – undo
362 362
          */
363 363
 
364 364
         // Allows short-circuiting datauri generation for an image.
365
-        $result = apply_filters( 'autoptimize_filter_css_datauri_image', array(), $path );
366
-        if ( ! empty( $result ) ) {
367
-            if ( is_array( $result ) && isset( $result['full'] ) && isset( $result['base64data'] ) ) {
365
+        $result = apply_filters('autoptimize_filter_css_datauri_image', array(), $path);
366
+        if (!empty($result)) {
367
+            if (is_array($result) && isset($result['full']) && isset($result['base64data'])) {
368 368
                 return $result;
369 369
             }
370 370
         }
371 371
 
372
-        $hash = md5( $path );
373
-        $check = new autoptimizeCache( $hash, 'img' );
374
-        if ( $check->check() ) {
372
+        $hash = md5($path);
373
+        $check = new autoptimizeCache($hash, 'img');
374
+        if ($check->check()) {
375 375
             // we have the base64 image in cache.
376 376
             $headAndData = $check->retrieve();
377
-            $_base64data = explode( ';base64,', $headAndData );
377
+            $_base64data = explode(';base64,', $headAndData);
378 378
             $base64data  = $_base64data[1];
379
-            unset( $_base64data );
379
+            unset($_base64data);
380 380
         } else {
381 381
             // It's an image and we don't have it in cache, get the type by extension.
382
-            $exploded_path = explode( '.', $path );
383
-            $type = end( $exploded_path );
382
+            $exploded_path = explode('.', $path);
383
+            $type = end($exploded_path);
384 384
 
385
-            switch ( $type ) {
385
+            switch ($type) {
386 386
                 case 'jpg':
387 387
                 case 'jpeg':
388 388
                     $dataurihead = 'data:image/jpeg;base64,';
@@ -404,15 +404,15 @@  discard block
 block discarded – undo
404 404
             }
405 405
 
406 406
             // Encode the data.
407
-            $base64data  = base64_encode( file_get_contents( $path ) );
408
-            $headAndData = $dataurihead . $base64data;
407
+            $base64data  = base64_encode(file_get_contents($path));
408
+            $headAndData = $dataurihead.$base64data;
409 409
 
410 410
             // Save in cache.
411
-            $check->cache( $headAndData, 'text/plain' );
411
+            $check->cache($headAndData, 'text/plain');
412 412
         }
413
-        unset( $check );
413
+        unset($check);
414 414
 
415
-        return array( 'full' => $headAndData, 'base64data' => $base64data );
415
+        return array('full' => $headAndData, 'base64data' => $base64data);
416 416
     }
417 417
 
418 418
     /**
@@ -424,13 +424,13 @@  discard block
 block discarded – undo
424 424
      *
425 425
      * @return string
426 426
      */
427
-    protected static function replace_longest_matches_first( $string, $replacements = array() )
427
+    protected static function replace_longest_matches_first($string, $replacements = array())
428 428
     {
429
-        if ( ! empty( $replacements ) ) {
429
+        if (!empty($replacements)) {
430 430
             // Sort the replacements array by key length in desc order (so that the longest strings are replaced first).
431
-            $keys = array_map( 'strlen', array_keys( $replacements ) );
432
-            array_multisort( $keys, SORT_DESC, $replacements );
433
-            $string = str_replace( array_keys( $replacements ), array_values( $replacements ), $string );
431
+            $keys = array_map('strlen', array_keys($replacements));
432
+            array_multisort($keys, SORT_DESC, $replacements);
433
+            $string = str_replace(array_keys($replacements), array_values($replacements), $string);
434 434
         }
435 435
 
436 436
         return $string;
@@ -446,15 +446,15 @@  discard block
 block discarded – undo
446 446
      *
447 447
      * @return string
448 448
      */
449
-    public function replace_urls( $code = '' )
449
+    public function replace_urls($code = '')
450 450
     {
451 451
         $replacements = array();
452 452
 
453
-        preg_match_all( self::ASSETS_REGEX, $code, $url_src_matches );
454
-        if ( is_array( $url_src_matches ) && ! empty( $url_src_matches ) ) {
455
-            foreach ( $url_src_matches[1] as $count => $original_url ) {
453
+        preg_match_all(self::ASSETS_REGEX, $code, $url_src_matches);
454
+        if (is_array($url_src_matches) && !empty($url_src_matches)) {
455
+            foreach ($url_src_matches[1] as $count => $original_url) {
456 456
                 // Removes quotes and other cruft.
457
-                $url = trim( $original_url, " \t\n\r\0\x0B\"'" );
457
+                $url = trim($original_url, " \t\n\r\0\x0B\"'");
458 458
 
459 459
                 /**
460 460
                  * TODO/FIXME: Add a way for other code / callable to be called here
@@ -472,17 +472,17 @@  discard block
 block discarded – undo
472 472
                  */
473 473
 
474 474
                 // Do CDN replacement if needed.
475
-                if ( ! empty( $this->cdn_url ) ) {
476
-                    $replacement_url = $this->url_replace_cdn( $url );
475
+                if (!empty($this->cdn_url)) {
476
+                    $replacement_url = $this->url_replace_cdn($url);
477 477
                     // Prepare replacements array.
478
-                    $replacements[ $url_src_matches[1][ $count ] ] = str_replace(
478
+                    $replacements[$url_src_matches[1][$count]] = str_replace(
479 479
                         $original_url, $replacement_url, $url_src_matches[1][$count]
480 480
                     );
481 481
                 }
482 482
             }
483 483
         }
484 484
 
485
-        $code = self::replace_longest_matches_first( $code, $replacements );
485
+        $code = self::replace_longest_matches_first($code, $replacements);
486 486
 
487 487
         return $code;
488 488
     }
@@ -495,26 +495,26 @@  discard block
 block discarded – undo
495 495
      * @param string $code
496 496
      * @return string
497 497
      */
498
-    public function hide_fontface_and_maybe_cdn( $code )
498
+    public function hide_fontface_and_maybe_cdn($code)
499 499
     {
500 500
         // Proceed only if @font-face declarations exist within $code.
501
-        preg_match_all( self::FONT_FACE_REGEX, $code, $fontfaces );
502
-        if ( isset( $fontfaces[0] ) ) {
501
+        preg_match_all(self::FONT_FACE_REGEX, $code, $fontfaces);
502
+        if (isset($fontfaces[0])) {
503 503
             // Check if we need to cdn fonts or not.
504
-            $do_font_cdn = apply_filters( 'autoptimize_filter_css_fonts_cdn', false );
504
+            $do_font_cdn = apply_filters('autoptimize_filter_css_fonts_cdn', false);
505 505
 
506
-            foreach ( $fontfaces[0] as $full_match ) {
506
+            foreach ($fontfaces[0] as $full_match) {
507 507
                 // Keep original match so we can search/replace it.
508 508
                 $match_search = $full_match;
509 509
 
510 510
                 // Do font cdn if needed.
511
-                if ( $do_font_cdn ) {
512
-                    $full_match = $this->replace_urls( $full_match );
511
+                if ($do_font_cdn) {
512
+                    $full_match = $this->replace_urls($full_match);
513 513
                 }
514 514
 
515 515
                 // Replace declaration with its base64 encoded string.
516
-                $replacement = self::build_marker( 'FONTFACE', $full_match );
517
-                $code = str_replace( $match_search, $replacement, $code );
516
+                $replacement = self::build_marker('FONTFACE', $full_match);
517
+                $code = str_replace($match_search, $replacement, $code);
518 518
             }
519 519
         }
520 520
 
@@ -528,16 +528,16 @@  discard block
 block discarded – undo
528 528
      * @param string $code
529 529
      * @return string
530 530
      */
531
-    public function restore_fontface( $code )
531
+    public function restore_fontface($code)
532 532
     {
533
-        return $this->restore_marked_content( 'FONTFACE', $code );
533
+        return $this->restore_marked_content('FONTFACE', $code);
534 534
     }
535 535
 
536 536
     // Re-write (and/or inline) referenced assets.
537
-    public function rewrite_assets( $code )
537
+    public function rewrite_assets($code)
538 538
     {
539 539
         // Handle @font-face rules by hiding and processing them separately.
540
-        $code = $this->hide_fontface_and_maybe_cdn( $code );
540
+        $code = $this->hide_fontface_and_maybe_cdn($code);
541 541
 
542 542
         /**
543 543
          * TODO/FIXME:
@@ -553,30 +553,30 @@  discard block
 block discarded – undo
553 553
         $url_src_matches = array();
554 554
         $imgreplace = array();
555 555
         // Matches and captures anything specified within the literal `url()` and excludes those containing data: URIs.
556
-        preg_match_all( self::ASSETS_REGEX, $code, $url_src_matches );
557
-        if ( is_array( $url_src_matches ) && ! empty( $url_src_matches ) ) {
558
-            foreach ( $url_src_matches[1] as $count => $original_url ) {
556
+        preg_match_all(self::ASSETS_REGEX, $code, $url_src_matches);
557
+        if (is_array($url_src_matches) && !empty($url_src_matches)) {
558
+            foreach ($url_src_matches[1] as $count => $original_url) {
559 559
                 // Removes quotes and other cruft.
560
-                $url = trim( $original_url, " \t\n\r\0\x0B\"'" );
560
+                $url = trim($original_url, " \t\n\r\0\x0B\"'");
561 561
 
562 562
                 // If datauri inlining is turned on, do it.
563 563
                 $inlined = false;
564
-                if ( $this->datauris ) {
564
+                if ($this->datauris) {
565 565
                     $iurl = $url;
566
-                    if ( false !== strpos( $iurl, '?' ) ) {
567
-                        $iurl = strtok( $iurl, '?' );
566
+                    if (false !== strpos($iurl, '?')) {
567
+                        $iurl = strtok($iurl, '?');
568 568
                     }
569 569
 
570
-                    $ipath = $this->getpath( $iurl );
570
+                    $ipath = $this->getpath($iurl);
571 571
 
572
-                    $excluded = $this->check_datauri_exclude_list( $ipath );
573
-                    if ( ! $excluded ) {
574
-                        $is_datauri_candidate = $this->is_datauri_candidate( $ipath );
575
-                        if ( $is_datauri_candidate ) {
576
-                            $datauri     = $this->build_or_get_datauri_image( $ipath );
572
+                    $excluded = $this->check_datauri_exclude_list($ipath);
573
+                    if (!$excluded) {
574
+                        $is_datauri_candidate = $this->is_datauri_candidate($ipath);
575
+                        if ($is_datauri_candidate) {
576
+                            $datauri     = $this->build_or_get_datauri_image($ipath);
577 577
                             $base64data  = $datauri['base64data'];
578 578
                             // Add it to the list for replacement.
579
-                            $imgreplace[ $url_src_matches[1][ $count ] ] = str_replace(
579
+                            $imgreplace[$url_src_matches[1][$count]] = str_replace(
580 580
                                     $original_url,
581 581
                                     $datauri['full'],
582 582
                                     $url_src_matches[1][$count]
@@ -592,20 +592,20 @@  discard block
 block discarded – undo
592 592
                  * inlining isn't turned on, or if a resource is skipped from
593 593
                  * being inlined for whatever reason above.
594 594
                  */
595
-                if ( ! $inlined && ( ! empty( $this->cdn_url ) || has_filter( 'autoptimize_filter_base_replace_cdn' ) ) ) {
595
+                if (!$inlined && (!empty($this->cdn_url) || has_filter('autoptimize_filter_base_replace_cdn'))) {
596 596
                     // Just do the "simple" CDN replacement.
597
-                    $replacement_url = $this->url_replace_cdn( $url );
598
-                    $imgreplace[ $url_src_matches[1][ $count ] ] = str_replace(
597
+                    $replacement_url = $this->url_replace_cdn($url);
598
+                    $imgreplace[$url_src_matches[1][$count]] = str_replace(
599 599
                         $original_url, $replacement_url, $url_src_matches[1][$count]
600 600
                     );
601 601
                 }
602 602
             }
603 603
         }
604 604
 
605
-        $code = self::replace_longest_matches_first( $code, $imgreplace );
605
+        $code = self::replace_longest_matches_first($code, $imgreplace);
606 606
 
607 607
         // Replace back font-face markers with actual font-face declarations.
608
-        $code = $this->restore_fontface( $code );
608
+        $code = $this->restore_fontface($code);
609 609
 
610 610
         return $code;
611 611
     }
@@ -613,29 +613,29 @@  discard block
 block discarded – undo
613 613
     // Joins and optimizes CSS.
614 614
     public function minify()
615 615
     {
616
-        foreach ( $this->css as $group ) {
617
-            list( $media, $css ) = $group;
618
-            if ( preg_match( '#^INLINE;#', $css ) ) {
616
+        foreach ($this->css as $group) {
617
+            list($media, $css) = $group;
618
+            if (preg_match('#^INLINE;#', $css)) {
619 619
                 // <style>.
620
-                $css = preg_replace( '#^INLINE;#', '', $css );
621
-                $css = self::fixurls( ABSPATH . 'index.php', $css ); // ABSPATH already contains a trailing slash.
622
-                $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $css, '' );
623
-                if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
620
+                $css = preg_replace('#^INLINE;#', '', $css);
621
+                $css = self::fixurls(ABSPATH.'index.php', $css); // ABSPATH already contains a trailing slash.
622
+                $tmpstyle = apply_filters('autoptimize_css_individual_style', $css, '');
623
+                if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
624 624
                     $css = $tmpstyle;
625 625
                     $this->alreadyminified = true;
626 626
                 }
627 627
             } else {
628 628
                 // <link>
629
-                if ( false !== $css && file_exists( $css ) && is_readable( $css ) ) {
629
+                if (false !== $css && file_exists($css) && is_readable($css)) {
630 630
                     $cssPath = $css;
631
-                    $css = self::fixurls( $cssPath, file_get_contents( $cssPath ) );
632
-                    $css = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $css );
633
-                    $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $css, $cssPath );
634
-                    if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
631
+                    $css = self::fixurls($cssPath, file_get_contents($cssPath));
632
+                    $css = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $css);
633
+                    $tmpstyle = apply_filters('autoptimize_css_individual_style', $css, $cssPath);
634
+                    if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
635 635
                         $css = $tmpstyle;
636 636
                         $this->alreadyminified = true;
637
-                    } elseif ( $this->can_inject_late( $cssPath, $css ) ) {
638
-                        $css = self::build_injectlater_marker( $cssPath, md5( $css ) );
637
+                    } elseif ($this->can_inject_late($cssPath, $css)) {
638
+                        $css = self::build_injectlater_marker($cssPath, md5($css));
639 639
                     }
640 640
                 } else {
641 641
                     // Couldn't read CSS. Maybe getpath isn't working?
@@ -643,12 +643,12 @@  discard block
 block discarded – undo
643 643
                 }
644 644
             }
645 645
 
646
-            foreach ( $media as $elem ) {
647
-                if ( ! empty( $css ) ) {
648
-                    if ( ! isset( $this->csscode[$elem] ) ) {
646
+            foreach ($media as $elem) {
647
+                if (!empty($css)) {
648
+                    if (!isset($this->csscode[$elem])) {
649 649
                         $this->csscode[$elem] = '';
650 650
                     }
651
-                    $this->csscode[$elem] .= "\n/*FILESTART*/" . $css;
651
+                    $this->csscode[$elem] .= "\n/*FILESTART*/".$css;
652 652
                 }
653 653
             }
654 654
         }
@@ -656,133 +656,133 @@  discard block
 block discarded – undo
656 656
         // Check for duplicate code.
657 657
         $md5list = array();
658 658
         $tmpcss  = $this->csscode;
659
-        foreach ( $tmpcss as $media => $code ) {
660
-            $md5sum    = md5( $code );
659
+        foreach ($tmpcss as $media => $code) {
660
+            $md5sum    = md5($code);
661 661
             $medianame = $media;
662
-            foreach ( $md5list as $med => $sum ) {
662
+            foreach ($md5list as $med => $sum) {
663 663
                 // If same code.
664
-                if ( $sum === $md5sum ) {
664
+                if ($sum === $md5sum) {
665 665
                     // Add the merged code.
666
-                    $medianame                 = $med . ', ' . $media;
666
+                    $medianame                 = $med.', '.$media;
667 667
                     $this->csscode[$medianame] = $code;
668 668
                     $md5list[$medianame]       = $md5list[$med];
669
-                    unset( $this->csscode[$med], $this->csscode[$media], $md5list[$med] );
669
+                    unset($this->csscode[$med], $this->csscode[$media], $md5list[$med]);
670 670
                 }
671 671
             }
672 672
             $md5list[$medianame] = $md5sum;
673 673
         }
674
-        unset( $tmpcss );
674
+        unset($tmpcss);
675 675
 
676 676
         // Manage @imports, while is for recursive import management.
677
-        foreach ( $this->csscode as &$thiscss ) {
677
+        foreach ($this->csscode as &$thiscss) {
678 678
             // Flag to trigger import reconstitution and var to hold external imports.
679 679
             $fiximports       = false;
680 680
             $external_imports = '';
681 681
 
682 682
             // remove comments to avoid importing commented-out imports.
683
-            $thiscss_nocomments = preg_replace( '#/\*.*\*/#Us', '', $thiscss );
684
-            while ( preg_match_all( '#@import +(?:url)?(?:(?:\((["\']?)(?:[^"\')]+)\1\)|(["\'])(?:[^"\']+)\2)(?:[^,;"\']+(?:,[^,;"\']+)*)?)(?:;)#mi', $thiscss_nocomments, $matches ) ) {
685
-                foreach ( $matches[0] as $import ) {
686
-                    if ( $this->isremovable( $import, $this->cssremovables ) ) {
687
-                        $thiscss = str_replace( $import, '', $thiscss );
683
+            $thiscss_nocomments = preg_replace('#/\*.*\*/#Us', '', $thiscss);
684
+            while (preg_match_all('#@import +(?:url)?(?:(?:\((["\']?)(?:[^"\')]+)\1\)|(["\'])(?:[^"\']+)\2)(?:[^,;"\']+(?:,[^,;"\']+)*)?)(?:;)#mi', $thiscss_nocomments, $matches)) {
685
+                foreach ($matches[0] as $import) {
686
+                    if ($this->isremovable($import, $this->cssremovables)) {
687
+                        $thiscss = str_replace($import, '', $thiscss);
688 688
                         $import_ok = true;
689 689
                     } else {
690
-                        $url = trim( preg_replace( '#^.*((?:https?:|ftp:)?//.*\.css).*$#', '$1', trim( $import ) ), " \t\n\r\0\x0B\"'" );
691
-                        $path = $this->getpath( $url );
690
+                        $url = trim(preg_replace('#^.*((?:https?:|ftp:)?//.*\.css).*$#', '$1', trim($import)), " \t\n\r\0\x0B\"'");
691
+                        $path = $this->getpath($url);
692 692
                         $import_ok = false;
693
-                        if ( file_exists( $path ) && is_readable( $path ) ) {
694
-                            $code = addcslashes( self::fixurls( $path, file_get_contents( $path ) ), "\\" );
695
-                            $code = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $code );
696
-                            $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $code, '' );
697
-                            if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
693
+                        if (file_exists($path) && is_readable($path)) {
694
+                            $code = addcslashes(self::fixurls($path, file_get_contents($path)), "\\");
695
+                            $code = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $code);
696
+                            $tmpstyle = apply_filters('autoptimize_css_individual_style', $code, '');
697
+                            if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
698 698
                                 $code = $tmpstyle;
699 699
                                 $this->alreadyminified = true;
700
-                            } elseif ( $this->can_inject_late( $path, $code ) ) {
701
-                                $code = self::build_injectlater_marker( $path, md5( $code ) );
700
+                            } elseif ($this->can_inject_late($path, $code)) {
701
+                                $code = self::build_injectlater_marker($path, md5($code));
702 702
                             }
703 703
 
704
-                            if ( ! empty( $code ) ) {
705
-                                $tmp_thiscss = preg_replace( '#(/\*FILESTART\*/.*)' . preg_quote( $import, '#' ) . '#Us', '/*FILESTART2*/' . $code . '$1', $thiscss );
706
-                                if ( ! empty( $tmp_thiscss ) ) {
704
+                            if (!empty($code)) {
705
+                                $tmp_thiscss = preg_replace('#(/\*FILESTART\*/.*)'.preg_quote($import, '#').'#Us', '/*FILESTART2*/'.$code.'$1', $thiscss);
706
+                                if (!empty($tmp_thiscss)) {
707 707
                                     $thiscss = $tmp_thiscss;
708 708
                                     $import_ok = true;
709
-                                    unset( $tmp_thiscss );
709
+                                    unset($tmp_thiscss);
710 710
                                 }
711 711
                             }
712
-                            unset( $code );
712
+                            unset($code);
713 713
                         }
714 714
                     }
715
-                    if ( ! $import_ok ) {
715
+                    if (!$import_ok) {
716 716
                         // External imports and general fall-back.
717 717
                         $external_imports .= $import;
718 718
 
719
-                        $thiscss    = str_replace( $import, '', $thiscss );
719
+                        $thiscss    = str_replace($import, '', $thiscss);
720 720
                         $fiximports = true;
721 721
                     }
722 722
                 }
723
-                $thiscss = preg_replace( '#/\*FILESTART\*/#', '', $thiscss );
724
-                $thiscss = preg_replace( '#/\*FILESTART2\*/#', '/*FILESTART*/', $thiscss );
723
+                $thiscss = preg_replace('#/\*FILESTART\*/#', '', $thiscss);
724
+                $thiscss = preg_replace('#/\*FILESTART2\*/#', '/*FILESTART*/', $thiscss);
725 725
 
726 726
                 // and update $thiscss_nocomments before going into next iteration in while loop.
727
-                $thiscss_nocomments = preg_replace( '#/\*.*\*/#Us', '', $thiscss );
727
+                $thiscss_nocomments = preg_replace('#/\*.*\*/#Us', '', $thiscss);
728 728
             }
729
-            unset( $thiscss_nocomments );
729
+            unset($thiscss_nocomments);
730 730
 
731 731
             // Add external imports to top of aggregated CSS.
732
-            if ( $fiximports ) {
733
-                $thiscss = $external_imports . $thiscss;
732
+            if ($fiximports) {
733
+                $thiscss = $external_imports.$thiscss;
734 734
             }
735 735
         }
736
-        unset( $thiscss );
736
+        unset($thiscss);
737 737
 
738 738
         // $this->csscode has all the uncompressed code now.
739
-        foreach ( $this->csscode as &$code ) {
739
+        foreach ($this->csscode as &$code) {
740 740
             // Check for already-minified code.
741
-            $hash = md5( $code );
742
-            do_action( 'autoptimize_action_css_hash', $hash );
743
-            $ccheck = new autoptimizeCache( $hash, 'css' );
744
-            if ( $ccheck->check() ) {
741
+            $hash = md5($code);
742
+            do_action('autoptimize_action_css_hash', $hash);
743
+            $ccheck = new autoptimizeCache($hash, 'css');
744
+            if ($ccheck->check()) {
745 745
                 $code = $ccheck->retrieve();
746
-                $this->hashmap[md5( $code )] = $hash;
746
+                $this->hashmap[md5($code)] = $hash;
747 747
                 continue;
748 748
             }
749
-            unset( $ccheck );
749
+            unset($ccheck);
750 750
 
751 751
             // Rewrite and/or inline referenced assets.
752
-            $code = $this->rewrite_assets( $code );
752
+            $code = $this->rewrite_assets($code);
753 753
 
754 754
             // Minify.
755
-            $code = $this->run_minifier_on( $code );
755
+            $code = $this->run_minifier_on($code);
756 756
 
757 757
             // Bring back INJECTLATER stuff.
758
-            $code = $this->inject_minified( $code );
758
+            $code = $this->inject_minified($code);
759 759
 
760 760
             // Filter results.
761
-            $tmp_code = apply_filters( 'autoptimize_css_after_minify', $code );
762
-            if ( ! empty( $tmp_code ) ) {
761
+            $tmp_code = apply_filters('autoptimize_css_after_minify', $code);
762
+            if (!empty($tmp_code)) {
763 763
                 $code = $tmp_code;
764
-                unset( $tmp_code );
764
+                unset($tmp_code);
765 765
             }
766 766
 
767
-            $this->hashmap[md5( $code )] = $hash;
767
+            $this->hashmap[md5($code)] = $hash;
768 768
         }
769 769
 
770
-        unset( $code );
770
+        unset($code);
771 771
         return true;
772 772
     }
773 773
 
774
-    public function run_minifier_on( $code )
774
+    public function run_minifier_on($code)
775 775
     {
776
-        if ( ! $this->alreadyminified ) {
777
-            $do_minify = apply_filters( 'autoptimize_css_do_minify', true );
776
+        if (!$this->alreadyminified) {
777
+            $do_minify = apply_filters('autoptimize_css_do_minify', true);
778 778
 
779
-            if ( $do_minify ) {
779
+            if ($do_minify) {
780 780
                 $cssmin   = new autoptimizeCSSmin();
781
-                $tmp_code = trim( $cssmin->run( $code ) );
781
+                $tmp_code = trim($cssmin->run($code));
782 782
 
783
-                if ( ! empty( $tmp_code ) ) {
783
+                if (!empty($tmp_code)) {
784 784
                     $code = $tmp_code;
785
-                    unset( $tmp_code );
785
+                    unset($tmp_code);
786 786
                 }
787 787
             }
788 788
         }
@@ -794,14 +794,14 @@  discard block
 block discarded – undo
794 794
     public function cache()
795 795
     {
796 796
         // CSS cache.
797
-        foreach ( $this->csscode as $media => $code ) {
798
-            $md5 = $this->hashmap[md5( $code )];
799
-            $cache = new autoptimizeCache( $md5, 'css' );
800
-            if ( ! $cache->check() ) {
797
+        foreach ($this->csscode as $media => $code) {
798
+            $md5 = $this->hashmap[md5($code)];
799
+            $cache = new autoptimizeCache($md5, 'css');
800
+            if (!$cache->check()) {
801 801
                 // Cache our code.
802
-                $cache->cache( $code, 'text/css' );
802
+                $cache->cache($code, 'text/css');
803 803
             }
804
-            $this->url[$media] = AUTOPTIMIZE_CACHE_URL . $cache->getname();
804
+            $this->url[$media] = AUTOPTIMIZE_CACHE_URL.$cache->getname();
805 805
         }
806 806
     }
807 807
 
@@ -809,136 +809,136 @@  discard block
 block discarded – undo
809 809
     public function getcontent()
810 810
     {
811 811
         // Restore the full content (only applies when "autoptimize_filter_css_justhead" filter is true).
812
-        if ( ! empty( $this->restofcontent ) ) {
812
+        if (!empty($this->restofcontent)) {
813 813
             $this->content .= $this->restofcontent;
814 814
             $this->restofcontent = '';
815 815
         }
816 816
 
817 817
         // Inject the new stylesheets.
818
-        $replaceTag = array( '<title', 'before' );
819
-        $replaceTag = apply_filters( 'autoptimize_filter_css_replacetag', $replaceTag, $this->content );
818
+        $replaceTag = array('<title', 'before');
819
+        $replaceTag = apply_filters('autoptimize_filter_css_replacetag', $replaceTag, $this->content);
820 820
 
821
-        if ( $this->inline ) {
822
-            foreach ( $this->csscode as $media => $code ) {
823
-                $this->inject_in_html( '<style type="text/css" media="' . $media . '">' . $code . '</style>', $replaceTag );
821
+        if ($this->inline) {
822
+            foreach ($this->csscode as $media => $code) {
823
+                $this->inject_in_html('<style type="text/css" media="'.$media.'">'.$code.'</style>', $replaceTag);
824 824
             }
825 825
         } else {
826
-            if ( $this->defer ) {
826
+            if ($this->defer) {
827 827
                 $preloadCssBlock = '';
828 828
                 $noScriptCssBlock = "<noscript id=\"aonoscrcss\">";
829 829
 
830 830
                 $defer_inline_code = $this->defer_inline;
831
-                if ( ! empty( $defer_inline_code ) ) {
832
-                    if ( apply_filters( 'autoptimize_filter_css_critcss_minify', true ) ) {
833
-                        $iCssHash = md5( $defer_inline_code );
834
-                        $iCssCache = new autoptimizeCache( $iCssHash, 'css' );
835
-                        if ( $iCssCache->check() ) {
831
+                if (!empty($defer_inline_code)) {
832
+                    if (apply_filters('autoptimize_filter_css_critcss_minify', true)) {
833
+                        $iCssHash = md5($defer_inline_code);
834
+                        $iCssCache = new autoptimizeCache($iCssHash, 'css');
835
+                        if ($iCssCache->check()) {
836 836
                             // we have the optimized inline CSS in cache.
837 837
                             $defer_inline_code = $iCssCache->retrieve();
838 838
                         } else {
839 839
                             $cssmin   = new autoptimizeCSSmin();
840
-                            $tmp_code = trim( $cssmin->run( $defer_inline_code ) );
840
+                            $tmp_code = trim($cssmin->run($defer_inline_code));
841 841
 
842
-                            if ( ! empty( $tmp_code ) ) {
842
+                            if (!empty($tmp_code)) {
843 843
                                 $defer_inline_code = $tmp_code;
844
-                                $iCssCache->cache( $defer_inline_code, 'text/css' );
845
-                                unset( $tmp_code );
844
+                                $iCssCache->cache($defer_inline_code, 'text/css');
845
+                                unset($tmp_code);
846 846
                             }
847 847
                         }
848 848
                     }
849 849
                     // inlined critical css set here, but injected when full CSS is injected
850 850
                     // to avoid CSS containing SVG with <title tag receiving the full CSS link.
851
-                    $inlined_ccss_block = '<style type="text/css" id="aoatfcss" media="all">' . $defer_inline_code . '</style>';
851
+                    $inlined_ccss_block = '<style type="text/css" id="aoatfcss" media="all">'.$defer_inline_code.'</style>';
852 852
                 }
853 853
             }
854 854
 
855
-            foreach ( $this->url as $media => $url ) {
856
-                $url = $this->url_replace_cdn( $url );
855
+            foreach ($this->url as $media => $url) {
856
+                $url = $this->url_replace_cdn($url);
857 857
 
858 858
                 // Add the stylesheet either deferred (import at bottom) or normal links in head.
859
-                if ( $this->defer ) {
859
+                if ($this->defer) {
860 860
                     $preloadOnLoad = autoptimizeConfig::get_ao_css_preload_onload();
861 861
 
862
-                    $preloadCssBlock .= '<link rel="preload" as="style" media="' . $media . '" href="' . $url . '" onload="' . $preloadOnLoad . '" />';
863
-                    $noScriptCssBlock .= '<link type="text/css" media="' . $media . '" href="' . $url . '" rel="stylesheet" />';
862
+                    $preloadCssBlock .= '<link rel="preload" as="style" media="'.$media.'" href="'.$url.'" onload="'.$preloadOnLoad.'" />';
863
+                    $noScriptCssBlock .= '<link type="text/css" media="'.$media.'" href="'.$url.'" rel="stylesheet" />';
864 864
                 } else {
865 865
                     // $this->inject_in_html('<link type="text/css" media="' . $media . '" href="' . $url . '" rel="stylesheet" />', $replaceTag);
866
-                    if ( strlen( $this->csscode[$media] ) > $this->cssinlinesize ) {
867
-                        $this->inject_in_html( '<link type="text/css" media="' . $media . '" href="' . $url . '" rel="stylesheet" />', $replaceTag );
868
-                    } elseif ( strlen( $this->csscode[$media] ) > 0 ) {
869
-                        $this->inject_in_html( '<style type="text/css" media="' . $media . '">' . $this->csscode[$media] . '</style>', $replaceTag );
866
+                    if (strlen($this->csscode[$media]) > $this->cssinlinesize) {
867
+                        $this->inject_in_html('<link type="text/css" media="'.$media.'" href="'.$url.'" rel="stylesheet" />', $replaceTag);
868
+                    } elseif (strlen($this->csscode[$media]) > 0) {
869
+                        $this->inject_in_html('<style type="text/css" media="'.$media.'">'.$this->csscode[$media].'</style>', $replaceTag);
870 870
                     }
871 871
                 }
872 872
             }
873 873
 
874
-            if ( $this->defer ) {
874
+            if ($this->defer) {
875 875
                 $preload_polyfill = autoptimizeConfig::get_ao_css_preload_polyfill();
876 876
                 $noScriptCssBlock .= '</noscript>';
877 877
                 // Inject inline critical CSS, the preloaded full CSS and the noscript-CSS.
878
-                $this->inject_in_html( $inlined_ccss_block . $preloadCssBlock . $noScriptCssBlock, $replaceTag );
878
+                $this->inject_in_html($inlined_ccss_block.$preloadCssBlock.$noScriptCssBlock, $replaceTag);
879 879
 
880 880
                 // Adds preload polyfill at end of body tag.
881 881
                 $this->inject_in_html(
882
-                    apply_filters( 'autoptimize_css_preload_polyfill', $preload_polyfill ),
883
-                    apply_filters( 'autoptimize_css_preload_polyfill_injectat', array( '</body>', 'before' ) )
882
+                    apply_filters('autoptimize_css_preload_polyfill', $preload_polyfill),
883
+                    apply_filters('autoptimize_css_preload_polyfill_injectat', array('</body>', 'before'))
884 884
                 );
885 885
             }
886 886
         }
887 887
 
888 888
         // restore comments.
889
-        $this->content = $this->restore_comments( $this->content );
889
+        $this->content = $this->restore_comments($this->content);
890 890
 
891 891
         // restore IE hacks.
892
-        $this->content = $this->restore_iehacks( $this->content );
892
+        $this->content = $this->restore_iehacks($this->content);
893 893
 
894 894
         // restore (no)script.
895
-        $this->content = $this->restore_marked_content( 'SCRIPT', $this->content );
895
+        $this->content = $this->restore_marked_content('SCRIPT', $this->content);
896 896
 
897 897
         // Restore noptimize.
898
-        $this->content = $this->restore_noptimize( $this->content );
898
+        $this->content = $this->restore_noptimize($this->content);
899 899
 
900 900
         // Return the modified stylesheet.
901 901
         return $this->content;
902 902
     }
903 903
 
904
-    static function fixurls( $file, $code )
904
+    static function fixurls($file, $code)
905 905
     {
906 906
         // Switch all imports to the url() syntax.
907
-        $code = preg_replace( '#@import ("|\')(.+?)\.css.*?("|\')#', '@import url("${2}.css")', $code );
907
+        $code = preg_replace('#@import ("|\')(.+?)\.css.*?("|\')#', '@import url("${2}.css")', $code);
908 908
 
909
-        if ( preg_match_all( self::ASSETS_REGEX, $code, $matches ) ) {
910
-            $file = str_replace( WP_ROOT_DIR, '/', $file );
909
+        if (preg_match_all(self::ASSETS_REGEX, $code, $matches)) {
910
+            $file = str_replace(WP_ROOT_DIR, '/', $file);
911 911
             /**
912 912
              * rollback as per https://github.com/futtta/autoptimize/issues/94
913 913
              * $file = str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', $file );
914 914
              */
915
-            $dir = dirname( $file ); // Like /themes/expound/css.
915
+            $dir = dirname($file); // Like /themes/expound/css.
916 916
 
917 917
             /**
918 918
              * $dir should not contain backslashes, since it's used to replace
919 919
              * urls, but it can contain them when running on Windows because
920 920
              * fixurls() is sometimes called with `ABSPATH . 'index.php'`
921 921
              */
922
-            $dir = str_replace( '\\', '/', $dir );
923
-            unset( $file ); // not used below at all.
922
+            $dir = str_replace('\\', '/', $dir);
923
+            unset($file); // not used below at all.
924 924
 
925 925
             $replace = array();
926
-            foreach ( $matches[1] as $k => $url ) {
926
+            foreach ($matches[1] as $k => $url) {
927 927
                 // Remove quotes.
928
-                $url    = trim( $url, " \t\n\r\0\x0B\"'" );
929
-                $noQurl = trim( $url, "\"'" );
930
-                if ( $url !== $noQurl ) {
928
+                $url    = trim($url, " \t\n\r\0\x0B\"'");
929
+                $noQurl = trim($url, "\"'");
930
+                if ($url !== $noQurl) {
931 931
                     $removedQuotes = true;
932 932
                 } else {
933 933
                     $removedQuotes = false;
934 934
                 }
935 935
 
936
-                if ( '' === $noQurl ) {
936
+                if ('' === $noQurl) {
937 937
                     continue;
938 938
                 }
939 939
 
940 940
                 $url = $noQurl;
941
-                if ( '/' === $url{0} || preg_match( '#^(https?://|ftp://|data:)#i', $url ) ) {
941
+                if ('/' === $url{0} || preg_match('#^(https?://|ftp://|data:)#i', $url)) {
942 942
                     // URL is protocol-relative, host-relative or something we don't touch.
943 943
                     continue;
944 944
                 } else {
@@ -947,49 +947,49 @@  discard block
 block discarded – undo
947 947
                      * rollback as per https://github.com/futtta/autoptimize/issues/94
948 948
                      * $newurl = preg_replace( '/https?:/', '', str_replace( ' ', '%20', AUTOPTIMIZE_WP_CONTENT_URL . str_replace( '//', '/', $dir . '/' . $url ) ) );
949 949
                      */
950
-                    $newurl = preg_replace( '/https?:/', '', str_replace( ' ', '%20', AUTOPTIMIZE_WP_ROOT_URL . str_replace( '//', '/', $dir . '/' . $url ) ) );
951
-                    $newurl = apply_filters( 'autoptimize_filter_css_fixurl_newurl', $newurl );
950
+                    $newurl = preg_replace('/https?:/', '', str_replace(' ', '%20', AUTOPTIMIZE_WP_ROOT_URL.str_replace('//', '/', $dir.'/'.$url)));
951
+                    $newurl = apply_filters('autoptimize_filter_css_fixurl_newurl', $newurl);
952 952
 
953 953
                     /**
954 954
                      * Hash the url + whatever was behind potentially for replacement
955 955
                      * We must do this, or different css classes referencing the same bg image (but
956 956
                      * different parts of it, say, in sprites and such) loose their stuff...
957 957
                      */
958
-                    $hash = md5( $url . $matches[2][$k] );
959
-                    $code = str_replace( $matches[0][$k], $hash, $code );
958
+                    $hash = md5($url.$matches[2][$k]);
959
+                    $code = str_replace($matches[0][$k], $hash, $code);
960 960
 
961
-                    if ( $removedQuotes ) {
962
-                        $replace[$hash] = "url('" . $newurl . "')" . $matches[2][$k];
961
+                    if ($removedQuotes) {
962
+                        $replace[$hash] = "url('".$newurl."')".$matches[2][$k];
963 963
                     } else {
964
-                        $replace[$hash] = 'url(' . $newurl . ')' . $matches[2][$k];
964
+                        $replace[$hash] = 'url('.$newurl.')'.$matches[2][$k];
965 965
                     }
966 966
                 }
967 967
             }
968 968
 
969
-            $code = self::replace_longest_matches_first( $code, $replace );
969
+            $code = self::replace_longest_matches_first($code, $replace);
970 970
         }
971 971
 
972 972
         return $code;
973 973
     }
974 974
 
975
-    private function ismovable( $tag )
975
+    private function ismovable($tag)
976 976
     {
977
-        if ( ! $this->aggregate ) {
977
+        if (!$this->aggregate) {
978 978
             return false;
979 979
         }
980 980
 
981
-        if ( ! empty( $this->whitelist ) ) {
982
-            foreach ( $this->whitelist as $match ) {
983
-                if ( false !== strpos( $tag, $match ) ) {
981
+        if (!empty($this->whitelist)) {
982
+            foreach ($this->whitelist as $match) {
983
+                if (false !== strpos($tag, $match)) {
984 984
                     return true;
985 985
                 }
986 986
             }
987 987
             // no match with whitelist.
988 988
             return false;
989 989
         } else {
990
-            if ( is_array( $this->dontmove ) && ! empty( $this->dontmove ) ) {
991
-                foreach ( $this->dontmove as $match ) {
992
-                    if ( false !== strpos( $tag, $match ) ) {
990
+            if (is_array($this->dontmove) && !empty($this->dontmove)) {
991
+                foreach ($this->dontmove as $match) {
992
+                    if (false !== strpos($tag, $match)) {
993 993
                         // Matched something.
994 994
                         return false;
995 995
                     }
@@ -1001,22 +1001,22 @@  discard block
 block discarded – undo
1001 1001
         }
1002 1002
     }
1003 1003
 
1004
-    private function can_inject_late( $cssPath, $css )
1004
+    private function can_inject_late($cssPath, $css)
1005 1005
     {
1006
-        $consider_minified_array = apply_filters( 'autoptimize_filter_css_consider_minified', false, $cssPath );
1007
-        if ( true !== $this->inject_min_late ) {
1006
+        $consider_minified_array = apply_filters('autoptimize_filter_css_consider_minified', false, $cssPath);
1007
+        if (true !== $this->inject_min_late) {
1008 1008
             // late-inject turned off.
1009 1009
             return false;
1010
-        } elseif ( ( false === strpos( $cssPath, 'min.css' ) ) && ( str_replace( $consider_minified_array, '', $cssPath ) === $cssPath ) ) {
1010
+        } elseif ((false === strpos($cssPath, 'min.css')) && (str_replace($consider_minified_array, '', $cssPath) === $cssPath)) {
1011 1011
             // file not minified based on filename & filter.
1012 1012
             return false;
1013
-        } elseif ( false !== strpos( $css, '@import' ) ) {
1013
+        } elseif (false !== strpos($css, '@import')) {
1014 1014
             // can't late-inject files with imports as those need to be aggregated.
1015 1015
             return false;
1016
-        } elseif ( ( false !== strpos( $css, '@font-face' ) ) && ( apply_filters( 'autoptimize_filter_css_fonts_cdn', false ) === true ) && ( ! empty( $this->cdn_url ) ) ) {
1016
+        } elseif ((false !== strpos($css, '@font-face')) && (apply_filters('autoptimize_filter_css_fonts_cdn', false) === true) && (!empty($this->cdn_url))) {
1017 1017
             // don't late-inject CSS with font-src's if fonts are set to be CDN'ed.
1018 1018
             return false;
1019
-        } elseif ( ( ( $this->datauris == true ) || ( ! empty( $this->cdn_url ) ) ) && preg_match( '#background[^;}]*url\(#Ui', $css ) ) {
1019
+        } elseif ((($this->datauris == true) || (!empty($this->cdn_url))) && preg_match('#background[^;}]*url\(#Ui', $css)) {
1020 1020
             // don't late-inject CSS with images if CDN is set OR if image inlining is on.
1021 1021
             return false;
1022 1022
         } else {
@@ -1034,32 +1034,32 @@  discard block
 block discarded – undo
1034 1034
      *
1035 1035
      * @return bool|string Url pointing to the minified css file or false.
1036 1036
      */
1037
-    public function minify_single( $filepath, $cache_miss = false )
1037
+    public function minify_single($filepath, $cache_miss = false)
1038 1038
     {
1039
-        $contents = $this->prepare_minify_single( $filepath );
1039
+        $contents = $this->prepare_minify_single($filepath);
1040 1040
 
1041
-        if ( empty( $contents ) ) {
1041
+        if (empty($contents)) {
1042 1042
             return false;
1043 1043
         }
1044 1044
 
1045 1045
         // Check cache.
1046
-        $hash  = 'single_' . md5( $contents );
1047
-        $cache = new autoptimizeCache( $hash, 'css' );
1046
+        $hash  = 'single_'.md5($contents);
1047
+        $cache = new autoptimizeCache($hash, 'css');
1048 1048
 
1049 1049
         // If not in cache already, minify...
1050
-        if ( ! $cache->check() || $cache_miss ) {
1050
+        if (!$cache->check() || $cache_miss) {
1051 1051
             // Fixurls...
1052
-            $contents = self::fixurls( $filepath, $contents );
1052
+            $contents = self::fixurls($filepath, $contents);
1053 1053
             // CDN-replace any referenced assets if needed...
1054
-            $contents = $this->replace_urls( $contents );
1054
+            $contents = $this->replace_urls($contents);
1055 1055
             // Now minify...
1056 1056
             $cssmin   = new autoptimizeCSSmin();
1057
-            $contents = trim( $cssmin->run( $contents ) );
1057
+            $contents = trim($cssmin->run($contents));
1058 1058
             // Store in cache.
1059
-            $cache->cache( $contents, 'text/css' );
1059
+            $cache->cache($contents, 'text/css');
1060 1060
         }
1061 1061
 
1062
-        $url = $this->build_minify_single_url( $cache );
1062
+        $url = $this->build_minify_single_url($cache);
1063 1063
 
1064 1064
         return $url;
1065 1065
     }
@@ -1079,18 +1079,18 @@  discard block
 block discarded – undo
1079 1079
         return $this->options;
1080 1080
     }
1081 1081
 
1082
-    public function replaceOptions( $options )
1082
+    public function replaceOptions($options)
1083 1083
     {
1084 1084
         $this->options = $options;
1085 1085
     }
1086 1086
 
1087
-    public function setOption( $name, $value )
1087
+    public function setOption($name, $value)
1088 1088
     {
1089 1089
         $this->options[$name] = $value;
1090 1090
         $this->$name = $value;
1091 1091
     }
1092 1092
 
1093
-    public function getOption( $name )
1093
+    public function getOption($name)
1094 1094
     {
1095 1095
         return $this->options[$name];
1096 1096
     }
Please login to merge, or discard this patch.
classes/autoptimizeCache.php 1 patch
Spacing   +140 added lines, -140 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,17 +38,17 @@  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
         $this->cachedir = AUTOPTIMIZE_CACHE_DIR;
44 44
         $this->nogzip   = AUTOPTIMIZE_CACHE_NOGZIP;
45
-        if ( ! $this->nogzip ) {
46
-            $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . '.php';
45
+        if (!$this->nogzip) {
46
+            $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.'.php';
47 47
         } else {
48
-            if ( in_array( $ext, array( 'js', 'css' ) ) ) {
49
-                $this->filename = $ext . '/' . AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . '.' . $ext;
48
+            if (in_array($ext, array('js', 'css'))) {
49
+                $this->filename = $ext.'/'.AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.'.'.$ext;
50 50
             } else {
51
-                $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX . $md5 . '.' . $ext;
51
+                $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.'.'.$ext;
52 52
             }
53 53
         }
54 54
     }
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
      */
61 61
     public function check()
62 62
     {
63
-        return file_exists( $this->cachedir . $this->filename );
63
+        return file_exists($this->cachedir.$this->filename);
64 64
     }
65 65
 
66 66
     /**
@@ -70,11 +70,11 @@  discard block
 block discarded – undo
70 70
      */
71 71
     public function retrieve()
72 72
     {
73
-        if ( $this->check() ) {
74
-            if ( false == $this->nogzip ) {
75
-                return file_get_contents( $this->cachedir . $this->filename . '.none' );
73
+        if ($this->check()) {
74
+            if (false == $this->nogzip) {
75
+                return file_get_contents($this->cachedir.$this->filename.'.none');
76 76
             } else {
77
-                return file_get_contents( $this->cachedir . $this->filename );
77
+                return file_get_contents($this->cachedir.$this->filename);
78 78
             }
79 79
         }
80 80
         return false;
@@ -88,33 +88,33 @@  discard block
 block discarded – undo
88 88
      *
89 89
      * @return void
90 90
      */
91
-    public function cache( $data, $mime )
91
+    public function cache($data, $mime)
92 92
     {
93 93
         // off by default; check if cachedirs exist every time before caching
94 94
         //
95 95
         // to be activated for users that experience these ugly errors;
96 96
         // PHP Warning: file_put_contents failed to open stream: No such file or directory.
97
-        if ( apply_filters( 'autoptimize_filter_cache_checkdirs_on_write', false ) ) {
97
+        if (apply_filters('autoptimize_filter_cache_checkdirs_on_write', false)) {
98 98
             $this->check_and_create_dirs();
99 99
         }
100 100
 
101
-        if ( false === $this->nogzip ) {
101
+        if (false === $this->nogzip) {
102 102
             // We handle gzipping ourselves.
103 103
             $file    = 'default.php';
104
-            $phpcode = file_get_contents( AUTOPTIMIZE_PLUGIN_DIR . 'config/' . $file );
105
-            $phpcode = str_replace( array( '%%CONTENT%%', 'exit;' ), array( $mime, '' ), $phpcode );
104
+            $phpcode = file_get_contents(AUTOPTIMIZE_PLUGIN_DIR.'config/'.$file);
105
+            $phpcode = str_replace(array('%%CONTENT%%', 'exit;'), array($mime, ''), $phpcode);
106 106
 
107
-            file_put_contents( $this->cachedir . $this->filename, $phpcode );
108
-            file_put_contents( $this->cachedir . $this->filename . '.none', $data );
107
+            file_put_contents($this->cachedir.$this->filename, $phpcode);
108
+            file_put_contents($this->cachedir.$this->filename.'.none', $data);
109 109
         } else {
110 110
             // Write code to cache without doing anything else.
111
-            file_put_contents( $this->cachedir . $this->filename, $data );
112
-            if ( apply_filters( 'autoptimize_filter_cache_create_static_gzip', false ) ) {
111
+            file_put_contents($this->cachedir.$this->filename, $data);
112
+            if (apply_filters('autoptimize_filter_cache_create_static_gzip', false)) {
113 113
                 // Create an additional cached gzip file.
114
-                file_put_contents( $this->cachedir . $this->filename . '.gz', gzencode( $data, 9, FORCE_GZIP ) );
114
+                file_put_contents($this->cachedir.$this->filename.'.gz', gzencode($data, 9, FORCE_GZIP));
115 115
                 // If PHP Brotli extension is installed, create an additional cached Brotli file.
116
-                if ( function_exists( 'brotli_compress' ) ) {
117
-                    file_put_contents( $this->cachedir . $this->filename . '.br', brotli_compress( $data, 11, BROTLI_GENERIC ) );
116
+                if (function_exists('brotli_compress')) {
117
+                    file_put_contents($this->cachedir.$this->filename.'.br', brotli_compress($data, 11, BROTLI_GENERIC));
118 118
                 }
119 119
             }
120 120
         }
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
         // The original idea here was to provide 3rd party code a hook so that
133 133
         // it can "listen" to all the complete autoptimized-urls that the page
134 134
         // will emit... Or something to that effect I think?
135
-        apply_filters( 'autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL . $this->filename );
135
+        apply_filters('autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL.$this->filename);
136 136
 
137 137
         return $this->filename;
138 138
     }
@@ -145,11 +145,11 @@  discard block
 block discarded – undo
145 145
      * @param string $file Filename.
146 146
      * @return bool
147 147
      */
148
-    protected static function is_valid_cache_file( $dir, $file )
148
+    protected static function is_valid_cache_file($dir, $file)
149 149
     {
150
-        if ( '.' !== $file && '..' !== $file &&
151
-            false !== strpos( $file, AUTOPTIMIZE_CACHEFILE_PREFIX ) &&
152
-            is_file( $dir . $file ) ) {
150
+        if ('.' !== $file && '..' !== $file &&
151
+            false !== strpos($file, AUTOPTIMIZE_CACHEFILE_PREFIX) &&
152
+            is_file($dir.$file)) {
153 153
 
154 154
             // It's a valid file!
155 155
             return true;
@@ -167,16 +167,16 @@  discard block
 block discarded – undo
167 167
     protected static function clear_cache_classic()
168 168
     {
169 169
         $contents = self::get_cache_contents();
170
-        foreach ( $contents as $name => $files ) {
171
-            $dir = rtrim( AUTOPTIMIZE_CACHE_DIR . $name, '/' ) . '/';
172
-            foreach ( $files as $file ) {
173
-                if ( self::is_valid_cache_file( $dir, $file ) ) {
174
-                    @unlink( $dir . $file ); // @codingStandardsIgnoreLine
170
+        foreach ($contents as $name => $files) {
171
+            $dir = rtrim(AUTOPTIMIZE_CACHE_DIR.$name, '/').'/';
172
+            foreach ($files as $file) {
173
+                if (self::is_valid_cache_file($dir, $file)) {
174
+                    @unlink($dir.$file); // @codingStandardsIgnoreLine
175 175
                 }
176 176
             }
177 177
         }
178 178
 
179
-        @unlink( AUTOPTIMIZE_CACHE_DIR . '/.htaccess' ); // @codingStandardsIgnoreLine
179
+        @unlink(AUTOPTIMIZE_CACHE_DIR.'/.htaccess'); // @codingStandardsIgnoreLine
180 180
     }
181 181
 
182 182
     /**
@@ -187,19 +187,19 @@  discard block
 block discarded – undo
187 187
      *
188 188
      * @return bool
189 189
      */
190
-    protected static function rmdir( $pathname )
190
+    protected static function rmdir($pathname)
191 191
     {
192
-        $files = self::get_dir_contents( $pathname );
193
-        foreach ( $files as $file ) {
194
-            $path = $pathname . '/' . $file;
195
-            if ( is_dir( $path ) ) {
196
-                self::rmdir( $path );
192
+        $files = self::get_dir_contents($pathname);
193
+        foreach ($files as $file) {
194
+            $path = $pathname.'/'.$file;
195
+            if (is_dir($path)) {
196
+                self::rmdir($path);
197 197
             } else {
198
-                unlink( $path );
198
+                unlink($path);
199 199
             }
200 200
         }
201 201
 
202
-        return rmdir( $pathname );
202
+        return rmdir($pathname);
203 203
     }
204 204
 
205 205
     /**
@@ -216,12 +216,12 @@  discard block
 block discarded – undo
216 216
         $new_name = self::get_unique_name();
217 217
 
218 218
         // Makes sure the new pathname is on the same level...
219
-        $new_pathname = dirname( $dir ) . '/' . $new_name;
220
-        $renamed      = @rename( $dir, $new_pathname ); // @codingStandardsIgnoreLine
219
+        $new_pathname = dirname($dir).'/'.$new_name;
220
+        $renamed      = @rename($dir, $new_pathname); // @codingStandardsIgnoreLine
221 221
 
222 222
         // When renamed, re-create the default cache directory back so it's
223 223
         // available again...
224
-        if ( $renamed ) {
224
+        if ($renamed) {
225 225
             $ok = self::cacheavail();
226 226
         }
227 227
 
@@ -235,7 +235,7 @@  discard block
 block discarded – undo
235 235
      */
236 236
     public static function advanced_cache_clear_enabled()
237 237
     {
238
-        return apply_filters( 'autoptimize_filter_cache_clear_advanced', false );
238
+        return apply_filters('autoptimize_filter_cache_clear_advanced', false);
239 239
     }
240 240
 
241 241
     /**
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
     protected static function get_unique_name()
247 247
     {
248 248
         $prefix   = self::get_advanced_cache_clear_prefix();
249
-        $new_name = uniqid( $prefix, true );
249
+        $new_name = uniqid($prefix, true);
250 250
 
251 251
         return $new_name;
252 252
     }
@@ -259,8 +259,8 @@  discard block
 block discarded – undo
259 259
     protected static function get_advanced_cache_clear_prefix()
260 260
     {
261 261
         $pathname = self::get_pathname_base();
262
-        $basename = basename( $pathname );
263
-        $prefix   = $basename . '-';
262
+        $basename = basename($pathname);
263
+        $prefix   = $basename.'-';
264 264
 
265 265
         return $prefix;
266 266
     }
@@ -273,9 +273,9 @@  discard block
 block discarded – undo
273 273
      *
274 274
      * @return array
275 275
      */
276
-    protected static function get_dir_contents( $pathname )
276
+    protected static function get_dir_contents($pathname)
277 277
     {
278
-        return array_slice( scandir( $pathname ), 2 );
278
+        return array_slice(scandir($pathname), 2);
279 279
     }
280 280
 
281 281
     /**
@@ -289,18 +289,18 @@  discard block
 block discarded – undo
289 289
     {
290 290
         $dir    = self::get_pathname_base();
291 291
         $prefix = self::get_advanced_cache_clear_prefix();
292
-        $parent = dirname( $dir );
292
+        $parent = dirname($dir);
293 293
         $ok     = false;
294 294
 
295 295
         // Returns the list of files without '.' and '..' elements.
296
-        $files = self::get_dir_contents( $parent );
297
-        if ( is_array( $files ) && ! empty( $files ) ) {
298
-            foreach ( $files as $file ) {
299
-                $path     = $parent . '/' . $file;
300
-                $prefixed = ( false !== strpos( $path, $prefix ) );
296
+        $files = self::get_dir_contents($parent);
297
+        if (is_array($files) && !empty($files)) {
298
+            foreach ($files as $file) {
299
+                $path     = $parent.'/'.$file;
300
+                $prefixed = (false !== strpos($path, $prefix));
301 301
                 // Removing only our own (prefixed) directories...
302
-                if ( is_dir( $path ) && $prefixed ) {
303
-                    $ok = self::rmdir( $path );
302
+                if (is_dir($path) && $prefixed) {
303
+                    $ok = self::rmdir($path);
304 304
                 }
305 305
             }
306 306
         }
@@ -320,9 +320,9 @@  discard block
 block discarded – undo
320 320
     {
321 321
         $pathname = self::get_pathname_base();
322 322
 
323
-        if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
323
+        if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
324 324
             $blog_id   = get_current_blog_id();
325
-            $pathname .= $blog_id . '/';
325
+            $pathname .= $blog_id.'/';
326 326
         }
327 327
 
328 328
         return $pathname;
@@ -335,7 +335,7 @@  discard block
 block discarded – undo
335 335
      */
336 336
     protected static function get_pathname_base()
337 337
     {
338
-        $pathname = WP_CONTENT_DIR . AUTOPTIMIZE_CACHE_CHILD_DIR;
338
+        $pathname = WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR;
339 339
 
340 340
         return $pathname;
341 341
     }
@@ -347,39 +347,39 @@  discard block
 block discarded – undo
347 347
      *
348 348
      * @return bool
349 349
      */
350
-    public static function clearall( $propagate = true )
350
+    public static function clearall($propagate = true)
351 351
     {
352
-        if ( ! self::cacheavail() ) {
352
+        if (!self::cacheavail()) {
353 353
             return false;
354 354
         }
355 355
 
356 356
         // TODO/FIXME: If cache is big, switch to advanced/new cache clearing automatically?
357
-        if ( self::advanced_cache_clear_enabled() ) {
357
+        if (self::advanced_cache_clear_enabled()) {
358 358
             self::clear_cache_via_rename();
359 359
         } else {
360 360
             self::clear_cache_classic();
361 361
         }
362 362
 
363 363
         // Remove the transient so it gets regenerated...
364
-        delete_transient( 'autoptimize_stats' );
364
+        delete_transient('autoptimize_stats');
365 365
 
366 366
         // Cache was just purged, clear page cache and allow others to hook into our purging...
367
-        if ( true === $propagate ) {
368
-            if ( ! function_exists( 'autoptimize_do_cachepurged_action' ) ) {
367
+        if (true === $propagate) {
368
+            if (!function_exists('autoptimize_do_cachepurged_action')) {
369 369
                 function autoptimize_do_cachepurged_action() {
370
-                    do_action( 'autoptimize_action_cachepurged' );
370
+                    do_action('autoptimize_action_cachepurged');
371 371
                 }
372 372
             }
373
-            add_action( 'shutdown', 'autoptimize_do_cachepurged_action', 11 );
374
-            add_action( 'autoptimize_action_cachepurged', array( 'autoptimizeCache', 'flushPageCache' ), 10, 0 );
373
+            add_action('shutdown', 'autoptimize_do_cachepurged_action', 11);
374
+            add_action('autoptimize_action_cachepurged', array('autoptimizeCache', 'flushPageCache'), 10, 0);
375 375
         }
376 376
 
377 377
         // Warm cache (part of speedupper)!
378
-        if ( apply_filters( 'autoptimize_filter_speedupper', true ) && false == get_transient( 'autoptimize_cache_warmer_protector' ) ) {
379
-            set_transient( 'autoptimize_cache_warmer_protector', 'I shall not warm cache for another 10 minutes.', 60 * 10 );
380
-            $url   = site_url() . '/?ao_speedup_cachebuster=' . rand( 1, 100000 );
381
-            $cache = @wp_remote_get( $url ); // @codingStandardsIgnoreLine
382
-            unset( $cache );
378
+        if (apply_filters('autoptimize_filter_speedupper', true) && false == get_transient('autoptimize_cache_warmer_protector')) {
379
+            set_transient('autoptimize_cache_warmer_protector', 'I shall not warm cache for another 10 minutes.', 60*10);
380
+            $url   = site_url().'/?ao_speedup_cachebuster='.rand(1, 100000);
381
+            $cache = @wp_remote_get($url); // @codingStandardsIgnoreLine
382
+            unset($cache);
383 383
         }
384 384
 
385 385
         return true;
@@ -394,7 +394,7 @@  discard block
 block discarded – undo
394 394
      */
395 395
     public static function clearall_actionless()
396 396
     {
397
-        return self::clearall( false );
397
+        return self::clearall(false);
398 398
     }
399 399
 
400 400
     /**
@@ -406,8 +406,8 @@  discard block
 block discarded – undo
406 406
     {
407 407
         $contents = array();
408 408
 
409
-        foreach ( array( '', 'js', 'css' ) as $dir ) {
410
-            $contents[ $dir ] = scandir( AUTOPTIMIZE_CACHE_DIR . $dir );
409
+        foreach (array('', 'js', 'css') as $dir) {
410
+            $contents[$dir] = scandir(AUTOPTIMIZE_CACHE_DIR.$dir);
411 411
         }
412 412
 
413 413
         return $contents;
@@ -420,21 +420,21 @@  discard block
 block discarded – undo
420 420
      */
421 421
     public static function stats()
422 422
     {
423
-        $stats = get_transient( 'autoptimize_stats' );
423
+        $stats = get_transient('autoptimize_stats');
424 424
 
425 425
         // If no transient, do the actual scan!
426
-        if ( ! is_array( $stats ) ) {
427
-            if ( ! self::cacheavail() ) {
426
+        if (!is_array($stats)) {
427
+            if (!self::cacheavail()) {
428 428
                 return 0;
429 429
             }
430 430
             $stats = self::stats_scan();
431 431
             $count = $stats[0];
432
-            if ( $count > 100 ) {
432
+            if ($count > 100) {
433 433
                 // Store results in transient.
434 434
                 set_transient(
435 435
                     'autoptimize_stats',
436 436
                     $stats,
437
-                    apply_filters( 'autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS )
437
+                    apply_filters('autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS)
438 438
                 );
439 439
             }
440 440
         }
@@ -457,30 +457,30 @@  discard block
 block discarded – undo
457 457
         $size  = 0;
458 458
 
459 459
         // Scan everything in our cache directories.
460
-        foreach ( self::get_cache_contents() as $name => $files ) {
461
-            $dir = rtrim( AUTOPTIMIZE_CACHE_DIR . $name, '/' ) . '/';
462
-            foreach ( $files as $file ) {
463
-                if ( self::is_valid_cache_file( $dir, $file ) ) {
464
-                    if ( AUTOPTIMIZE_CACHE_NOGZIP &&
460
+        foreach (self::get_cache_contents() as $name => $files) {
461
+            $dir = rtrim(AUTOPTIMIZE_CACHE_DIR.$name, '/').'/';
462
+            foreach ($files as $file) {
463
+                if (self::is_valid_cache_file($dir, $file)) {
464
+                    if (AUTOPTIMIZE_CACHE_NOGZIP &&
465 465
                         (
466
-                            false !== strpos( $file, '.js' ) ||
467
-                            false !== strpos( $file, '.css' ) ||
468
-                            false !== strpos( $file, '.img' ) ||
469
-                            false !== strpos( $file, '.txt' )
466
+                            false !== strpos($file, '.js') ||
467
+                            false !== strpos($file, '.css') ||
468
+                            false !== strpos($file, '.img') ||
469
+                            false !== strpos($file, '.txt')
470 470
                         )
471 471
                     ) {
472 472
                         // Web server is gzipping, we count .js|.css|.img|.txt files.
473 473
                         $count++;
474
-                    } elseif ( ! AUTOPTIMIZE_CACHE_NOGZIP && false !== strpos( $file, '.none' ) ) {
474
+                    } elseif (!AUTOPTIMIZE_CACHE_NOGZIP && false !== strpos($file, '.none')) {
475 475
                         // We are gzipping ourselves via php, counting only .none files.
476 476
                         $count++;
477 477
                     }
478
-                    $size += filesize( $dir . $file );
478
+                    $size += filesize($dir.$file);
479 479
                 }
480 480
             }
481 481
         }
482 482
 
483
-        $stats = array( $count, $size, time() );
483
+        $stats = array($count, $size, time());
484 484
 
485 485
         return $stats;
486 486
     }
@@ -494,22 +494,22 @@  discard block
 block discarded – undo
494 494
      */
495 495
     public static function cacheavail()
496 496
     {
497
-        if ( false === autoptimizeCache::check_and_create_dirs() ) {
497
+        if (false === autoptimizeCache::check_and_create_dirs()) {
498 498
             return false;
499 499
         }
500 500
 
501 501
         // Using .htaccess inside our cache folder to overrule wp-super-cache.
502
-        $htaccess = AUTOPTIMIZE_CACHE_DIR . '/.htaccess';
503
-        if ( ! is_file( $htaccess ) ) {
502
+        $htaccess = AUTOPTIMIZE_CACHE_DIR.'/.htaccess';
503
+        if (!is_file($htaccess)) {
504 504
             /**
505 505
              * Create `wp-content/AO_htaccess_tmpl` file with
506 506
              * whatever htaccess rules you might need
507 507
              * if you want to override default AO htaccess
508 508
              */
509
-            $htaccess_tmpl = WP_CONTENT_DIR . '/AO_htaccess_tmpl';
510
-            if ( is_file( $htaccess_tmpl ) ) {
511
-                $content = file_get_contents( $htaccess_tmpl );
512
-            } elseif ( is_multisite() || ! AUTOPTIMIZE_CACHE_NOGZIP ) {
509
+            $htaccess_tmpl = WP_CONTENT_DIR.'/AO_htaccess_tmpl';
510
+            if (is_file($htaccess_tmpl)) {
511
+                $content = file_get_contents($htaccess_tmpl);
512
+            } elseif (is_multisite() || !AUTOPTIMIZE_CACHE_NOGZIP) {
513 513
                 $content = '<IfModule mod_expires.c>
514 514
         ExpiresActive On
515 515
         ExpiresByType text/css A30672000
@@ -562,7 +562,7 @@  discard block
 block discarded – undo
562 562
     </Files>
563 563
 </IfModule>';
564 564
             }
565
-            @file_put_contents( $htaccess, $content ); // @codingStandardsIgnoreLine
565
+            @file_put_contents($htaccess, $content); // @codingStandardsIgnoreLine
566 566
         }
567 567
 
568 568
         // All OK!
@@ -576,13 +576,13 @@  discard block
 block discarded – undo
576 576
      * @return bool
577 577
      */
578 578
     public static function check_and_create_dirs() {
579
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
579
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
580 580
             // We didn't set a cache.
581 581
             return false;
582 582
         }
583 583
 
584
-        foreach ( array( '', 'js', 'css' ) as $dir ) {
585
-            if ( ! self::check_cache_dir( AUTOPTIMIZE_CACHE_DIR . $dir ) ) {
584
+        foreach (array('', 'js', 'css') as $dir) {
585
+            if (!self::check_cache_dir(AUTOPTIMIZE_CACHE_DIR.$dir)) {
586 586
                 return false;
587 587
             }
588 588
         }
@@ -597,25 +597,25 @@  discard block
 block discarded – undo
597 597
      *
598 598
      * @return bool
599 599
      */
600
-    protected static function check_cache_dir( $dir )
600
+    protected static function check_cache_dir($dir)
601 601
     {
602 602
         // Try creating the dir if it doesn't exist.
603
-        if ( ! file_exists( $dir ) ) {
604
-            @mkdir( $dir, 0775, true ); // @codingStandardsIgnoreLine
605
-            if ( ! file_exists( $dir ) ) {
603
+        if (!file_exists($dir)) {
604
+            @mkdir($dir, 0775, true); // @codingStandardsIgnoreLine
605
+            if (!file_exists($dir)) {
606 606
                 return false;
607 607
             }
608 608
         }
609 609
 
610 610
         // If we still cannot write, bail.
611
-        if ( ! is_writable( $dir ) ) {
611
+        if (!is_writable($dir)) {
612 612
             return false;
613 613
         }
614 614
 
615 615
         // Create an index.html in there to avoid prying eyes!
616
-        $idx_file = rtrim( $dir, '/\\' ) . '/index.html';
617
-        if ( ! is_file( $idx_file ) ) {
618
-            @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
616
+        $idx_file = rtrim($dir, '/\\').'/index.html';
617
+        if (!is_file($idx_file)) {
618
+            @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
619 619
         }
620 620
 
621 621
         return true;
@@ -629,59 +629,59 @@  discard block
 block discarded – undo
629 629
     // @codingStandardsIgnoreStart
630 630
     public static function flushPageCache()
631 631
     {
632
-        if ( function_exists( 'wp_cache_clear_cache' ) ) {
633
-            if ( is_multisite() ) {
632
+        if (function_exists('wp_cache_clear_cache')) {
633
+            if (is_multisite()) {
634 634
                 $blog_id = get_current_blog_id();
635
-                wp_cache_clear_cache( $blog_id );
635
+                wp_cache_clear_cache($blog_id);
636 636
             } else {
637 637
                 wp_cache_clear_cache();
638 638
             }
639
-        } elseif ( has_action( 'cachify_flush_cache' ) ) {
640
-            do_action( 'cachify_flush_cache' );
641
-        } elseif ( function_exists( 'w3tc_pgcache_flush' ) ) {
639
+        } elseif (has_action('cachify_flush_cache')) {
640
+            do_action('cachify_flush_cache');
641
+        } elseif (function_exists('w3tc_pgcache_flush')) {
642 642
             w3tc_pgcache_flush();
643
-        } elseif ( function_exists( 'wp_fast_cache_bulk_delete_all' ) ) {
643
+        } elseif (function_exists('wp_fast_cache_bulk_delete_all')) {
644 644
             wp_fast_cache_bulk_delete_all();
645
-        } elseif ( class_exists( 'WpFastestCache' ) ) {
645
+        } elseif (class_exists('WpFastestCache')) {
646 646
             $wpfc = new WpFastestCache();
647 647
             $wpfc->deleteCache();
648
-        } elseif ( class_exists( 'c_ws_plugin__qcache_purging_routines' ) ) {
648
+        } elseif (class_exists('c_ws_plugin__qcache_purging_routines')) {
649 649
             c_ws_plugin__qcache_purging_routines::purge_cache_dir(); // quick cache
650
-        } elseif ( class_exists( 'zencache' ) ) {
650
+        } elseif (class_exists('zencache')) {
651 651
             zencache::clear();
652
-        } elseif ( class_exists( 'comet_cache' ) ) {
652
+        } elseif (class_exists('comet_cache')) {
653 653
             comet_cache::clear();
654
-        } elseif ( class_exists( 'WpeCommon' ) ) {
654
+        } elseif (class_exists('WpeCommon')) {
655 655
             // WPEngine cache purge/flush methods to call by default
656 656
             $wpe_methods = array(
657 657
                 'purge_varnish_cache',
658 658
             );
659 659
 
660 660
             // More agressive clear/flush/purge behind a filter
661
-            if ( apply_filters( 'autoptimize_flush_wpengine_aggressive', false ) ) {
662
-                $wpe_methods = array_merge( $wpe_methods, array( 'purge_memcached', 'clear_maxcdn_cache' ) );
661
+            if (apply_filters('autoptimize_flush_wpengine_aggressive', false)) {
662
+                $wpe_methods = array_merge($wpe_methods, array('purge_memcached', 'clear_maxcdn_cache'));
663 663
             }
664 664
 
665 665
             // Filtering the entire list of WpeCommon methods to be called (for advanced usage + easier testing)
666
-            $wpe_methods = apply_filters( 'autoptimize_flush_wpengine_methods', $wpe_methods );
666
+            $wpe_methods = apply_filters('autoptimize_flush_wpengine_methods', $wpe_methods);
667 667
 
668
-            foreach ( $wpe_methods as $wpe_method ) {
669
-                if ( method_exists( 'WpeCommon', $wpe_method ) ) {
668
+            foreach ($wpe_methods as $wpe_method) {
669
+                if (method_exists('WpeCommon', $wpe_method)) {
670 670
                     WpeCommon::$wpe_method();
671 671
                 }
672 672
             }
673
-        } elseif ( function_exists( 'sg_cachepress_purge_cache' ) ) {
673
+        } elseif (function_exists('sg_cachepress_purge_cache')) {
674 674
             sg_cachepress_purge_cache();
675
-        } elseif ( file_exists( WP_CONTENT_DIR . '/wp-cache-config.php' ) && function_exists( 'prune_super_cache' ) ) {
675
+        } elseif (file_exists(WP_CONTENT_DIR.'/wp-cache-config.php') && function_exists('prune_super_cache')) {
676 676
             // fallback for WP-Super-Cache
677 677
             global $cache_path;
678
-            if ( is_multisite() ) {
678
+            if (is_multisite()) {
679 679
                 $blog_id = get_current_blog_id();
680
-                prune_super_cache( get_supercache_dir( $blog_id ), true );
681
-                prune_super_cache( $cache_path . 'blogs/', true );
680
+                prune_super_cache(get_supercache_dir($blog_id), true);
681
+                prune_super_cache($cache_path.'blogs/', true);
682 682
             } else {
683
-                prune_super_cache( $cache_path . 'supercache/', true );
684
-                prune_super_cache( $cache_path, true );
683
+                prune_super_cache($cache_path.'supercache/', true);
684
+                prune_super_cache($cache_path, true);
685 685
             }
686 686
         }
687 687
     }
Please login to merge, or discard this patch.
classes/autoptimizeConfig.php 1 patch
Spacing   +219 added lines, -219 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
2
+if (!defined('ABSPATH')) exit; // Exit if accessed directly.
3 3
 
4 4
 class autoptimizeConfig
5 5
 {
@@ -13,28 +13,28 @@  discard block
 block discarded – undo
13 13
      */
14 14
     private function __construct()
15 15
     {
16
-        if ( is_admin() ) {
16
+        if (is_admin()) {
17 17
             // Add the admin page and settings.
18
-            add_action( 'admin_menu', array( $this, 'addmenu' ) );
19
-            add_action( 'admin_init', array( $this, 'registersettings' ) );
18
+            add_action('admin_menu', array($this, 'addmenu'));
19
+            add_action('admin_init', array($this, 'registersettings'));
20 20
 
21 21
             // Set meta info.
22
-            if ( function_exists( 'plugin_row_meta' ) ) {
22
+            if (function_exists('plugin_row_meta')) {
23 23
                 // 2.8 and higher.
24
-                add_filter( 'plugin_row_meta', array( $this, 'setmeta' ), 10, 2 );
25
-            } elseif ( function_exists( 'post_class' ) ) {
24
+                add_filter('plugin_row_meta', array($this, 'setmeta'), 10, 2);
25
+            } elseif (function_exists('post_class')) {
26 26
                 // 2.7 and lower.
27
-                $plugin = plugin_basename( AUTOPTIMIZE_PLUGIN_DIR . 'autoptimize.php' );
28
-                add_filter( 'plugin_action_links_' . $plugin, array( $this, 'setmeta' ) );
27
+                $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php');
28
+                add_filter('plugin_action_links_'.$plugin, array($this, 'setmeta'));
29 29
             }
30 30
 
31 31
             // Clean cache?
32
-            if ( get_option( 'autoptimize_cache_clean' ) ) {
32
+            if (get_option('autoptimize_cache_clean')) {
33 33
                 autoptimizeCache::clearall();
34
-                update_option( 'autoptimize_cache_clean', 0 );
34
+                update_option('autoptimize_cache_clean', 0);
35 35
             }
36 36
 
37
-            $this->settings_screen_do_remote_http = apply_filters( 'autoptimize_settingsscreen_remotehttp', $this->settings_screen_do_remote_http );
37
+            $this->settings_screen_do_remote_http = apply_filters('autoptimize_settingsscreen_remotehttp', $this->settings_screen_do_remote_http);
38 38
         }
39 39
 
40 40
         // Adds the Autoptimize Toolbar to the Admin bar.
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
     static public function instance()
49 49
     {
50 50
         // Only one instance.
51
-        if ( null === self::$instance ) {
51
+        if (null === self::$instance) {
52 52
             self::$instance = new autoptimizeConfig();
53 53
         }
54 54
 
@@ -174,28 +174,28 @@  discard block
 block discarded – undo
174 174
 
175 175
 <div class="wrap">
176 176
 
177
-<?php if ( version_compare( PHP_VERSION, '5.3.0' ) < 0 ) { ?>
178
-<div class="notice-error notice"><?php echo '<p>' . sprintf( __( '<strong>You are using a very old version of PHP</strong> (5.2.x or older) which has <a href=%s>serious security and performance issues</a>. Support for PHP 5.5 and below will be removed in one of the next AO released, please ask your hoster to provide you with an upgrade path to 7.x.', 'autoptimize' ), '"http://blog.futtta.be/2016/03/15/why-would-you-still-be-on-php-5-2/" target="_blank"' ) . '</p>'; ?></div>
177
+<?php if (version_compare(PHP_VERSION, '5.3.0') < 0) { ?>
178
+<div class="notice-error notice"><?php echo '<p>'.sprintf(__('<strong>You are using a very old version of PHP</strong> (5.2.x or older) which has <a href=%s>serious security and performance issues</a>. Support for PHP 5.5 and below will be removed in one of the next AO released, please ask your hoster to provide you with an upgrade path to 7.x.', 'autoptimize'), '"http://blog.futtta.be/2016/03/15/why-would-you-still-be-on-php-5-2/" target="_blank"').'</p>'; ?></div>
179 179
 <?php } ?>
180 180
 
181
-<?php if ( defined( 'AUTOPTIMIZE_LEGACY_MINIFIERS' ) ) { ?>
181
+<?php if (defined('AUTOPTIMIZE_LEGACY_MINIFIERS')) { ?>
182 182
     <div class="notice-error notice"><p>
183
-        <?php _e( "You are using the (no longer supported) AUTOPTIMIZE_LEGACY_MINIFIERS constant. Ensure your site is working properly and remove the constant, it doesn't do anything any more.", 'autoptimize' ); ?>
183
+        <?php _e("You are using the (no longer supported) AUTOPTIMIZE_LEGACY_MINIFIERS constant. Ensure your site is working properly and remove the constant, it doesn't do anything any more.", 'autoptimize'); ?>
184 184
     </p></div>
185 185
 <?php } ?>
186 186
 
187 187
 <div id="autoptimize_main">
188 188
     <div id="ao_title_and_button">
189
-        <h1 id="ao_title"><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?>
189
+        <h1 id="ao_title"><?php _e('Autoptimize Settings', 'autoptimize'); ?>
190 190
         <span id="ao_adv_button">
191
-        <?php if ( get_option( 'autoptimize_show_adv', '0' ) == '1' ) { ?>
192
-            <a href="javascript:void(0);" id="ao_show_adv" class="button" style="display:none;"><span><?php _e("Show advanced settings","autoptimize") ?></span></a>
193
-            <a href="javascript:void(0);" id="ao_hide_adv" class="button"><span><?php _e("Hide advanced settings","autoptimize") ?></span></a>
191
+        <?php if (get_option('autoptimize_show_adv', '0') == '1') { ?>
192
+            <a href="javascript:void(0);" id="ao_show_adv" class="button" style="display:none;"><span><?php _e("Show advanced settings", "autoptimize") ?></span></a>
193
+            <a href="javascript:void(0);" id="ao_hide_adv" class="button"><span><?php _e("Hide advanced settings", "autoptimize") ?></span></a>
194 194
             <style>tr.ao_adv{display:table-row;} li.ao_adv{display:list-item;}</style>
195 195
             <?php $hiddenClass = ''; ?>
196 196
         <?php } else { ?>
197
-            <a href="javascript:void(0);" id="ao_show_adv" class="button"><span><?php _e("Show advanced settings","autoptimize") ?></span></a>
198
-            <a href="javascript:void(0);" id="ao_hide_adv" class="button" style="display:none;"><span><?php _e("Hide advanced settings","autoptimize") ?></span></a>
197
+            <a href="javascript:void(0);" id="ao_show_adv" class="button"><span><?php _e("Show advanced settings", "autoptimize") ?></span></a>
198
+            <a href="javascript:void(0);" id="ao_hide_adv" class="button" style="display:none;"><span><?php _e("Hide advanced settings", "autoptimize") ?></span></a>
199 199
             <?php $hiddenClass = 'hidden '; ?>
200 200
         <?php } ?>
201 201
         </span>
@@ -205,196 +205,196 @@  discard block
 block discarded – undo
205 205
     <?php echo $this->ao_admin_tabs(); ?>
206 206
 
207 207
 <form method="post" action="options.php">
208
-<?php settings_fields( 'autoptimize' ); ?>
208
+<?php settings_fields('autoptimize'); ?>
209 209
 
210 210
 <ul>
211 211
 
212 212
 <li class="itemDetail">
213
-<h2 class="itemTitle"><?php _e('JavaScript Options','autoptimize'); ?></h2>
213
+<h2 class="itemTitle"><?php _e('JavaScript Options', 'autoptimize'); ?></h2>
214 214
 <table class="form-table">
215 215
 <tr valign="top">
216
-<th scope="row"><?php _e('Optimize JavaScript Code?','autoptimize'); ?></th>
217
-<td><input type="checkbox" id="autoptimize_js" name="autoptimize_js" <?php echo get_option('autoptimize_js')?'checked="checked" ':''; ?>/></td>
216
+<th scope="row"><?php _e('Optimize JavaScript Code?', 'autoptimize'); ?></th>
217
+<td><input type="checkbox" id="autoptimize_js" name="autoptimize_js" <?php echo get_option('autoptimize_js') ? 'checked="checked" ' : ''; ?>/></td>
218 218
 </tr>
219
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv">
220
-<th scope="row"><?php _e( 'Aggregate JS-files?', 'autoptimize' ); ?></th>
221
-<td><label class="cb_label"><input type="checkbox" id="autoptimize_js_aggregate" name="autoptimize_js_aggregate" <?php echo $conf->get( 'autoptimize_js_aggregate' ) ? 'checked="checked" ':''; ?>/>
222
-<?php _e( 'Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'autoptimize' ); ?></label></td>
219
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv">
220
+<th scope="row"><?php _e('Aggregate JS-files?', 'autoptimize'); ?></th>
221
+<td><label class="cb_label"><input type="checkbox" id="autoptimize_js_aggregate" name="autoptimize_js_aggregate" <?php echo $conf->get('autoptimize_js_aggregate') ? 'checked="checked" ' : ''; ?>/>
222
+<?php _e('Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'autoptimize'); ?></label></td>
223 223
 </tr>
224
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
225
-<th scope="row"><?php _e('Also aggregate inline JS?','autoptimize'); ?></th>
226
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_include_inline" <?php echo get_option('autoptimize_js_include_inline')?'checked="checked" ':''; ?>/>
227
-<?php _e('Let Autoptimize also extract JS from the HTML. <strong>Warning</strong>: this can make Autoptimize\'s cache size grow quickly, so only enable this if you know what you\'re doing.','autoptimize'); ?></label></td>
224
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
225
+<th scope="row"><?php _e('Also aggregate inline JS?', 'autoptimize'); ?></th>
226
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_include_inline" <?php echo get_option('autoptimize_js_include_inline') ? 'checked="checked" ' : ''; ?>/>
227
+<?php _e('Let Autoptimize also extract JS from the HTML. <strong>Warning</strong>: this can make Autoptimize\'s cache size grow quickly, so only enable this if you know what you\'re doing.', 'autoptimize'); ?></label></td>
228 228
 </tr>
229
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
230
-<th scope="row"><?php _e('Force JavaScript in &lt;head&gt;?','autoptimize'); ?></th>
231
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_forcehead" <?php echo get_option('autoptimize_js_forcehead')?'checked="checked" ':''; ?>/>
232
-<?php _e('Load JavaScript early, this can potentially fix some JS-errors, but makes the JS render blocking.','autoptimize'); ?></label></td>
229
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
230
+<th scope="row"><?php _e('Force JavaScript in &lt;head&gt;?', 'autoptimize'); ?></th>
231
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_forcehead" <?php echo get_option('autoptimize_js_forcehead') ? 'checked="checked" ' : ''; ?>/>
232
+<?php _e('Load JavaScript early, this can potentially fix some JS-errors, but makes the JS render blocking.', 'autoptimize'); ?></label></td>
233 233
 </tr>
234 234
 <?php if (get_option('autoptimize_js_justhead')) { ?>
235
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
236
-<th scope="row"><?php _e('Look for scripts only in &lt;head&gt;?','autoptimize'); echo ' <i>'. __('(deprecated)','autoptimize') . '</i>'; ?></th>
237
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_justhead" <?php echo get_option('autoptimize_js_justhead')?'checked="checked" ':''; ?>/>
238
-<?php _e('Mostly useful in combination with previous option when using jQuery-based templates, but might help keeping cache size under control.','autoptimize'); ?></label></td>
235
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
236
+<th scope="row"><?php _e('Look for scripts only in &lt;head&gt;?', 'autoptimize'); echo ' <i>'.__('(deprecated)', 'autoptimize').'</i>'; ?></th>
237
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_justhead" <?php echo get_option('autoptimize_js_justhead') ? 'checked="checked" ' : ''; ?>/>
238
+<?php _e('Mostly useful in combination with previous option when using jQuery-based templates, but might help keeping cache size under control.', 'autoptimize'); ?></label></td>
239 239
 </tr>
240 240
 <?php } ?>
241
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv">
242
-<th scope="row"><?php _e('Exclude scripts from Autoptimize:','autoptimize'); ?></th>
243
-<td><label><input type="text" style="width:100%;" name="autoptimize_js_exclude" value="<?php echo get_option('autoptimize_js_exclude',"wp-includes/js/dist/, wp-includes/js/tinymce/, js/jquery/jquery.js"); ?>"/><br />
244
-<?php _e('A comma-separated list of scripts you want to exclude from being optimized, for example \'whatever.js, another.js\' (without the quotes) to exclude those scripts from being aggregated by Autoptimize.','autoptimize'); ?></label></td>
241
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv">
242
+<th scope="row"><?php _e('Exclude scripts from Autoptimize:', 'autoptimize'); ?></th>
243
+<td><label><input type="text" style="width:100%;" name="autoptimize_js_exclude" value="<?php echo get_option('autoptimize_js_exclude', "wp-includes/js/dist/, wp-includes/js/tinymce/, js/jquery/jquery.js"); ?>"/><br />
244
+<?php _e('A comma-separated list of scripts you want to exclude from being optimized, for example \'whatever.js, another.js\' (without the quotes) to exclude those scripts from being aggregated by Autoptimize.', 'autoptimize'); ?></label></td>
245 245
 </tr>
246
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
247
-<th scope="row"><?php _e('Add try-catch wrapping?','autoptimize'); ?></th>
248
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_trycatch" <?php echo get_option('autoptimize_js_trycatch')?'checked="checked" ':''; ?>/>
249
-<?php _e('If your scripts break because of a JS-error, you might want to try this.','autoptimize'); ?></label></td>
246
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
247
+<th scope="row"><?php _e('Add try-catch wrapping?', 'autoptimize'); ?></th>
248
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_trycatch" <?php echo get_option('autoptimize_js_trycatch') ? 'checked="checked" ' : ''; ?>/>
249
+<?php _e('If your scripts break because of a JS-error, you might want to try this.', 'autoptimize'); ?></label></td>
250 250
 </tr>
251 251
 </table>
252 252
 </li>
253 253
 
254 254
 <li class="itemDetail">
255
-<h2 class="itemTitle"><?php _e('CSS Options','autoptimize'); ?></h2>
255
+<h2 class="itemTitle"><?php _e('CSS Options', 'autoptimize'); ?></h2>
256 256
 <table class="form-table">
257 257
 <tr valign="top">
258
-<th scope="row"><?php _e('Optimize CSS Code?','autoptimize'); ?></th>
259
-<td><input type="checkbox" id="autoptimize_css" name="autoptimize_css" <?php echo get_option('autoptimize_css')?'checked="checked" ':''; ?>/></td>
258
+<th scope="row"><?php _e('Optimize CSS Code?', 'autoptimize'); ?></th>
259
+<td><input type="checkbox" id="autoptimize_css" name="autoptimize_css" <?php echo get_option('autoptimize_css') ? 'checked="checked" ' : ''; ?>/></td>
260 260
 </tr>
261
-<tr class="<?php echo $hiddenClass;?>css_sub ao_adv" valign="top">
262
-<th scope="row"><?php _e( 'Aggregate CSS-files?', 'autoptimize' ); ?></th>
263
-<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_aggregate" name="autoptimize_css_aggregate" <?php echo $conf->get( 'autoptimize_css_aggregate' ) ? 'checked="checked" ' : ''; ?>/>
264
-<?php _e('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'autoptimize' ); ?></label></td>
261
+<tr class="<?php echo $hiddenClass; ?>css_sub ao_adv" valign="top">
262
+<th scope="row"><?php _e('Aggregate CSS-files?', 'autoptimize'); ?></th>
263
+<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_aggregate" name="autoptimize_css_aggregate" <?php echo $conf->get('autoptimize_css_aggregate') ? 'checked="checked" ' : ''; ?>/>
264
+<?php _e('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'autoptimize'); ?></label></td>
265 265
 </tr>
266
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv css_aggregate">
267
-<th scope="row"><?php _e('Also aggregate inline CSS?','autoptimize'); ?></th>
268
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_include_inline" <?php echo get_option('autoptimize_css_include_inline','1')?'checked="checked" ':''; ?>/>
269
-<?php _e('Check this option for Autoptimize to also aggregate CSS in the HTML.','autoptimize'); ?></label></td>
266
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv css_aggregate">
267
+<th scope="row"><?php _e('Also aggregate inline CSS?', 'autoptimize'); ?></th>
268
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_include_inline" <?php echo get_option('autoptimize_css_include_inline', '1') ? 'checked="checked" ' : ''; ?>/>
269
+<?php _e('Check this option for Autoptimize to also aggregate CSS in the HTML.', 'autoptimize'); ?></label></td>
270 270
 </tr>
271
-<tr class="<?php echo $hiddenClass;?>css_sub ao_adv css_aggregate" valign="top">
272
-<th scope="row"><?php _e('Generate data: URIs for images?','autoptimize'); ?></th>
273
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_datauris" <?php echo get_option('autoptimize_css_datauris')?'checked="checked" ':''; ?>/>
274
-<?php _e('Enable this to include small background-images in the CSS itself instead of as separate downloads.','autoptimize'); ?></label></td>
271
+<tr class="<?php echo $hiddenClass; ?>css_sub ao_adv css_aggregate" valign="top">
272
+<th scope="row"><?php _e('Generate data: URIs for images?', 'autoptimize'); ?></th>
273
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_datauris" <?php echo get_option('autoptimize_css_datauris') ? 'checked="checked" ' : ''; ?>/>
274
+<?php _e('Enable this to include small background-images in the CSS itself instead of as separate downloads.', 'autoptimize'); ?></label></td>
275 275
 </tr>
276 276
 <?php if (get_option('autoptimize_css_justhead')) { ?>
277
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv css_aggregate">
278
-<th scope="row"><?php _e('Look for styles only in &lt;head&gt;?','autoptimize'); echo ' <i>'. __('(deprecated)','autoptimize') . '</i>'; ?></th>
279
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_justhead" <?php echo get_option('autoptimize_css_justhead')?'checked="checked" ':''; ?>/>
280
-<?php _e('Don\'t autoptimize CSS outside the head-section. If the cache gets big, you might want to enable this.','autoptimize'); ?></label></td>
277
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv css_aggregate">
278
+<th scope="row"><?php _e('Look for styles only in &lt;head&gt;?', 'autoptimize'); echo ' <i>'.__('(deprecated)', 'autoptimize').'</i>'; ?></th>
279
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_justhead" <?php echo get_option('autoptimize_css_justhead') ? 'checked="checked" ' : ''; ?>/>
280
+<?php _e('Don\'t autoptimize CSS outside the head-section. If the cache gets big, you might want to enable this.', 'autoptimize'); ?></label></td>
281 281
 </tr>
282 282
 <?php } ?>
283
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv">
284
-<th scope="row"><?php _e('Inline and Defer CSS?','autoptimize'); ?></th>
285
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_defer" id="autoptimize_css_defer" <?php echo get_option('autoptimize_css_defer')?'checked="checked" ':''; ?>/>
283
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv">
284
+<th scope="row"><?php _e('Inline and Defer CSS?', 'autoptimize'); ?></th>
285
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_defer" id="autoptimize_css_defer" <?php echo get_option('autoptimize_css_defer') ? 'checked="checked" ' : ''; ?>/>
286 286
 <?php
287
-_e( 'Inline "above the fold CSS" while loading the main autoptimized CSS only after page load. <a href="http://wordpress.org/plugins/autoptimize/faq/" target="_blank">Check the FAQ</a> for more info.', 'autoptimize' );
288
-if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'autoptimize-criticalcss/ao_criticss_aas.php' ) ) {
287
+_e('Inline "above the fold CSS" while loading the main autoptimized CSS only after page load. <a href="http://wordpress.org/plugins/autoptimize/faq/" target="_blank">Check the FAQ</a> for more info.', 'autoptimize');
288
+if (function_exists('is_plugin_active') && !is_plugin_active('autoptimize-criticalcss/ao_criticss_aas.php')) {
289 289
     echo ' ';
290
-    $critcss_install_url = network_admin_url() . 'plugin-install.php?s=autoptimize+criticalcss&tab=search&type=term';
291
-    echo sprintf( __( 'This can be fully automated for different types of pages with the %s.', 'autoptimize' ), '<a href="'.$critcss_install_url.'">Autoptimize CriticalCSS Power-Up</a>' );
290
+    $critcss_install_url = network_admin_url().'plugin-install.php?s=autoptimize+criticalcss&tab=search&type=term';
291
+    echo sprintf(__('This can be fully automated for different types of pages with the %s.', 'autoptimize'), '<a href="'.$critcss_install_url.'">Autoptimize CriticalCSS Power-Up</a>');
292 292
 }
293 293
 ?>
294 294
 </label></td>
295 295
 </tr>
296
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv" id="autoptimize_css_defer_inline">
296
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv" id="autoptimize_css_defer_inline">
297 297
 <th scope="row"></th>
298
-<td><label><textarea rows="10" cols="10" style="width:100%;" placeholder="<?php _e('Paste the above the fold CSS here.','autoptimize'); ?>" name="autoptimize_css_defer_inline"><?php echo get_option('autoptimize_css_defer_inline'); ?></textarea></label></td>
298
+<td><label><textarea rows="10" cols="10" style="width:100%;" placeholder="<?php _e('Paste the above the fold CSS here.', 'autoptimize'); ?>" name="autoptimize_css_defer_inline"><?php echo get_option('autoptimize_css_defer_inline'); ?></textarea></label></td>
299 299
 </tr>
300
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv css_sub css_aggregate">
301
-<th scope="row"><?php _e('Inline all CSS?','autoptimize'); ?></th>
302
-<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_inline" name="autoptimize_css_inline" <?php echo get_option('autoptimize_css_inline')?'checked="checked" ':''; ?>/>
303
-<?php _e('Inlining all CSS can improve performance for sites with a low pageviews/ visitor-rate, but may slow down performance otherwise.','autoptimize'); ?></label></td>
300
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv css_sub css_aggregate">
301
+<th scope="row"><?php _e('Inline all CSS?', 'autoptimize'); ?></th>
302
+<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_inline" name="autoptimize_css_inline" <?php echo get_option('autoptimize_css_inline') ? 'checked="checked" ' : ''; ?>/>
303
+<?php _e('Inlining all CSS can improve performance for sites with a low pageviews/ visitor-rate, but may slow down performance otherwise.', 'autoptimize'); ?></label></td>
304 304
 </tr>
305
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv css_sub">
306
-<th scope="row"><?php _e('Exclude CSS from Autoptimize:','autoptimize'); ?></th>
307
-<td><label><input type="text" style="width:100%;" name="autoptimize_css_exclude" value="<?php echo get_option('autoptimize_css_exclude','wp-content/cache/, wp-content/uploads/, admin-bar.min.css, dashicons.min.css'); ?>"/><br />
308
-<?php _e('A comma-separated list of CSS you want to exclude from being optimized.','autoptimize'); ?></label></td>
305
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv css_sub">
306
+<th scope="row"><?php _e('Exclude CSS from Autoptimize:', 'autoptimize'); ?></th>
307
+<td><label><input type="text" style="width:100%;" name="autoptimize_css_exclude" value="<?php echo get_option('autoptimize_css_exclude', 'wp-content/cache/, wp-content/uploads/, admin-bar.min.css, dashicons.min.css'); ?>"/><br />
308
+<?php _e('A comma-separated list of CSS you want to exclude from being optimized.', 'autoptimize'); ?></label></td>
309 309
 </tr>
310 310
 </table>
311 311
 </li>
312 312
 
313 313
 <li class="itemDetail">
314
-<h2 class="itemTitle"><?php _e('HTML Options','autoptimize'); ?></h2>
314
+<h2 class="itemTitle"><?php _e('HTML Options', 'autoptimize'); ?></h2>
315 315
 <table class="form-table">
316 316
 <tr valign="top">
317
-<th scope="row"><?php _e('Optimize HTML Code?','autoptimize'); ?></th>
318
-<td><input type="checkbox" id="autoptimize_html" name="autoptimize_html" <?php echo get_option('autoptimize_html')?'checked="checked" ':''; ?>/></td>
317
+<th scope="row"><?php _e('Optimize HTML Code?', 'autoptimize'); ?></th>
318
+<td><input type="checkbox" id="autoptimize_html" name="autoptimize_html" <?php echo get_option('autoptimize_html') ? 'checked="checked" ' : ''; ?>/></td>
319 319
 </tr>
320
-<tr class="<?php echo $hiddenClass;?>html_sub ao_adv" valign="top">
321
-<th scope="row"><?php _e('Keep HTML comments?','autoptimize'); ?></th>
322
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_html_keepcomments" <?php echo get_option('autoptimize_html_keepcomments')?'checked="checked" ':''; ?>/>
323
-<?php _e('Enable this if you want HTML comments to remain in the page.','autoptimize'); ?></label></td>
320
+<tr class="<?php echo $hiddenClass; ?>html_sub ao_adv" valign="top">
321
+<th scope="row"><?php _e('Keep HTML comments?', 'autoptimize'); ?></th>
322
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_html_keepcomments" <?php echo get_option('autoptimize_html_keepcomments') ? 'checked="checked" ' : ''; ?>/>
323
+<?php _e('Enable this if you want HTML comments to remain in the page.', 'autoptimize'); ?></label></td>
324 324
 </tr>
325 325
 </table>
326 326
 </li>
327 327
 
328 328
 <li class="itemDetail">
329
-<h2 class="itemTitle"><?php _e('CDN Options','autoptimize'); ?></h2>
329
+<h2 class="itemTitle"><?php _e('CDN Options', 'autoptimize'); ?></h2>
330 330
 <table class="form-table">
331 331
 <tr valign="top">
332
-<th scope="row"><?php _e('CDN Base URL','autoptimize'); ?></th>
333
-<td><label><input id="cdn_url" type="text" name="autoptimize_cdn_url" pattern="^(https?:)?\/\/([\da-z\.-]+)\.([\da-z\.]{2,6})([\/\w \.-]*)*(:\d{2,5})?\/?$" style="width:100%" value="<?php echo esc_url(get_option('autoptimize_cdn_url',''),array("http","https")); ?>" /><br />
334
-<?php _e('Enter your CDN root URL to enable CDN for Autoptimized files. The URL can be http, https or protocol-relative (e.g. <code>//cdn.example.com/</code>). This is not needed for Cloudflare.','autoptimize'); ?></label></td>
332
+<th scope="row"><?php _e('CDN Base URL', 'autoptimize'); ?></th>
333
+<td><label><input id="cdn_url" type="text" name="autoptimize_cdn_url" pattern="^(https?:)?\/\/([\da-z\.-]+)\.([\da-z\.]{2,6})([\/\w \.-]*)*(:\d{2,5})?\/?$" style="width:100%" value="<?php echo esc_url(get_option('autoptimize_cdn_url', ''), array("http", "https")); ?>" /><br />
334
+<?php _e('Enter your CDN root URL to enable CDN for Autoptimized files. The URL can be http, https or protocol-relative (e.g. <code>//cdn.example.com/</code>). This is not needed for Cloudflare.', 'autoptimize'); ?></label></td>
335 335
 </tr>
336 336
 </table>
337 337
 </li>
338 338
 
339
-<li class="<?php echo $hiddenClass;?>itemDetail ao_adv">
340
-<h2 class="itemTitle"><?php _e('Cache Info','autoptimize'); ?></h2>
339
+<li class="<?php echo $hiddenClass; ?>itemDetail ao_adv">
340
+<h2 class="itemTitle"><?php _e('Cache Info', 'autoptimize'); ?></h2>
341 341
 <table class="form-table" >
342
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
343
-<th scope="row"><?php _e('Cache folder','autoptimize'); ?></th>
342
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
343
+<th scope="row"><?php _e('Cache folder', 'autoptimize'); ?></th>
344 344
 <td><?php echo htmlentities(AUTOPTIMIZE_CACHE_DIR); ?></td>
345 345
 </tr>
346
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
347
-<th scope="row"><?php _e('Can we write?','autoptimize'); ?></th>
348
-<td><?php echo (autoptimizeCache::cacheavail() ? __('Yes','autoptimize') : __('No','autoptimize')); ?></td>
346
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
347
+<th scope="row"><?php _e('Can we write?', 'autoptimize'); ?></th>
348
+<td><?php echo (autoptimizeCache::cacheavail() ? __('Yes', 'autoptimize') : __('No', 'autoptimize')); ?></td>
349 349
 </tr>
350
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
351
-<th scope="row"><?php _e('Cached styles and scripts','autoptimize'); ?></th>
350
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
351
+<th scope="row"><?php _e('Cached styles and scripts', 'autoptimize'); ?></th>
352 352
 <td><?php
353 353
     $AOstatArr = autoptimizeCache::stats();
354
-    if ( ! empty( $AOstatArr ) && is_array( $AOstatArr ) ) {
355
-        $AOcacheSize = size_format( $AOstatArr[1], 2 );
354
+    if (!empty($AOstatArr) && is_array($AOstatArr)) {
355
+        $AOcacheSize = size_format($AOstatArr[1], 2);
356 356
         $details = '';
357
-        if ( $AOcacheSize > 0 ) {
358
-            $details = ', ~' . $AOcacheSize . ' total';
357
+        if ($AOcacheSize > 0) {
358
+            $details = ', ~'.$AOcacheSize.' total';
359 359
         }
360
-        printf( __( '%1$s files, totalling %2$s Kbytes (calculated at %3$s)', 'autoptimize' ), $AOstatArr[0], $AOcacheSize, date( 'H:i e', $AOstatArr[2] ) );
360
+        printf(__('%1$s files, totalling %2$s Kbytes (calculated at %3$s)', 'autoptimize'), $AOstatArr[0], $AOcacheSize, date('H:i e', $AOstatArr[2]));
361 361
     }
362 362
 ?></td>
363 363
 </tr>
364 364
 </table>
365 365
 </li>
366 366
 
367
-<li class="<?php echo $hiddenClass;?>itemDetail ao_adv">
368
-<h2 class="itemTitle"><?php _e('Misc Options','autoptimize'); ?></h2>
367
+<li class="<?php echo $hiddenClass; ?>itemDetail ao_adv">
368
+<h2 class="itemTitle"><?php _e('Misc Options', 'autoptimize'); ?></h2>
369 369
 <table class="form-table">
370
-    <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
371
-    <th scope="row"><?php _e('Save aggregated script/css as static files?','autoptimize'); ?></th>
372
-    <td><label class="cb_label"><input type="checkbox" name="autoptimize_cache_nogzip" <?php echo get_option('autoptimize_cache_nogzip','1')?'checked="checked" ':''; ?>/>
373
-    <?php _e('By default files saved are static css/js, uncheck this option if your webserver doesn\'t properly handle the compression and expiry.','autoptimize'); ?></label></td>
370
+    <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
371
+    <th scope="row"><?php _e('Save aggregated script/css as static files?', 'autoptimize'); ?></th>
372
+    <td><label class="cb_label"><input type="checkbox" name="autoptimize_cache_nogzip" <?php echo get_option('autoptimize_cache_nogzip', '1') ? 'checked="checked" ' : ''; ?>/>
373
+    <?php _e('By default files saved are static css/js, uncheck this option if your webserver doesn\'t properly handle the compression and expiry.', 'autoptimize'); ?></label></td>
374 374
     </tr>
375 375
     <?php
376 376
     $_min_excl_class = 'ao_adv';
377
-    if ( !$conf->get( 'autoptimize_css_aggregate' ) && !$conf->get( 'autoptimize_js_aggregate' ) ) {
377
+    if (!$conf->get('autoptimize_css_aggregate') && !$conf->get('autoptimize_js_aggregate')) {
378 378
         $_min_excl_class = ' hidden';
379 379
     }
380 380
     ?>
381 381
     <tr valign="top" id="min_excl_row" class="<?php echo $hiddenClass.$_min_excl_class; ?>">
382
-        <th scope="row"><?php _e('Minify excluded CSS and JS files?','autoptimize'); ?></th>
383
-        <td><label class="cb_label"><input type="checkbox" name="autoptimize_minify_excluded" <?php echo get_option('autoptimize_minify_excluded','1')?'checked="checked" ':''; ?>/>
384
-        <?php _e('When aggregating JS or CSS, excluded files that are not minified (based on filename) are by default minified by Autoptimize despite being excluded. Uncheck this option if anything breaks despite excluding.','autoptimize'); ?></label></td>
382
+        <th scope="row"><?php _e('Minify excluded CSS and JS files?', 'autoptimize'); ?></th>
383
+        <td><label class="cb_label"><input type="checkbox" name="autoptimize_minify_excluded" <?php echo get_option('autoptimize_minify_excluded', '1') ? 'checked="checked" ' : ''; ?>/>
384
+        <?php _e('When aggregating JS or CSS, excluded files that are not minified (based on filename) are by default minified by Autoptimize despite being excluded. Uncheck this option if anything breaks despite excluding.', 'autoptimize'); ?></label></td>
385 385
     </tr>
386
-    <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
387
-    <th scope="row"><?php _e('Also optimize for logged in users?','autoptimize'); ?></th>
388
-    <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_logged" <?php echo get_option('autoptimize_optimize_logged','1')?'checked="checked" ':''; ?>/>
389
-    <?php _e('By default Autoptimize is also active for logged on users, uncheck not to optimize when logged in e.g. to use a pagebuilder.','autoptimize'); ?></label></td>
386
+    <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
387
+    <th scope="row"><?php _e('Also optimize for logged in users?', 'autoptimize'); ?></th>
388
+    <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_logged" <?php echo get_option('autoptimize_optimize_logged', '1') ? 'checked="checked" ' : ''; ?>/>
389
+    <?php _e('By default Autoptimize is also active for logged on users, uncheck not to optimize when logged in e.g. to use a pagebuilder.', 'autoptimize'); ?></label></td>
390 390
     </tr>
391 391
     <?php
392
-    if ( function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout") ) {
392
+    if (function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout")) {
393 393
     ?>
394
-    <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
395
-        <th scope="row"><?php _e('Also optimize shop cart/ checkout?','autoptimize'); ?></th>
396
-        <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout','1')?'checked="checked" ':''; ?>/>
397
-            <?php _e('By default Autoptimize is also active on your shop\'s cart/ checkout, uncheck not to optimize those.','autoptimize'); ?></label>
394
+    <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
395
+        <th scope="row"><?php _e('Also optimize shop cart/ checkout?', 'autoptimize'); ?></th>
396
+        <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout', '1') ? 'checked="checked" ' : ''; ?>/>
397
+            <?php _e('By default Autoptimize is also active on your shop\'s cart/ checkout, uncheck not to optimize those.', 'autoptimize'); ?></label>
398 398
         </td>
399 399
     </tr>
400 400
     <?php } ?>
@@ -403,11 +403,11 @@  discard block
 block discarded – undo
403 403
 
404 404
 </ul>
405 405
 
406
-<input type="hidden" id="autoptimize_show_adv" name="autoptimize_show_adv" value="<?php echo get_option('autoptimize_show_adv','0'); ?>">
406
+<input type="hidden" id="autoptimize_show_adv" name="autoptimize_show_adv" value="<?php echo get_option('autoptimize_show_adv', '0'); ?>">
407 407
 
408 408
 <p class="submit">
409
-<input type="submit" class="button-secondary" value="<?php _e('Save Changes','autoptimize') ?>" />
410
-<input type="submit" class="button-primary" name="autoptimize_cache_clean" value="<?php _e('Save Changes and Empty Cache','autoptimize') ?>" />
409
+<input type="submit" class="button-secondary" value="<?php _e('Save Changes', 'autoptimize') ?>" />
410
+<input type="submit" class="button-primary" name="autoptimize_cache_clean" value="<?php _e('Save Changes and Empty Cache', 'autoptimize') ?>" />
411 411
 </p>
412 412
 
413 413
 </form>
@@ -416,13 +416,13 @@  discard block
 block discarded – undo
416 416
     <div class="autoptimize_banner hidden">
417 417
       <ul>
418 418
     <?php
419
-    if ( $this->settings_screen_do_remote_http ) {
420
-        $AO_banner = get_transient( 'autoptimize_banner' );
421
-        if ( empty( $AO_banner ) ) {
422
-            $banner_resp = wp_remote_get( 'https://misc.optimizingmatters.com/autoptimize_news.html?ao_ver='.AUTOPTIMIZE_PLUGIN_VERSION );
423
-            if ( ! is_wp_error( $banner_resp ) ) {
424
-                if ( '200' == wp_remote_retrieve_response_code( $banner_resp ) ) {
425
-                    $AO_banner = wp_kses_post( wp_remote_retrieve_body( $banner_resp ) );
419
+    if ($this->settings_screen_do_remote_http) {
420
+        $AO_banner = get_transient('autoptimize_banner');
421
+        if (empty($AO_banner)) {
422
+            $banner_resp = wp_remote_get('https://misc.optimizingmatters.com/autoptimize_news.html?ao_ver='.AUTOPTIMIZE_PLUGIN_VERSION);
423
+            if (!is_wp_error($banner_resp)) {
424
+                if ('200' == wp_remote_retrieve_response_code($banner_resp)) {
425
+                    $AO_banner = wp_kses_post(wp_remote_retrieve_body($banner_resp));
426 426
                     set_transient('autoptimize_banner', $AO_banner, DAY_IN_SECONDS);
427 427
                 }
428 428
             }
@@ -430,17 +430,17 @@  discard block
 block discarded – undo
430 430
         echo $AO_banner;
431 431
     }
432 432
     ?>
433
-        <li><?php _e("Need help? <a href='https://wordpress.org/plugins/autoptimize/faq/'>Check out the FAQ here</a>.","autoptimize"); ?></li>
434
-        <li><?php _e("Happy with Autoptimize?","autoptimize"); ?><br /><a href="<?php echo network_admin_url(); ?>plugin-install.php?tab=search&type=author&s=optimizingmatters"><?php _e("Try my other plugins!","autoptimize"); ?></a></li>
433
+        <li><?php _e("Need help? <a href='https://wordpress.org/plugins/autoptimize/faq/'>Check out the FAQ here</a>.", "autoptimize"); ?></li>
434
+        <li><?php _e("Happy with Autoptimize?", "autoptimize"); ?><br /><a href="<?php echo network_admin_url(); ?>plugin-install.php?tab=search&type=author&s=optimizingmatters"><?php _e("Try my other plugins!", "autoptimize"); ?></a></li>
435 435
     </ul>
436 436
     </div>
437 437
     <div style="margin-left:10px;margin-top:-5px;">
438 438
         <h2>
439
-            <?php _e("futtta about","autoptimize") ?>
439
+            <?php _e("futtta about", "autoptimize") ?>
440 440
             <select id="feed_dropdown" >
441
-                <option value="1"><?php _e("Autoptimize","autoptimize") ?></option>
442
-                <option value="2"><?php _e("WordPress","autoptimize") ?></option>
443
-                <option value="3"><?php _e("Web Technology","autoptimize") ?></option>
441
+                <option value="1"><?php _e("Autoptimize", "autoptimize") ?></option>
442
+                <option value="2"><?php _e("WordPress", "autoptimize") ?></option>
443
+                <option value="3"><?php _e("Web Technology", "autoptimize") ?></option>
444 444
             </select>
445 445
         </h2>
446 446
         <div id="futtta_feed">
@@ -455,7 +455,7 @@  discard block
 block discarded – undo
455 455
             </div>
456 456
         </div>
457 457
     </div>
458
-    <div style="float:right;margin:50px 15px;"><a href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" target="_blank"><img width="100px" height="85px" src="<?php echo plugins_url().'/'.plugin_basename(dirname(__FILE__)).'/external/do_not_donate_smallest.png'; ?>" title="<?php _e("Do not donate for this plugin!","autoptimize"); ?>"></a></div>
458
+    <div style="float:right;margin:50px 15px;"><a href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" target="_blank"><img width="100px" height="85px" src="<?php echo plugins_url().'/'.plugin_basename(dirname(__FILE__)).'/external/do_not_donate_smallest.png'; ?>" title="<?php _e("Do not donate for this plugin!", "autoptimize"); ?>"></a></div>
459 459
 </div>
460 460
 
461 461
 <script type="text/javascript">
@@ -626,49 +626,49 @@  discard block
 block discarded – undo
626 626
 
627 627
     public function addmenu()
628 628
     {
629
-        $hook = add_options_page( __( 'Autoptimize Options', 'autoptimize' ), 'Autoptimize', 'manage_options', 'autoptimize', array( $this, 'show' ) );
630
-        add_action( 'admin_print_scripts-' . $hook, array( $this, 'autoptimize_admin_scripts' ) );
631
-        add_action( 'admin_print_styles-' . $hook, array( $this, 'autoptimize_admin_styles' ) );
629
+        $hook = add_options_page(__('Autoptimize Options', 'autoptimize'), 'Autoptimize', 'manage_options', 'autoptimize', array($this, 'show'));
630
+        add_action('admin_print_scripts-'.$hook, array($this, 'autoptimize_admin_scripts'));
631
+        add_action('admin_print_styles-'.$hook, array($this, 'autoptimize_admin_styles'));
632 632
     }
633 633
 
634 634
     public function autoptimize_admin_scripts()
635 635
     {
636
-        wp_enqueue_script( 'jqcookie', plugins_url( '/external/js/jquery.cookie.min.js', __FILE__ ), array( 'jquery' ), null, true );
637
-        wp_enqueue_script( 'unslider', plugins_url( '/external/js/unslider-min.js', __FILE__ ), array( 'jquery' ), null, true );
636
+        wp_enqueue_script('jqcookie', plugins_url('/external/js/jquery.cookie.min.js', __FILE__), array('jquery'), null, true);
637
+        wp_enqueue_script('unslider', plugins_url('/external/js/unslider-min.js', __FILE__), array('jquery'), null, true);
638 638
     }
639 639
 
640 640
     public function autoptimize_admin_styles()
641 641
     {
642
-        wp_enqueue_style( 'unslider', plugins_url( '/external/js/unslider.css', __FILE__ ) );
643
-        wp_enqueue_style( 'unslider-dots', plugins_url( '/external/js/unslider-dots.css', __FILE__ ) );
642
+        wp_enqueue_style('unslider', plugins_url('/external/js/unslider.css', __FILE__));
643
+        wp_enqueue_style('unslider-dots', plugins_url('/external/js/unslider-dots.css', __FILE__));
644 644
     }
645 645
 
646 646
     public function registersettings() {
647
-        register_setting( 'autoptimize', 'autoptimize_html' );
648
-        register_setting( 'autoptimize', 'autoptimize_html_keepcomments' );
649
-        register_setting( 'autoptimize', 'autoptimize_js' );
650
-        register_setting( 'autoptimize', 'autoptimize_js_aggregate' );
651
-        register_setting( 'autoptimize', 'autoptimize_js_exclude' );
652
-        register_setting( 'autoptimize', 'autoptimize_js_trycatch' );
653
-        register_setting( 'autoptimize', 'autoptimize_js_justhead' );
654
-        register_setting( 'autoptimize', 'autoptimize_js_forcehead' );
655
-        register_setting( 'autoptimize', 'autoptimize_js_include_inline' );
656
-        register_setting( 'autoptimize', 'autoptimize_css' );
657
-        register_setting( 'autoptimize', 'autoptimize_css_aggregate' );
658
-        register_setting( 'autoptimize', 'autoptimize_css_exclude' );
659
-        register_setting( 'autoptimize', 'autoptimize_css_justhead' );
660
-        register_setting( 'autoptimize', 'autoptimize_css_datauris' );
661
-        register_setting( 'autoptimize', 'autoptimize_css_defer' );
662
-        register_setting( 'autoptimize', 'autoptimize_css_defer_inline' );
663
-        register_setting( 'autoptimize', 'autoptimize_css_inline' );
664
-        register_setting( 'autoptimize', 'autoptimize_css_include_inline' );
665
-        register_setting( 'autoptimize', 'autoptimize_cdn_url' );
666
-        register_setting( 'autoptimize', 'autoptimize_cache_clean' );
667
-        register_setting( 'autoptimize', 'autoptimize_cache_nogzip' );
668
-        register_setting( 'autoptimize', 'autoptimize_show_adv' );
669
-        register_setting( 'autoptimize', 'autoptimize_optimize_logged' );
670
-        register_setting( 'autoptimize', 'autoptimize_optimize_checkout' );
671
-        register_setting( 'autoptimize', 'autoptimize_minify_excluded' );
647
+        register_setting('autoptimize', 'autoptimize_html');
648
+        register_setting('autoptimize', 'autoptimize_html_keepcomments');
649
+        register_setting('autoptimize', 'autoptimize_js');
650
+        register_setting('autoptimize', 'autoptimize_js_aggregate');
651
+        register_setting('autoptimize', 'autoptimize_js_exclude');
652
+        register_setting('autoptimize', 'autoptimize_js_trycatch');
653
+        register_setting('autoptimize', 'autoptimize_js_justhead');
654
+        register_setting('autoptimize', 'autoptimize_js_forcehead');
655
+        register_setting('autoptimize', 'autoptimize_js_include_inline');
656
+        register_setting('autoptimize', 'autoptimize_css');
657
+        register_setting('autoptimize', 'autoptimize_css_aggregate');
658
+        register_setting('autoptimize', 'autoptimize_css_exclude');
659
+        register_setting('autoptimize', 'autoptimize_css_justhead');
660
+        register_setting('autoptimize', 'autoptimize_css_datauris');
661
+        register_setting('autoptimize', 'autoptimize_css_defer');
662
+        register_setting('autoptimize', 'autoptimize_css_defer_inline');
663
+        register_setting('autoptimize', 'autoptimize_css_inline');
664
+        register_setting('autoptimize', 'autoptimize_css_include_inline');
665
+        register_setting('autoptimize', 'autoptimize_cdn_url');
666
+        register_setting('autoptimize', 'autoptimize_cache_clean');
667
+        register_setting('autoptimize', 'autoptimize_cache_nogzip');
668
+        register_setting('autoptimize', 'autoptimize_show_adv');
669
+        register_setting('autoptimize', 'autoptimize_optimize_logged');
670
+        register_setting('autoptimize', 'autoptimize_optimize_checkout');
671
+        register_setting('autoptimize', 'autoptimize_minify_excluded');
672 672
     }
673 673
 
674 674
     public function setmeta($links, $file = null)
@@ -676,20 +676,20 @@  discard block
 block discarded – undo
676 676
         // Inspired on http://wpengineer.com/meta-links-for-wordpress-plugins/.
677 677
         // Do it only once - saves time.
678 678
         static $plugin;
679
-        if ( empty( $plugin ) ) {
680
-            $plugin = plugin_basename( AUTOPTIMIZE_PLUGIN_DIR . 'autoptimize.php' );
679
+        if (empty($plugin)) {
680
+            $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php');
681 681
         }
682 682
 
683
-        if ( null === $file ) {
683
+        if (null === $file) {
684 684
             // 2.7 and lower.
685
-            $settings_link = sprintf( '<a href="options-general.php?page=autoptimize">%s</a>', __( 'Settings' ) );
686
-            array_unshift( $links, $settings_link );
685
+            $settings_link = sprintf('<a href="options-general.php?page=autoptimize">%s</a>', __('Settings'));
686
+            array_unshift($links, $settings_link);
687 687
         } else {
688 688
             // 2.8 and higher.
689 689
             // If it's us, add the link.
690
-            if ( $file === $plugin ) {
691
-                $newlink = array( sprintf( '<a href="options-general.php?page=autoptimize">%s</a>', __( 'Settings' ) ) );
692
-                $links = array_merge( $links, $newlink );
690
+            if ($file === $plugin) {
691
+                $newlink = array(sprintf('<a href="options-general.php?page=autoptimize">%s</a>', __('Settings')));
692
+                $links = array_merge($links, $newlink);
693 693
             }
694 694
         }
695 695
 
@@ -761,7 +761,7 @@  discard block
 block discarded – undo
761 761
             'autoptimize_imgopt_select_field_2'   => '2', // quality glossy.
762 762
             'autoptimize_imgopt_checkbox_field_3' => '0', // lazy load off.
763 763
             'autoptimize_imgopt_checkbox_field_4' => '0', // webp off (might be removed).
764
-            'autoptimize_imgopt_text_field_5'     => '',  // lazy load exclusions empty.
764
+            'autoptimize_imgopt_text_field_5'     => '', // lazy load exclusions empty.
765 765
         );
766 766
         return $defaults;
767 767
     }
@@ -773,7 +773,7 @@  discard block
 block discarded – undo
773 773
      */
774 774
     public static function get_ao_css_preload_polyfill()
775 775
     {
776
-        $preload_poly = apply_filters('autoptimize_css_preload_polyfill','<script data-cfasync=\'false\'>!function(t){"use strict";t.loadCSS||(t.loadCSS=function(){});var e=loadCSS.relpreload={};if(e.support=function(){var e;try{e=t.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),e.bindMediaToggle=function(t){function e(){t.media=a}var a=t.media||"all";t.addEventListener?t.addEventListener("load",e):t.attachEvent&&t.attachEvent("onload",e),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(e,3e3)},e.poly=function(){if(!e.support())for(var a=t.document.getElementsByTagName("link"),n=0;n<a.length;n++){var o=a[n];"preload"!==o.rel||"style"!==o.getAttribute("as")||o.getAttribute("data-loadcss")||(o.setAttribute("data-loadcss",!0),e.bindMediaToggle(o))}},!e.support()){e.poly();var a=t.setInterval(e.poly,500);t.addEventListener?t.addEventListener("load",function(){e.poly(),t.clearInterval(a)}):t.attachEvent&&t.attachEvent("onload",function(){e.poly(),t.clearInterval(a)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:t.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>');
776
+        $preload_poly = apply_filters('autoptimize_css_preload_polyfill', '<script data-cfasync=\'false\'>!function(t){"use strict";t.loadCSS||(t.loadCSS=function(){});var e=loadCSS.relpreload={};if(e.support=function(){var e;try{e=t.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),e.bindMediaToggle=function(t){function e(){t.media=a}var a=t.media||"all";t.addEventListener?t.addEventListener("load",e):t.attachEvent&&t.attachEvent("onload",e),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(e,3e3)},e.poly=function(){if(!e.support())for(var a=t.document.getElementsByTagName("link"),n=0;n<a.length;n++){var o=a[n];"preload"!==o.rel||"style"!==o.getAttribute("as")||o.getAttribute("data-loadcss")||(o.setAttribute("data-loadcss",!0),e.bindMediaToggle(o))}},!e.support()){e.poly();var a=t.setInterval(e.poly,500);t.addEventListener?t.addEventListener("load",function(){e.poly(),t.clearInterval(a)}):t.attachEvent&&t.attachEvent("onload",function(){e.poly(),t.clearInterval(a)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:t.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>');
777 777
         return $preload_poly;
778 778
     }
779 779
 
@@ -784,55 +784,55 @@  discard block
 block discarded – undo
784 784
      */
785 785
     public static function get_ao_css_preload_onload()
786 786
     {
787
-        $preload_onload = apply_filters('autoptimize_filter_css_preload_onload',"this.onload=null;this.rel='stylesheet'");
787
+        $preload_onload = apply_filters('autoptimize_filter_css_preload_onload', "this.onload=null;this.rel='stylesheet'");
788 788
         return $preload_onload;
789 789
     }
790 790
 
791 791
     public function get($key)
792 792
     {
793
-        if ( ! is_array( $this->config ) ) {
793
+        if (!is_array($this->config)) {
794 794
             // Default config.
795 795
             $config = self::get_defaults();
796 796
 
797 797
             // Override with user settings.
798
-            foreach ( array_keys( $config ) as $name ) {
799
-                $conf = get_option( $name );
800
-                if ( false !== $conf ) {
798
+            foreach (array_keys($config) as $name) {
799
+                $conf = get_option($name);
800
+                if (false !== $conf) {
801 801
                     // It was set before!
802
-                    $config[ $name ] = $conf;
802
+                    $config[$name] = $conf;
803 803
                 }
804 804
             }
805 805
 
806 806
             // Save for next call.
807
-            $this->config = apply_filters( 'autoptimize_filter_get_config', $config );
807
+            $this->config = apply_filters('autoptimize_filter_get_config', $config);
808 808
         }
809 809
 
810
-        if ( isset( $this->config[ $key ] ) ) {
811
-            return $this->config[ $key ];
810
+        if (isset($this->config[$key])) {
811
+            return $this->config[$key];
812 812
         }
813 813
 
814 814
         return false;
815 815
     }
816 816
 
817 817
     private function getFutttaFeeds($url) {
818
-        if ( $this->settings_screen_do_remote_http ) {
819
-            $rss = fetch_feed( $url );
818
+        if ($this->settings_screen_do_remote_http) {
819
+            $rss = fetch_feed($url);
820 820
             $maxitems = 0;
821 821
 
822
-            if ( ! is_wp_error( $rss ) ) {
823
-                $maxitems = $rss->get_item_quantity( 7 );
824
-                $rss_items = $rss->get_items( 0, $maxitems );
822
+            if (!is_wp_error($rss)) {
823
+                $maxitems = $rss->get_item_quantity(7);
824
+                $rss_items = $rss->get_items(0, $maxitems);
825 825
             }
826 826
             ?>
827 827
             <ul>
828
-                <?php if ( $maxitems == 0 ) : ?>
829
-                    <li><?php _e( 'No items', 'autoptimize' ); ?></li>
828
+                <?php if ($maxitems == 0) : ?>
829
+                    <li><?php _e('No items', 'autoptimize'); ?></li>
830 830
                 <?php else : ?>
831
-                    <?php foreach ( $rss_items as $item ) : ?>
831
+                    <?php foreach ($rss_items as $item) : ?>
832 832
                         <li>
833
-                            <a href="<?php echo esc_url( $item->get_permalink() ); ?>"
834
-                                title="<?php printf( __( 'Posted %s', 'autoptimize' ), $item->get_date('j F Y | g:i a') ); ?>">
835
-                                <?php echo esc_html( $item->get_title() ); ?>
833
+                            <a href="<?php echo esc_url($item->get_permalink()); ?>"
834
+                                title="<?php printf(__('Posted %s', 'autoptimize'), $item->get_date('j F Y | g:i a')); ?>">
835
+                                <?php echo esc_html($item->get_title()); ?>
836 836
                             </a>
837 837
                         </li>
838 838
                     <?php endforeach; ?>
@@ -845,23 +845,23 @@  discard block
 block discarded – undo
845 845
     // based on http://wordpress.stackexchange.com/a/58826
846 846
     static function ao_admin_tabs()
847 847
     {
848
-        $tabs = apply_filters( 'autoptimize_filter_settingsscreen_tabs' ,array( 'autoptimize' => __( 'JS, CSS  &amp; HTML', 'autoptimize' ) ) );
848
+        $tabs = apply_filters('autoptimize_filter_settingsscreen_tabs', array('autoptimize' => __('JS, CSS  &amp; HTML', 'autoptimize')));
849 849
         $tabContent = '';
850 850
         $tabs_count = count($tabs);
851
-        if ( $tabs_count > 1 ) {
852
-            if ( isset( $_GET['page'] ) ) {
851
+        if ($tabs_count > 1) {
852
+            if (isset($_GET['page'])) {
853 853
                 $currentId = $_GET['page'];
854 854
             } else {
855 855
                 $currentId = "autoptimize";
856 856
             }
857 857
             $tabContent .= '<h2 class="nav-tab-wrapper">';
858 858
             foreach ($tabs as $tabId => $tabName) {
859
-                if ( $currentId == $tabId ) {
859
+                if ($currentId == $tabId) {
860 860
                     $class = ' nav-tab-active';
861
-                } else{
861
+                } else {
862 862
                     $class = '';
863 863
                 }
864
-                $tabContent .= '<a class="nav-tab' . $class . '" href="?page=' . $tabId . '">' . $tabName . '</a>';
864
+                $tabContent .= '<a class="nav-tab'.$class.'" href="?page='.$tabId.'">'.$tabName.'</a>';
865 865
             }
866 866
             $tabContent .= '</h2>';
867 867
         } else {
@@ -878,7 +878,7 @@  discard block
 block discarded – undo
878 878
      */
879 879
     public static function is_admin_and_not_ajax()
880 880
     {
881
-        return ( is_admin() && ! self::doing_ajax() );
881
+        return (is_admin() && !self::doing_ajax());
882 882
     }
883 883
 
884 884
     /**
@@ -888,10 +888,10 @@  discard block
 block discarded – undo
888 888
      */
889 889
     protected static function doing_ajax()
890 890
     {
891
-        if ( function_exists( 'wp_doing_ajax' ) ) {
891
+        if (function_exists('wp_doing_ajax')) {
892 892
             return wp_doing_ajax();
893 893
         } else {
894
-            return ( defined( 'DOING_AJAX' ) && DOING_AJAX );
894
+            return (defined('DOING_AJAX') && DOING_AJAX);
895 895
         }
896 896
     }
897 897
 }
Please login to merge, or discard this patch.
classes/autoptimizeScripts.php 1 patch
Spacing   +154 added lines, -154 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
     exit;
5 5
 }
6 6
 
@@ -13,18 +13,18 @@  discard block
 block discarded – undo
13 13
     );
14 14
 
15 15
     private $dontmove = array(
16
-        'document.write','html5.js','show_ads.js','google_ad','histats.com/js','statcounter.com/counter/counter.js',
17
-        'ws.amazon.com/widgets','media.fastclick.net','/ads/','comment-form-quicktags/quicktags.php','edToolbar',
18
-        'intensedebate.com','scripts.chitika.net/','_gaq.push','jotform.com/','admin-bar.min.js','GoogleAnalyticsObject',
19
-        'plupload.full.min.js','syntaxhighlighter','adsbygoogle','gist.github.com','_stq','nonce','post_id','data-noptimize'
16
+        'document.write', 'html5.js', 'show_ads.js', 'google_ad', 'histats.com/js', 'statcounter.com/counter/counter.js',
17
+        'ws.amazon.com/widgets', 'media.fastclick.net', '/ads/', 'comment-form-quicktags/quicktags.php', 'edToolbar',
18
+        'intensedebate.com', 'scripts.chitika.net/', '_gaq.push', 'jotform.com/', 'admin-bar.min.js', 'GoogleAnalyticsObject',
19
+        'plupload.full.min.js', 'syntaxhighlighter', 'adsbygoogle', 'gist.github.com', '_stq', 'nonce', 'post_id', 'data-noptimize'
20 20
         ,'logHuman'
21 21
     );
22 22
     private $domove     = array(
23
-        'gaJsHost','load_cmc','jd.gallery.transitions.js','swfobject.embedSWF(','tiny_mce.js','tinyMCEPreInit.go'
23
+        'gaJsHost', 'load_cmc', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'tiny_mce.js', 'tinyMCEPreInit.go'
24 24
     );
25 25
     private $domovelast = array(
26
-        'addthis.com','/afsonline/show_afs_search.js','disqus.js','networkedblogs.com/getnetworkwidget','infolinks.com/js/',
27
-        'jd.gallery.js.php','jd.gallery.transitions.js','swfobject.embedSWF(','linkwithin.com/widget.js','tiny_mce.js','tinyMCEPreInit.go'
26
+        'addthis.com', '/afsonline/show_afs_search.js', 'disqus.js', 'networkedblogs.com/getnetworkwidget', 'infolinks.com/js/',
27
+        'jd.gallery.js.php', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'linkwithin.com/widget.js', 'tiny_mce.js', 'tinyMCEPreInit.go'
28 28
     );
29 29
 
30 30
     private $aggregate       = true;
@@ -44,89 +44,89 @@  discard block
 block discarded – undo
44 44
     // Reads the page and collects script tags.
45 45
     public function read($options)
46 46
     {
47
-        $noptimizeJS = apply_filters( 'autoptimize_filter_js_noptimize', false, $this->content );
48
-        if ( $noptimizeJS ) {
47
+        $noptimizeJS = apply_filters('autoptimize_filter_js_noptimize', false, $this->content);
48
+        if ($noptimizeJS) {
49 49
             return false;
50 50
         }
51 51
 
52 52
         // only optimize known good JS?
53
-        $whitelistJS = apply_filters( 'autoptimize_filter_js_whitelist', '', $this->content );
54
-        if ( ! empty( $whitelistJS ) ) {
55
-            $this->whitelist = array_filter( array_map( 'trim', explode( ',', $whitelistJS ) ) );
53
+        $whitelistJS = apply_filters('autoptimize_filter_js_whitelist', '', $this->content);
54
+        if (!empty($whitelistJS)) {
55
+            $this->whitelist = array_filter(array_map('trim', explode(',', $whitelistJS)));
56 56
         }
57 57
 
58 58
         // is there JS we should simply remove?
59
-        $removableJS = apply_filters( 'autoptimize_filter_js_removables', '', $this->content );
59
+        $removableJS = apply_filters('autoptimize_filter_js_removables', '', $this->content);
60 60
         if (!empty($removableJS)) {
61
-            $this->jsremovables = array_filter( array_map( 'trim', explode( ',', $removableJS ) ) );
61
+            $this->jsremovables = array_filter(array_map('trim', explode(',', $removableJS)));
62 62
         }
63 63
 
64 64
         // only header?
65
-        if ( apply_filters( 'autoptimize_filter_js_justhead', $options['justhead'] ) ) {
66
-            $content             = explode( '</head>', $this->content, 2 );
67
-            $this->content       = $content[0] . '</head>';
65
+        if (apply_filters('autoptimize_filter_js_justhead', $options['justhead'])) {
66
+            $content             = explode('</head>', $this->content, 2);
67
+            $this->content       = $content[0].'</head>';
68 68
             $this->restofcontent = $content[1];
69 69
         }
70 70
 
71 71
         // Determine whether we're doing JS-files aggregation or not.
72
-        if ( ! $options['aggregate'] ) {
72
+        if (!$options['aggregate']) {
73 73
             $this->aggregate = false;
74 74
         }
75 75
         // Returning true for "dontaggregate" turns off aggregation.
76
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_js_dontaggregate', false ) ) {
76
+        if ($this->aggregate && apply_filters('autoptimize_filter_js_dontaggregate', false)) {
77 77
             $this->aggregate = false;
78 78
         }
79 79
 
80 80
         // include inline?
81
-        if ( apply_filters( 'autoptimize_js_include_inline', $options['include_inline'] ) ) {
81
+        if (apply_filters('autoptimize_js_include_inline', $options['include_inline'])) {
82 82
             $this->include_inline = true;
83 83
         }
84 84
 
85 85
         // filter to "late inject minified JS", default to true for now (it is faster).
86
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_js_inject_min_late', true );
86
+        $this->inject_min_late = apply_filters('autoptimize_filter_js_inject_min_late', true);
87 87
 
88 88
         // filters to override hardcoded do(nt)move(last) array contents (array in, array out!).
89
-        $this->dontmove = apply_filters( 'autoptimize_filter_js_dontmove', $this->dontmove );
90
-        $this->domovelast = apply_filters( 'autoptimize_filter_js_movelast', $this->domovelast );
91
-        $this->domove = apply_filters( 'autoptimize_filter_js_domove', $this->domove );
89
+        $this->dontmove = apply_filters('autoptimize_filter_js_dontmove', $this->dontmove);
90
+        $this->domovelast = apply_filters('autoptimize_filter_js_movelast', $this->domovelast);
91
+        $this->domove = apply_filters('autoptimize_filter_js_domove', $this->domove);
92 92
 
93 93
         // Determine whether excluded files should be minified if not yet so.
94
-        if ( ! $options['minify_excluded'] && $options['aggregate'] ) {
94
+        if (!$options['minify_excluded'] && $options['aggregate']) {
95 95
             $this->minify_excluded = false;
96 96
         }
97 97
 
98 98
         // get extra exclusions settings or filter.
99 99
         $excludeJS = $options['js_exclude'];
100
-        $excludeJS = apply_filters( 'autoptimize_filter_js_exclude', $excludeJS, $this->content );
100
+        $excludeJS = apply_filters('autoptimize_filter_js_exclude', $excludeJS, $this->content);
101 101
 
102
-        if ( '' !== $excludeJS ) {
103
-            if ( is_array( $excludeJS ) ) {
104
-                if ( ( $removeKeys = array_keys( $excludeJS, 'remove' ) ) !== false ) {
105
-                    foreach ( $removeKeys as $removeKey ) {
106
-                        unset( $excludeJS[$removeKey] );
102
+        if ('' !== $excludeJS) {
103
+            if (is_array($excludeJS)) {
104
+                if (($removeKeys = array_keys($excludeJS, 'remove')) !== false) {
105
+                    foreach ($removeKeys as $removeKey) {
106
+                        unset($excludeJS[$removeKey]);
107 107
                         $this->jsremovables[] = $removeKey;
108 108
                     }
109 109
                 }
110
-                $exclJSArr = array_keys( $excludeJS );
110
+                $exclJSArr = array_keys($excludeJS);
111 111
             } else {
112
-                $exclJSArr = array_filter( array_map( 'trim', explode( ',', $excludeJS ) ) );
112
+                $exclJSArr = array_filter(array_map('trim', explode(',', $excludeJS)));
113 113
             }
114
-            $this->dontmove = array_merge( $exclJSArr, $this->dontmove );
114
+            $this->dontmove = array_merge($exclJSArr, $this->dontmove);
115 115
         }
116 116
 
117 117
         // Should we add try-catch?
118
-        if ( $options['trycatch'] ) {
118
+        if ($options['trycatch']) {
119 119
             $this->trycatch = true;
120 120
         }
121 121
 
122 122
         // force js in head?
123
-        if ( $options['forcehead'] ) {
123
+        if ($options['forcehead']) {
124 124
             $this->forcehead = true;
125 125
         } else {
126 126
             $this->forcehead = false;
127 127
         }
128 128
 
129
-        $this->forcehead = apply_filters( 'autoptimize_filter_js_forcehead', $this->forcehead );
129
+        $this->forcehead = apply_filters('autoptimize_filter_js_forcehead', $this->forcehead);
130 130
 
131 131
         // get cdn url.
132 132
         $this->cdn_url = $options['cdn_url'];
@@ -141,26 +141,26 @@  discard block
 block discarded – undo
141 141
         $this->content = $this->hide_comments($this->content);
142 142
 
143 143
         // Get script files.
144
-        if ( preg_match_all( '#<script.*</script>#Usmi', $this->content, $matches ) ) {
145
-            foreach( $matches[0] as $tag ) {
144
+        if (preg_match_all('#<script.*</script>#Usmi', $this->content, $matches)) {
145
+            foreach ($matches[0] as $tag) {
146 146
                 // only consider script aggregation for types whitelisted in should_aggregate-function.
147 147
                 $should_aggregate = $this->should_aggregate($tag);
148
-                if ( ! $should_aggregate ) {
148
+                if (!$should_aggregate) {
149 149
                     $tag = '';
150 150
                     continue;
151 151
                 }
152 152
 
153
-                if ( preg_match( '#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source ) ) {
153
+                if (preg_match('#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source)) {
154 154
                     // non-inline script.
155
-                    if ( $this->isremovable($tag, $this->jsremovables) ) {
156
-                        $this->content = str_replace( $tag, '', $this->content );
155
+                    if ($this->isremovable($tag, $this->jsremovables)) {
156
+                        $this->content = str_replace($tag, '', $this->content);
157 157
                         continue;
158 158
                     }
159 159
 
160 160
                     $origTag = null;
161
-                    $url = current( explode( '?', $source[2], 2 ) );
161
+                    $url = current(explode('?', $source[2], 2));
162 162
                     $path = $this->getpath($url);
163
-                    if ( false !== $path && preg_match( '#\.js$#', $path ) && $this->ismergeable($tag) ) {
163
+                    if (false !== $path && preg_match('#\.js$#', $path) && $this->ismergeable($tag)) {
164 164
                         // ok to optimize, add to array.
165 165
                         $this->scripts[] = $path;
166 166
                     } else {
@@ -168,11 +168,11 @@  discard block
 block discarded – undo
168 168
                         $newTag  = $tag;
169 169
 
170 170
                         // non-mergeable script (excluded or dynamic or external).
171
-                        if ( is_array( $excludeJS ) ) {
171
+                        if (is_array($excludeJS)) {
172 172
                             // should we add flags?
173
-                            foreach ( $excludeJS as $exclTag => $exclFlags) {
174
-                                if ( false !== strpos( $origTag, $exclTag ) && in_array( $exclFlags, array( 'async', 'defer' ) ) ) {
175
-                                    $newTag = str_replace( '<script ', '<script ' . $exclFlags . ' ', $newTag );
173
+                            foreach ($excludeJS as $exclTag => $exclFlags) {
174
+                                if (false !== strpos($origTag, $exclTag) && in_array($exclFlags, array('async', 'defer'))) {
175
+                                    $newTag = str_replace('<script ', '<script '.$exclFlags.' ', $newTag);
176 176
                                 }
177 177
                             }
178 178
                         }
@@ -180,28 +180,28 @@  discard block
 block discarded – undo
180 180
                         // Should we minify the non-aggregated script?
181 181
                         // -> if aggregate is on and exclude minify is on
182 182
                         // -> if aggregate is off and the file is not in dontmove.
183
-                        if ( $path && ( $this->minify_excluded || apply_filters( 'autoptimize_filter_js_minify_excluded', false, $url ) ) ) {
184
-                            $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
185
-                            if ( ( false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path ) || ( true === $this->aggregate && ( false === $consider_minified_array || str_replace( $consider_minified_array, '', $path ) === $path ) ) ) {
186
-                                $minified_url = $this->minify_single( $path );
183
+                        if ($path && ($this->minify_excluded || apply_filters('autoptimize_filter_js_minify_excluded', false, $url))) {
184
+                            $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
185
+                            if ((false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path) || (true === $this->aggregate && (false === $consider_minified_array || str_replace($consider_minified_array, '', $path) === $path))) {
186
+                                $minified_url = $this->minify_single($path);
187 187
                                 // replace orig URL with minified URL from cache if so.
188
-                                if ( ! empty( $minified_url ) ) {
189
-                                    $newTag = str_replace( $url, $minified_url, $newTag );
188
+                                if (!empty($minified_url)) {
189
+                                    $newTag = str_replace($url, $minified_url, $newTag);
190 190
                                 }
191 191
                             }
192 192
                         }
193 193
 
194
-                        if ( $this->ismovable($newTag) ) {
194
+                        if ($this->ismovable($newTag)) {
195 195
                             // can be moved, flags and all.
196
-                            if ( $this->movetolast($newTag) )  {
196
+                            if ($this->movetolast($newTag)) {
197 197
                                 $this->move['last'][] = $newTag;
198 198
                             } else {
199 199
                                 $this->move['first'][] = $newTag;
200 200
                             }
201 201
                         } else {
202 202
                             // cannot be moved, so if flag was added re-inject altered tag immediately.
203
-                            if ( $origTag !== $newTag ) {
204
-                                $this->content = str_replace( $origTag, $newTag, $this->content );
203
+                            if ($origTag !== $newTag) {
204
+                                $this->content = str_replace($origTag, $newTag, $this->content);
205 205
                                 $origTag = '';
206 206
                             }
207 207
                             // and forget about the $tag (not to be touched any more).
@@ -210,23 +210,23 @@  discard block
 block discarded – undo
210 210
                     }
211 211
                 } else {
212 212
                     // Inline script.
213
-                    if ( $this->isremovable($tag, $this->jsremovables) ) {
214
-                        $this->content = str_replace( $tag, '', $this->content );
213
+                    if ($this->isremovable($tag, $this->jsremovables)) {
214
+                        $this->content = str_replace($tag, '', $this->content);
215 215
                         continue;
216 216
                     }
217 217
 
218 218
                     // unhide comments, as javascript may be wrapped in comment-tags for old times' sake.
219 219
                     $tag = $this->restore_comments($tag);
220
-                    if ( $this->ismergeable($tag) && $this->include_inline ) {
221
-                        preg_match( '#<script.*>(.*)</script>#Usmi', $tag , $code );
222
-                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1] );
223
-                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code );
224
-                        $this->scripts[] = 'INLINE;' . $code;
220
+                    if ($this->ismergeable($tag) && $this->include_inline) {
221
+                        preg_match('#<script.*>(.*)</script>#Usmi', $tag, $code);
222
+                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1]);
223
+                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code);
224
+                        $this->scripts[] = 'INLINE;'.$code;
225 225
                     } else {
226 226
                         // Can we move this?
227
-                        $autoptimize_js_moveable = apply_filters( 'autoptimize_js_moveable', '', $tag );
228
-                        if ( $this->ismovable($tag) || '' !== $autoptimize_js_moveable ) {
229
-                            if ( $this->movetolast($tag) || 'last' === $autoptimize_js_moveable ) {
227
+                        $autoptimize_js_moveable = apply_filters('autoptimize_js_moveable', '', $tag);
228
+                        if ($this->ismovable($tag) || '' !== $autoptimize_js_moveable) {
229
+                            if ($this->movetolast($tag) || 'last' === $autoptimize_js_moveable) {
230 230
                                 $this->move['last'][] = $tag;
231 231
                             } else {
232 232
                                 $this->move['first'][] = $tag;
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
                 }
242 242
 
243 243
                 //Remove the original script tag.
244
-                $this->content = str_replace( $tag, '', $this->content );
244
+                $this->content = str_replace($tag, '', $this->content);
245 245
             }
246 246
 
247 247
             return true;
@@ -271,21 +271,21 @@  discard block
 block discarded – undo
271 271
         // We're only interested in the type attribute of the <script> tag itself, not any possible
272 272
         // inline code that might just contain the 'type=' string...
273 273
         $tag_parts = array();
274
-        preg_match( '#<(script[^>]*)>#i', $tag, $tag_parts);
274
+        preg_match('#<(script[^>]*)>#i', $tag, $tag_parts);
275 275
         $tag_without_contents = null;
276
-        if ( ! empty( $tag_parts[1] ) ) {
276
+        if (!empty($tag_parts[1])) {
277 277
             $tag_without_contents = $tag_parts[1];
278 278
         }
279 279
 
280
-        $has_type = ( strpos( $tag_without_contents, 'type' ) !== false );
280
+        $has_type = (strpos($tag_without_contents, 'type') !== false);
281 281
 
282 282
         $type_valid = false;
283
-        if ( $has_type ) {
284
-            $type_valid = (bool) preg_match( '/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents );
283
+        if ($has_type) {
284
+            $type_valid = (bool) preg_match('/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents);
285 285
         }
286 286
 
287 287
         $should_aggregate = false;
288
-        if ( ! $has_type || $type_valid ) {
288
+        if (!$has_type || $type_valid) {
289 289
             $should_aggregate = true;
290 290
         }
291 291
 
@@ -295,40 +295,40 @@  discard block
 block discarded – undo
295 295
     //Joins and optimizes JS
296 296
     public function minify()
297 297
     {
298
-        foreach ( $this->scripts as $script ) {
298
+        foreach ($this->scripts as $script) {
299 299
             // TODO/FIXME: some duplicate code here, can be reduced/simplified
300
-            if ( preg_match( '#^INLINE;#', $script ) ) {
300
+            if (preg_match('#^INLINE;#', $script)) {
301 301
                 // Inline script
302
-                $script = preg_replace( '#^INLINE;#', '', $script );
303
-                $script = rtrim( $script, ";\n\t\r" ) . ';';
302
+                $script = preg_replace('#^INLINE;#', '', $script);
303
+                $script = rtrim($script, ";\n\t\r").';';
304 304
                 // Add try-catch?
305
-                if ( $this->trycatch ) {
306
-                    $script = 'try{' . $script . '}catch(e){}';
305
+                if ($this->trycatch) {
306
+                    $script = 'try{'.$script.'}catch(e){}';
307 307
                 }
308
-                $tmpscript = apply_filters( 'autoptimize_js_individual_script', $script, '' );
309
-                if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscript ) ) {
308
+                $tmpscript = apply_filters('autoptimize_js_individual_script', $script, '');
309
+                if (has_filter('autoptimize_js_individual_script') && !empty($tmpscript)) {
310 310
                     $script = $tmpscript;
311 311
                     $this->alreadyminified = true;
312 312
                 }
313
-                $this->jscode .= "\n" . $script;
313
+                $this->jscode .= "\n".$script;
314 314
             } else {
315 315
                 // External script
316
-                if ( false !== $script && file_exists( $script ) && is_readable( $script ) ) {
317
-                    $scriptsrc = file_get_contents( $script );
318
-                    $scriptsrc = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc );
319
-                    $scriptsrc = rtrim( $scriptsrc, ";\n\t\r" ) . ';';
316
+                if (false !== $script && file_exists($script) && is_readable($script)) {
317
+                    $scriptsrc = file_get_contents($script);
318
+                    $scriptsrc = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc);
319
+                    $scriptsrc = rtrim($scriptsrc, ";\n\t\r").';';
320 320
                     // Add try-catch?
321
-                    if ( $this->trycatch ) {
322
-                        $scriptsrc = 'try{' . $scriptsrc . '}catch(e){}';
321
+                    if ($this->trycatch) {
322
+                        $scriptsrc = 'try{'.$scriptsrc.'}catch(e){}';
323 323
                     }
324
-                    $tmpscriptsrc = apply_filters( 'autoptimize_js_individual_script', $scriptsrc, $script );
325
-                    if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscriptsrc ) ) {
324
+                    $tmpscriptsrc = apply_filters('autoptimize_js_individual_script', $scriptsrc, $script);
325
+                    if (has_filter('autoptimize_js_individual_script') && !empty($tmpscriptsrc)) {
326 326
                         $scriptsrc = $tmpscriptsrc;
327 327
                         $this->alreadyminified = true;
328
-                    } else if ( $this->can_inject_late($script) ) {
328
+                    } else if ($this->can_inject_late($script)) {
329 329
                         $scriptsrc = self::build_injectlater_marker($script, md5($scriptsrc));
330 330
                     }
331
-                    $this->jscode .= "\n" . $scriptsrc;
331
+                    $this->jscode .= "\n".$scriptsrc;
332 332
                 }/*else{
333 333
                     //Couldn't read JS. Maybe getpath isn't working?
334 334
                 }*/
@@ -336,32 +336,32 @@  discard block
 block discarded – undo
336 336
         }
337 337
 
338 338
         // Check for already-minified code
339
-        $this->md5hash = md5( $this->jscode );
339
+        $this->md5hash = md5($this->jscode);
340 340
         $ccheck = new autoptimizeCache($this->md5hash, 'js');
341
-        if ( $ccheck->check() ) {
341
+        if ($ccheck->check()) {
342 342
             $this->jscode = $ccheck->retrieve();
343 343
             return true;
344 344
         }
345
-        unset( $ccheck );
345
+        unset($ccheck);
346 346
 
347 347
         // $this->jscode has all the uncompressed code now.
348
-        if ( true !== $this->alreadyminified ) {
349
-            if ( apply_filters( 'autoptimize_js_do_minify', true ) ) {
350
-                $tmp_jscode = trim( JSMin::minify( $this->jscode ) );
351
-                if ( ! empty( $tmp_jscode ) ) {
348
+        if (true !== $this->alreadyminified) {
349
+            if (apply_filters('autoptimize_js_do_minify', true)) {
350
+                $tmp_jscode = trim(JSMin::minify($this->jscode));
351
+                if (!empty($tmp_jscode)) {
352 352
                     $this->jscode = $tmp_jscode;
353
-                    unset( $tmp_jscode );
353
+                    unset($tmp_jscode);
354 354
                 }
355
-                $this->jscode = $this->inject_minified( $this->jscode );
356
-                $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
355
+                $this->jscode = $this->inject_minified($this->jscode);
356
+                $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
357 357
                 return true;
358 358
             } else {
359
-                $this->jscode = $this->inject_minified( $this->jscode );
359
+                $this->jscode = $this->inject_minified($this->jscode);
360 360
                 return false;
361 361
             }
362 362
         }
363 363
 
364
-        $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
364
+        $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
365 365
         return true;
366 366
     }
367 367
 
@@ -369,11 +369,11 @@  discard block
 block discarded – undo
369 369
     public function cache()
370 370
     {
371 371
         $cache = new autoptimizeCache($this->md5hash, 'js');
372
-        if ( ! $cache->check() ) {
372
+        if (!$cache->check()) {
373 373
             // Cache our code
374 374
             $cache->cache($this->jscode, 'text/javascript');
375 375
         }
376
-        $this->url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
376
+        $this->url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
377 377
         $this->url = $this->url_replace_cdn($this->url);
378 378
     }
379 379
 
@@ -381,43 +381,43 @@  discard block
 block discarded – undo
381 381
     public function getcontent()
382 382
     {
383 383
         // Restore the full content
384
-        if ( ! empty( $this->restofcontent ) ) {
384
+        if (!empty($this->restofcontent)) {
385 385
             $this->content .= $this->restofcontent;
386 386
             $this->restofcontent = '';
387 387
         }
388 388
 
389 389
         // Add the scripts taking forcehead/ deferred (default) into account
390
-        if ( $this->forcehead ) {
391
-            $replaceTag = array( '</head>', 'before' );
390
+        if ($this->forcehead) {
391
+            $replaceTag = array('</head>', 'before');
392 392
             $defer = '';
393 393
         } else {
394
-            $replaceTag = array( '</body>', 'before' );
394
+            $replaceTag = array('</body>', 'before');
395 395
             $defer = 'defer ';
396 396
         }
397 397
 
398
-        $defer = apply_filters( 'autoptimize_filter_js_defer', $defer );
398
+        $defer = apply_filters('autoptimize_filter_js_defer', $defer);
399 399
 
400
-        $bodyreplacementpayload = '<script type="text/javascript" ' . $defer . 'src="' . $this->url . '"></script>';
401
-        $bodyreplacementpayload = apply_filters( 'autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload );
400
+        $bodyreplacementpayload = '<script type="text/javascript" '.$defer.'src="'.$this->url.'"></script>';
401
+        $bodyreplacementpayload = apply_filters('autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload);
402 402
 
403
-        $bodyreplacement = implode( '', $this->move['first'] );
403
+        $bodyreplacement = implode('', $this->move['first']);
404 404
         $bodyreplacement .= $bodyreplacementpayload;
405
-        $bodyreplacement .= implode( '', $this->move['last'] );
405
+        $bodyreplacement .= implode('', $this->move['last']);
406 406
 
407
-        $replaceTag = apply_filters( 'autoptimize_filter_js_replacetag', $replaceTag );
407
+        $replaceTag = apply_filters('autoptimize_filter_js_replacetag', $replaceTag);
408 408
 
409
-        if ( strlen( $this->jscode ) > 0 ) {
410
-            $this->inject_in_html( $bodyreplacement, $replaceTag );
409
+        if (strlen($this->jscode) > 0) {
410
+            $this->inject_in_html($bodyreplacement, $replaceTag);
411 411
         }
412 412
 
413 413
         // Restore comments.
414
-        $this->content = $this->restore_comments( $this->content );
414
+        $this->content = $this->restore_comments($this->content);
415 415
 
416 416
         // Restore IE hacks.
417
-        $this->content = $this->restore_iehacks( $this->content );
417
+        $this->content = $this->restore_iehacks($this->content);
418 418
 
419 419
         // Restore noptimize.
420
-        $this->content = $this->restore_noptimize( $this->content );
420
+        $this->content = $this->restore_noptimize($this->content);
421 421
 
422 422
         // Return the modified HTML.
423 423
         return $this->content;
@@ -426,32 +426,32 @@  discard block
 block discarded – undo
426 426
     // Checks against the white- and blacklists
427 427
     private function ismergeable($tag)
428 428
     {
429
-        if ( ! $this->aggregate ) {
429
+        if (!$this->aggregate) {
430 430
             return false;
431 431
         }
432 432
 
433
-        if ( ! empty( $this->whitelist ) ) {
434
-            foreach ( $this->whitelist as $match ) {
435
-                if (false !== strpos( $tag, $match ) ) {
433
+        if (!empty($this->whitelist)) {
434
+            foreach ($this->whitelist as $match) {
435
+                if (false !== strpos($tag, $match)) {
436 436
                     return true;
437 437
                 }
438 438
             }
439 439
             // no match with whitelist
440 440
             return false;
441 441
         } else {
442
-            foreach($this->domove as $match) {
443
-                if ( false !== strpos( $tag, $match ) ) {
442
+            foreach ($this->domove as $match) {
443
+                if (false !== strpos($tag, $match)) {
444 444
                     // Matched something
445 445
                     return false;
446 446
                 }
447 447
             }
448 448
 
449
-            if ( $this->movetolast($tag) ) {
449
+            if ($this->movetolast($tag)) {
450 450
                 return false;
451 451
             }
452 452
 
453
-            foreach( $this->dontmove as $match ) {
454
-                if ( false !== strpos( $tag, $match ) ) {
453
+            foreach ($this->dontmove as $match) {
454
+                if (false !== strpos($tag, $match)) {
455 455
                     // Matched something
456 456
                     return false;
457 457
                 }
@@ -465,23 +465,23 @@  discard block
 block discarded – undo
465 465
     // Checks agains the blacklist
466 466
     private function ismovable($tag)
467 467
     {
468
-        if ( true !== $this->include_inline || apply_filters( 'autoptimize_filter_js_unmovable', true ) ) {
468
+        if (true !== $this->include_inline || apply_filters('autoptimize_filter_js_unmovable', true)) {
469 469
             return false;
470 470
         }
471 471
 
472
-        foreach ( $this->domove as $match ) {
473
-            if ( false !== strpos( $tag, $match ) ) {
472
+        foreach ($this->domove as $match) {
473
+            if (false !== strpos($tag, $match)) {
474 474
                 // Matched something
475 475
                 return true;
476 476
             }
477 477
         }
478 478
 
479
-        if ( $this->movetolast($tag) ) {
479
+        if ($this->movetolast($tag)) {
480 480
             return true;
481 481
         }
482 482
 
483
-        foreach ( $this->dontmove as $match ) {
484
-            if ( false !== strpos( $tag, $match ) ) {
483
+        foreach ($this->dontmove as $match) {
484
+            if (false !== strpos($tag, $match)) {
485 485
                 // Matched something
486 486
                 return false;
487 487
             }
@@ -493,8 +493,8 @@  discard block
 block discarded – undo
493 493
 
494 494
     private function movetolast($tag)
495 495
     {
496
-        foreach ( $this->domovelast as $match ) {
497
-            if ( false !== strpos( $tag, $match ) ) {
496
+        foreach ($this->domovelast as $match) {
497
+            if (false !== strpos($tag, $match)) {
498 498
                 // Matched, return true
499 499
                 return true;
500 500
             }
@@ -515,11 +515,11 @@  discard block
 block discarded – undo
515 515
      * @return bool
516 516
      */
517 517
     private function can_inject_late($jsPath) {
518
-        $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
519
-        if ( true !== $this->inject_min_late ) {
518
+        $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
519
+        if (true !== $this->inject_min_late) {
520 520
             // late-inject turned off
521 521
             return false;
522
-        } else if ( ( false === strpos( $jsPath, 'min.js' ) ) && ( false === strpos( $jsPath, 'wp-includes/js/jquery/jquery.js' ) ) && ( str_replace( $consider_minified_array, '', $jsPath ) === $jsPath ) ) {
522
+        } else if ((false === strpos($jsPath, 'min.js')) && (false === strpos($jsPath, 'wp-includes/js/jquery/jquery.js')) && (str_replace($consider_minified_array, '', $jsPath) === $jsPath)) {
523 523
             // file not minified based on filename & filter
524 524
             return false;
525 525
         } else {
@@ -546,26 +546,26 @@  discard block
 block discarded – undo
546 546
      *
547 547
      * @return bool|string Url pointing to the minified js file or false.
548 548
      */
549
-    public function minify_single( $filepath, $cache_miss = false )
549
+    public function minify_single($filepath, $cache_miss = false)
550 550
     {
551
-        $contents = $this->prepare_minify_single( $filepath );
551
+        $contents = $this->prepare_minify_single($filepath);
552 552
 
553
-        if ( empty( $contents ) ) {
553
+        if (empty($contents)) {
554 554
             return false;
555 555
         }
556 556
 
557 557
         // Check cache.
558
-        $hash  = 'single_' . md5( $contents );
559
-        $cache = new autoptimizeCache( $hash, 'js' );
558
+        $hash  = 'single_'.md5($contents);
559
+        $cache = new autoptimizeCache($hash, 'js');
560 560
 
561 561
         // If not in cache already, minify...
562
-        if ( ! $cache->check() || $cache_miss ) {
563
-            $contents = trim( JSMin::minify( $contents ) );
562
+        if (!$cache->check() || $cache_miss) {
563
+            $contents = trim(JSMin::minify($contents));
564 564
             // Store in cache.
565
-            $cache->cache( $contents, 'text/javascript' );
565
+            $cache->cache($contents, 'text/javascript');
566 566
         }
567 567
 
568
-        $url = $this->build_minify_single_url( $cache );
568
+        $url = $this->build_minify_single_url($cache);
569 569
 
570 570
         return $url;
571 571
     }
Please login to merge, or discard this patch.
classes/autoptimizeCacheChecker.php 1 patch
Spacing   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * Checks if cachesize is > 0.5GB (size is filterable), if so, an option is set which controls showing an admin notice.
7 7
  */
8 8
 
9
-if ( ! defined( 'ABSPATH' ) ) {
9
+if (!defined('ABSPATH')) {
10 10
     exit;
11 11
 }
12 12
 
@@ -25,51 +25,51 @@  discard block
 block discarded – undo
25 25
 
26 26
     public function add_hooks()
27 27
     {
28
-        if ( is_admin() ) {
29
-            add_action( 'plugins_loaded', array( $this, 'setup' ) );
28
+        if (is_admin()) {
29
+            add_action('plugins_loaded', array($this, 'setup'));
30 30
         }
31
-        add_action( self::SCHEDULE_HOOK, array( $this, 'cronjob' ) );
32
-        add_action( 'admin_notices', array( $this, 'show_admin_notice' ) );
31
+        add_action(self::SCHEDULE_HOOK, array($this, 'cronjob'));
32
+        add_action('admin_notices', array($this, 'show_admin_notice'));
33 33
     }
34 34
 
35 35
     public function setup()
36 36
     {
37
-        $do_cache_check = (bool) apply_filters( 'autoptimize_filter_cachecheck_do', true );
38
-        $schedule       = wp_get_schedule( self::SCHEDULE_HOOK );
39
-        $frequency      = apply_filters( 'autoptimize_filter_cachecheck_frequency', 'twicedaily' );
40
-        if ( ! in_array( $frequency, array( 'hourly', 'twicedaily', 'daily', 'weekly', 'monthly' ) ) ) {
37
+        $do_cache_check = (bool) apply_filters('autoptimize_filter_cachecheck_do', true);
38
+        $schedule       = wp_get_schedule(self::SCHEDULE_HOOK);
39
+        $frequency      = apply_filters('autoptimize_filter_cachecheck_frequency', 'twicedaily');
40
+        if (!in_array($frequency, array('hourly', 'twicedaily', 'daily', 'weekly', 'monthly'))) {
41 41
             $frequency = 'twicedaily';
42 42
         }
43
-        if ( $do_cache_check && ( ! $schedule || $schedule !== $frequency ) ) {
44
-            if ( $schedule ) {
45
-                wp_clear_scheduled_hook( self::SCHEDULE_HOOK );
43
+        if ($do_cache_check && (!$schedule || $schedule !== $frequency)) {
44
+            if ($schedule) {
45
+                wp_clear_scheduled_hook(self::SCHEDULE_HOOK);
46 46
             }
47
-            wp_schedule_event( time(), $frequency, self::SCHEDULE_HOOK );
48
-        } elseif ( $schedule && ! $do_cache_check ) {
49
-            wp_clear_scheduled_hook( self::SCHEDULE_HOOK );
47
+            wp_schedule_event(time(), $frequency, self::SCHEDULE_HOOK);
48
+        } elseif ($schedule && !$do_cache_check) {
49
+            wp_clear_scheduled_hook(self::SCHEDULE_HOOK);
50 50
         }
51 51
     }
52 52
 
53 53
     public function cronjob()
54 54
     {
55 55
         // Check cachesize and act accordingly.
56
-        $max_size       = (int) apply_filters( 'autoptimize_filter_cachecheck_maxsize', 536870912 );
57
-        $do_cache_check = (bool) apply_filters( 'autoptimize_filter_cachecheck_do', true );
56
+        $max_size       = (int) apply_filters('autoptimize_filter_cachecheck_maxsize', 536870912);
57
+        $do_cache_check = (bool) apply_filters('autoptimize_filter_cachecheck_do', true);
58 58
         $stat_array     = autoptimizeCache::stats();
59
-        $cache_size     = round( $stat_array[1] );
60
-        if ( ( $cache_size > $max_size ) && ( $do_cache_check ) ) {
61
-            update_option( 'autoptimize_cachesize_notice', true );
62
-            if ( apply_filters( 'autoptimize_filter_cachecheck_sendmail', true ) ) {
63
-                $home_url  = esc_url( home_url() );
64
-                $ao_mailto = apply_filters( 'autoptimize_filter_cachecheck_mailto', get_option( 'admin_email', '' ) );
65
-
66
-                $ao_mailsubject = __( 'Autoptimize cache size warning', 'autoptimize' ) . ' (' . $home_url . ')';
67
-                $ao_mailbody    = __( 'Autoptimize\'s cache size is getting big, consider purging the cache. Have a look at https://wordpress.org/plugins/autoptimize/faq/ to see how you can keep the cache size under control.', 'autoptimize' ) . ' (site: ' . $home_url . ')';
68
-
69
-                if ( ! empty( $ao_mailto ) ) {
70
-                    $ao_mailresult = wp_mail( $ao_mailto, $ao_mailsubject, $ao_mailbody );
71
-                    if ( ! $ao_mailresult ) {
72
-                        error_log( 'Autoptimize could not send cache size warning mail.' );
59
+        $cache_size     = round($stat_array[1]);
60
+        if (($cache_size > $max_size) && ($do_cache_check)) {
61
+            update_option('autoptimize_cachesize_notice', true);
62
+            if (apply_filters('autoptimize_filter_cachecheck_sendmail', true)) {
63
+                $home_url  = esc_url(home_url());
64
+                $ao_mailto = apply_filters('autoptimize_filter_cachecheck_mailto', get_option('admin_email', ''));
65
+
66
+                $ao_mailsubject = __('Autoptimize cache size warning', 'autoptimize').' ('.$home_url.')';
67
+                $ao_mailbody    = __('Autoptimize\'s cache size is getting big, consider purging the cache. Have a look at https://wordpress.org/plugins/autoptimize/faq/ to see how you can keep the cache size under control.', 'autoptimize').' (site: '.$home_url.')';
68
+
69
+                if (!empty($ao_mailto)) {
70
+                    $ao_mailresult = wp_mail($ao_mailto, $ao_mailsubject, $ao_mailbody);
71
+                    if (!$ao_mailresult) {
72
+                        error_log('Autoptimize could not send cache size warning mail.');
73 73
                     }
74 74
                 }
75 75
             }
@@ -87,16 +87,16 @@  discard block
 block discarded – undo
87 87
 
88 88
     public function show_admin_notice()
89 89
     {
90
-        if ( (bool) get_option( 'autoptimize_cachesize_notice', false ) && current_user_can( 'manage_options' ) ) {
90
+        if ((bool) get_option('autoptimize_cachesize_notice', false) && current_user_can('manage_options')) {
91 91
             echo '<div class="notice notice-warning"><p>';
92
-            _e( '<strong>Autoptimize\'s cache size is getting big</strong>, consider purging the cache. Have a look at <a href="https://wordpress.org/plugins/autoptimize/faq/" target="_blank" rel="noopener noreferrer">the Autoptimize FAQ</a> to see how you can keep the cache size under control.', 'autoptimize' );
92
+            _e('<strong>Autoptimize\'s cache size is getting big</strong>, consider purging the cache. Have a look at <a href="https://wordpress.org/plugins/autoptimize/faq/" target="_blank" rel="noopener noreferrer">the Autoptimize FAQ</a> to see how you can keep the cache size under control.', 'autoptimize');
93 93
             echo '</p></div>';
94
-            update_option( 'autoptimize_cachesize_notice', false );
94
+            update_option('autoptimize_cachesize_notice', false);
95 95
         }
96 96
 
97 97
         // Notice for image proxy usage.
98 98
         $_imgopt_notice = autoptimizeImages::instance()->get_status_notice();
99
-        if ( current_user_can( 'manage_options' ) && is_array( $_imgopt_notice ) && array_key_exists( 'status', $_imgopt_notice ) && in_array( $_imgopt_notice['status'], array( 1, -1, -2 ) ) ) {
99
+        if (current_user_can('manage_options') && is_array($_imgopt_notice) && array_key_exists('status', $_imgopt_notice) && in_array($_imgopt_notice['status'], array(1, -1, -2))) {
100 100
             $_dismissible = 'ao-img-opt-notice-';
101 101
             $_hide_notice = '7';
102 102
 
@@ -104,10 +104,10 @@  discard block
 block discarded – undo
104 104
                 $_hide_notice = '1';
105 105
             }
106 106
 
107
-            $_imgopt_notice_dismissible = apply_filters( 'autoptimize_filter_imgopt_notice_dismissable', $_dismissible . $_hide_notice );
107
+            $_imgopt_notice_dismissible = apply_filters('autoptimize_filter_imgopt_notice_dismissable', $_dismissible.$_hide_notice);
108 108
 
109
-            if ( $_imgopt_notice && PAnD::is_admin_notice_active( $_imgopt_notice_dismissible ) ) {
110
-                echo '<div class="notice notice-warning is-dismissible" data-dismissible="' . $_imgopt_notice_dismissible . '"><p>' . $_imgopt_notice['notice'] . '</p></div>';
109
+            if ($_imgopt_notice && PAnD::is_admin_notice_active($_imgopt_notice_dismissible)) {
110
+                echo '<div class="notice notice-warning is-dismissible" data-dismissible="'.$_imgopt_notice_dismissible.'"><p>'.$_imgopt_notice['notice'].'</p></div>';
111 111
             }
112 112
         }
113 113
     }
Please login to merge, or discard this patch.