Completed
Pull Request — master (#223)
by
unknown
01:56
created
classes/external/php/plugin-update-checker/Puc/v4p4/Plugin/Update.php 1 patch
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( !class_exists('Puc_v4p4_Plugin_Update', false) ):
2
+if (!class_exists('Puc_v4p4_Plugin_Update', false)):
3 3
 
4 4
 	/**
5 5
 	 * A simple container class for holding information about an available update.
@@ -26,12 +26,12 @@  discard block
 block discarded – undo
26 26
 		 * @param string $json
27 27
 		 * @return Puc_v4p4_Plugin_Update|null
28 28
 		 */
29
-		public static function fromJson($json){
29
+		public static function fromJson($json) {
30 30
 			//Since update-related information is simply a subset of the full plugin info,
31 31
 			//we can parse the update JSON as if it was a plugin info string, then copy over
32 32
 			//the parts that we care about.
33 33
 			$pluginInfo = Puc_v4p4_Plugin_Info::fromJson($json);
34
-			if ( $pluginInfo !== null ) {
34
+			if ($pluginInfo !== null) {
35 35
 				return self::fromPluginInfo($pluginInfo);
36 36
 			} else {
37 37
 				return null;
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
 		 * @param Puc_v4p4_Plugin_Info $info
46 46
 		 * @return Puc_v4p4_Plugin_Update
47 47
 		 */
48
-		public static function fromPluginInfo($info){
48
+		public static function fromPluginInfo($info) {
49 49
 			return self::fromObject($info);
50 50
 		}
51 51
 
@@ -81,23 +81,23 @@  discard block
 block discarded – undo
81 81
 			$update->tested = $this->tested;
82 82
 			$update->plugin = $this->filename;
83 83
 
84
-			if ( !empty($this->upgrade_notice) ) {
84
+			if (!empty($this->upgrade_notice)) {
85 85
 				$update->upgrade_notice = $this->upgrade_notice;
86 86
 			}
87 87
 
88
-			if ( !empty($this->icons) && is_array($this->icons) ) {
88
+			if (!empty($this->icons) && is_array($this->icons)) {
89 89
 				//This should be an array with up to 4 keys: 'svg', '1x', '2x' and 'default'.
90 90
 				//Docs: https://developer.wordpress.org/plugins/wordpress-org/plugin-assets/#plugin-icons
91 91
 				$icons = array_intersect_key(
92 92
 					$this->icons,
93 93
 					array('svg' => true, '1x' => true, '2x' => true, 'default' => true)
94 94
 				);
95
-				if ( !empty($icons) ) {
95
+				if (!empty($icons)) {
96 96
 					$update->icons = $icons;
97 97
 
98 98
 					//It appears that the 'default' icon isn't used anywhere in WordPress 4.9,
99 99
 					//but lets set it just in case a future release needs it.
100
-					if ( !isset($update->icons['default']) ) {
100
+					if (!isset($update->icons['default'])) {
101 101
 						$update->icons['default'] = current($update->icons);
102 102
 					}
103 103
 				}
Please login to merge, or discard this patch.
classes/external/php/plugin-update-checker/Puc/v4p4/Plugin/Info.php 1 patch
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( !class_exists('Puc_v4p4_Plugin_Info', false) ):
2
+if (!class_exists('Puc_v4p4_Plugin_Info', false)):
3 3
 
4 4
 	/**
5 5
 	 * A container class for holding and transforming various plugin metadata.
@@ -46,16 +46,16 @@  discard block
 block discarded – undo
46 46
 		 * @param string $json Valid JSON string representing plugin info.
47 47
 		 * @return self|null New instance of Plugin Info, or NULL on error.
48 48
 		 */
49
-		public static function fromJson($json){
49
+		public static function fromJson($json) {
50 50
 			$instance = new self();
51 51
 
52
-			if ( !parent::createFromJson($json, $instance) ) {
52
+			if (!parent::createFromJson($json, $instance)) {
53 53
 				return null;
54 54
 			}
55 55
 
56 56
 			//json_decode decodes assoc. arrays as objects. We want them as arrays.
57
-			$instance->sections = (array)$instance->sections;
58
-			$instance->icons = (array)$instance->icons;
57
+			$instance->sections = (array) $instance->sections;
58
+			$instance->icons = (array) $instance->icons;
59 59
 
60 60
 			return $instance;
61 61
 		}
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
 		 *
87 87
 		 * @return object
88 88
 		 */
89
-		public function toWpFormat(){
89
+		public function toWpFormat() {
90 90
 			$info = new stdClass;
91 91
 
92 92
 			//The custom update API is built so that many fields have the same name and format
@@ -95,8 +95,8 @@  discard block
 block discarded – undo
95 95
 				'name', 'slug', 'version', 'requires', 'tested', 'rating', 'upgrade_notice',
96 96
 				'num_ratings', 'downloaded', 'active_installs', 'homepage', 'last_updated',
97 97
 			);
98
-			foreach($sameFormat as $field){
99
-				if ( isset($this->$field) ) {
98
+			foreach ($sameFormat as $field) {
99
+				if (isset($this->$field)) {
100 100
 					$info->$field = $this->$field;
101 101
 				} else {
102 102
 					$info->$field = null;
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 			$info->author = $this->getFormattedAuthor();
109 109
 			$info->sections = array_merge(array('description' => ''), $this->sections);
110 110
 
111
-			if ( !empty($this->banners) ) {
111
+			if (!empty($this->banners)) {
112 112
 				//WP expects an array with two keys: "high" and "low". Both are optional.
113 113
 				//Docs: https://wordpress.org/plugins/about/faq/#banners
114 114
 				$info->banners = is_object($this->banners) ? get_object_vars($this->banners) : $this->banners;
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
 		}
120 120
 
121 121
 		protected function getFormattedAuthor() {
122
-			if ( !empty($this->author_homepage) ){
122
+			if (!empty($this->author_homepage)) {
123 123
 				/** @noinspection HtmlUnknownTarget */
124 124
 				return sprintf('<a href="%s">%s</a>', $this->author_homepage, $this->author);
125 125
 			}
Please login to merge, or discard this patch.
external/php/plugin-update-checker/Puc/v4p4/Plugin/UpdateChecker.php 1 patch
Spacing   +45 added lines, -45 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( !class_exists('Puc_v4p4_Plugin_UpdateChecker', false) ):
2
+if (!class_exists('Puc_v4p4_Plugin_UpdateChecker', false)):
3 3
 
4 4
 	/**
5 5
 	 * A custom plugin update checker.
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
 		protected $translationType = 'plugin';
14 14
 
15 15
 		public $pluginAbsolutePath = ''; //Full path of the main plugin file.
16
-		public $pluginFile = '';  //Plugin filename relative to the plugins directory. Many WP APIs use this to identify plugins.
16
+		public $pluginFile = ''; //Plugin filename relative to the plugins directory. Many WP APIs use this to identify plugins.
17 17
 		public $muPluginFile = ''; //For MU plugins, the plugin filename relative to the mu-plugins directory.
18 18
 
19 19
 		private $cachedInstalledVersion = null;
@@ -29,21 +29,21 @@  discard block
 block discarded – undo
29 29
 		 * @param string $optionName Where to store book-keeping info about update checks. Defaults to 'external_updates-$slug'.
30 30
 		 * @param string $muPluginFile Optional. The plugin filename relative to the mu-plugins directory.
31 31
 		 */
32
-		public function __construct($metadataUrl, $pluginFile, $slug = '', $checkPeriod = 12, $optionName = '', $muPluginFile = ''){
32
+		public function __construct($metadataUrl, $pluginFile, $slug = '', $checkPeriod = 12, $optionName = '', $muPluginFile = '') {
33 33
 			$this->pluginAbsolutePath = $pluginFile;
34 34
 			$this->pluginFile = plugin_basename($this->pluginAbsolutePath);
35 35
 			$this->muPluginFile = $muPluginFile;
36 36
 
37 37
 			//If no slug is specified, use the name of the main plugin file as the slug.
38 38
 			//For example, 'my-cool-plugin/cool-plugin.php' becomes 'cool-plugin'.
39
-			if ( empty($slug) ){
39
+			if (empty($slug)) {
40 40
 				$slug = basename($this->pluginFile, '.php');
41 41
 			}
42 42
 
43 43
 			//Plugin slugs must be unique.
44
-			$slugCheckFilter = 'puc_is_slug_in_use-' . $this->slug;
44
+			$slugCheckFilter = 'puc_is_slug_in_use-'.$this->slug;
45 45
 			$slugUsedBy = apply_filters($slugCheckFilter, false);
46
-			if ( $slugUsedBy ) {
46
+			if ($slugUsedBy) {
47 47
 				$this->triggerError(sprintf(
48 48
 					'Plugin slug "%s" is already in use by %s. Slugs must be unique.',
49 49
 					htmlentities($this->slug),
@@ -54,13 +54,13 @@  discard block
 block discarded – undo
54 54
 
55 55
 			//Backwards compatibility: If the plugin is a mu-plugin but no $muPluginFile is specified, assume
56 56
 			//it's the same as $pluginFile given that it's not in a subdirectory (WP only looks in the base dir).
57
-			if ( (strpbrk($this->pluginFile, '/\\') === false) && $this->isUnknownMuPlugin() ) {
57
+			if ((strpbrk($this->pluginFile, '/\\') === false) && $this->isUnknownMuPlugin()) {
58 58
 				$this->muPluginFile = $this->pluginFile;
59 59
 			}
60 60
 
61 61
 			//To prevent a crash during plugin uninstallation, remove updater hooks when the user removes the plugin.
62 62
 			//Details: https://github.com/YahnisElsts/plugin-update-checker/issues/138#issuecomment-335590964
63
-			add_action('uninstall_' . $this->pluginFile, array($this, 'removeHooks'));
63
+			add_action('uninstall_'.$this->pluginFile, array($this, 'removeHooks'));
64 64
 
65 65
 			$this->manualCheckErrorTransient = $this->getUniqueName('manual_check_errors');
66 66
 
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
 		 *
86 86
 		 * @return void
87 87
 		 */
88
-		protected function installHooks(){
88
+		protected function installHooks() {
89 89
 			//Override requests for plugin information
90 90
 			add_filter('plugins_api', array($this, 'injectInfo'), 20, 3);
91 91
 
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
 		public function requestInfo($queryArgs = array()) {
141 141
 			list($pluginInfo, $result) = $this->requestMetadata('Puc_v4p4_Plugin_Info', 'request_info', $queryArgs);
142 142
 
143
-			if ( $pluginInfo !== null ) {
143
+			if ($pluginInfo !== null) {
144 144
 				/** @var Puc_v4p4_Plugin_Info $pluginInfo */
145 145
 				$pluginInfo->filename = $this->pluginFile;
146 146
 				$pluginInfo->slug = $this->slug;
@@ -161,7 +161,7 @@  discard block
 block discarded – undo
161 161
 			//For the sake of simplicity, this function just calls requestInfo()
162 162
 			//and transforms the result accordingly.
163 163
 			$pluginInfo = $this->requestInfo(array('checking_for_updates' => '1'));
164
-			if ( $pluginInfo === null ){
164
+			if ($pluginInfo === null) {
165 165
 				return null;
166 166
 			}
167 167
 			$update = Puc_v4p4_Plugin_Update::fromPluginInfo($pluginInfo);
@@ -176,13 +176,13 @@  discard block
 block discarded – undo
176 176
 		 *
177 177
 		 * @return string Version number.
178 178
 		 */
179
-		public function getInstalledVersion(){
180
-			if ( isset($this->cachedInstalledVersion) ) {
179
+		public function getInstalledVersion() {
180
+			if (isset($this->cachedInstalledVersion)) {
181 181
 				return $this->cachedInstalledVersion;
182 182
 			}
183 183
 
184 184
 			$pluginHeader = $this->getPluginHeader();
185
-			if ( isset($pluginHeader['Version']) ) {
185
+			if (isset($pluginHeader['Version'])) {
186 186
 				$this->cachedInstalledVersion = $pluginHeader['Version'];
187 187
 				return $pluginHeader['Version'];
188 188
 			} else {
@@ -204,7 +204,7 @@  discard block
 block discarded – undo
204 204
 		 * @return array
205 205
 		 */
206 206
 		protected function getPluginHeader() {
207
-			if ( !is_file($this->pluginAbsolutePath) ) {
207
+			if (!is_file($this->pluginAbsolutePath)) {
208 208
 				//This can happen if the plugin filename is wrong.
209 209
 				$this->triggerError(
210 210
 					sprintf(
@@ -216,9 +216,9 @@  discard block
 block discarded – undo
216 216
 				return array();
217 217
 			}
218 218
 
219
-			if ( !function_exists('get_plugin_data') ){
219
+			if (!function_exists('get_plugin_data')) {
220 220
 				/** @noinspection PhpIncludeInspection */
221
-				require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
221
+				require_once(ABSPATH.'/wp-admin/includes/plugin.php');
222 222
 			}
223 223
 			return get_plugin_data($this->pluginAbsolutePath, false, false);
224 224
 		}
@@ -259,17 +259,17 @@  discard block
 block discarded – undo
259 259
 		 * @param array|object $args
260 260
 		 * @return mixed
261 261
 		 */
262
-		public function injectInfo($result, $action = null, $args = null){
262
+		public function injectInfo($result, $action = null, $args = null) {
263 263
 			$relevant = ($action == 'plugin_information') && isset($args->slug) && (
264 264
 					($args->slug == $this->slug) || ($args->slug == dirname($this->pluginFile))
265 265
 				);
266
-			if ( !$relevant ) {
266
+			if (!$relevant) {
267 267
 				return $result;
268 268
 			}
269 269
 
270 270
 			$pluginInfo = $this->requestInfo();
271 271
 			$pluginInfo = apply_filters($this->getUniqueName('pre_inject_info'), $pluginInfo);
272
-			if ( $pluginInfo ) {
272
+			if ($pluginInfo) {
273 273
 				return $pluginInfo->toWpFormat();
274 274
 			}
275 275
 
@@ -288,7 +288,7 @@  discard block
 block discarded – undo
288 288
 		 * @return stdClass
289 289
 		 */
290 290
 		protected function addUpdateToList($updates, $updateToAdd) {
291
-			if ( $this->isMuPlugin() ) {
291
+			if ($this->isMuPlugin()) {
292 292
 				//WP does not support automatic update installation for mu-plugins, but we can
293 293
 				//still display a notice.
294 294
 				$updateToAdd->package = null;
@@ -302,7 +302,7 @@  discard block
 block discarded – undo
302 302
 		 */
303 303
 		protected function removeUpdateFromList($updates) {
304 304
 			$updates = parent::removeUpdateFromList($updates);
305
-			if ( !empty($this->muPluginFile) && isset($updates, $updates->response) ) {
305
+			if (!empty($this->muPluginFile) && isset($updates, $updates->response)) {
306 306
 				unset($updates->response[$this->muPluginFile]);
307 307
 			}
308 308
 			return $updates;
@@ -315,7 +315,7 @@  discard block
 block discarded – undo
315 315
 		 * @return string
316 316
 		 */
317 317
 		protected function getUpdateListKey() {
318
-			if ( $this->isMuPlugin() ) {
318
+			if ($this->isMuPlugin()) {
319 319
 				return $this->muPluginFile;
320 320
 			}
321 321
 			return $this->pluginFile;
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 		 */
356 356
 		public function getUpdate() {
357 357
 			$update = parent::getUpdate();
358
-			if ( isset($update) ) {
358
+			if (isset($update)) {
359 359
 				/** @var Puc_v4p4_Plugin_Update $update */
360 360
 				$update->filename = $this->pluginFile;
361 361
 			}
@@ -378,7 +378,7 @@  discard block
 block discarded – undo
378 378
 			$isRelevant = ($pluginFile == $this->pluginFile)
379 379
 				|| (!empty($this->muPluginFile) && $pluginFile == $this->muPluginFile);
380 380
 
381
-			if ( $isRelevant && $this->userCanInstallUpdates() ) {
381
+			if ($isRelevant && $this->userCanInstallUpdates()) {
382 382
 				$linkUrl = wp_nonce_url(
383 383
 					add_query_arg(
384 384
 						array(
@@ -394,7 +394,7 @@  discard block
 block discarded – undo
394 394
 					$this->getUniqueName('manual_check_link'),
395 395
 					__('Check for updates', 'plugin-update-checker')
396 396
 				);
397
-				if ( !empty($linkText) ) {
397
+				if (!empty($linkText)) {
398 398
 					/** @noinspection HtmlUnknownTarget */
399 399
 					$pluginMeta[] = sprintf('<a href="%s">%s</a>', esc_attr($linkUrl), $linkText);
400 400
 				}
@@ -428,17 +428,17 @@  discard block
 block discarded – undo
428 428
 			$isRelevant = ($pluginFile == $this->pluginFile)
429 429
 				|| (!empty($this->muPluginFile) && $pluginFile == $this->muPluginFile);
430 430
 
431
-			if ( $isRelevant && $this->userCanInstallUpdates() && !isset($pluginData['slug']) ) {
431
+			if ($isRelevant && $this->userCanInstallUpdates() && !isset($pluginData['slug'])) {
432 432
 				$linkText = apply_filters($this->getUniqueName('view_details_link'), __('View details'));
433
-				if ( !empty($linkText) ) {
433
+				if (!empty($linkText)) {
434 434
 					$viewDetailsLinkPosition = 'append';
435 435
 
436 436
 					//Find the "Visit plugin site" link (if present).
437 437
 					$visitPluginSiteLinkIndex = count($pluginMeta) - 1;
438
-					if ( $pluginData['PluginURI'] ) {
438
+					if ($pluginData['PluginURI']) {
439 439
 						$escapedPluginUri = esc_url($pluginData['PluginURI']);
440 440
 						foreach ($pluginMeta as $linkIndex => $existingLink) {
441
-							if ( strpos($existingLink, $escapedPluginUri) !== false ) {
441
+							if (strpos($existingLink, $escapedPluginUri) !== false) {
442 442
 								$visitPluginSiteLinkIndex = $linkIndex;
443 443
 								$viewDetailsLinkPosition = apply_filters(
444 444
 									$this->getUniqueName('view_details_link_position'),
@@ -450,7 +450,7 @@  discard block
 block discarded – undo
450 450
 					}
451 451
 
452 452
 					$viewDetailsLink = sprintf('<a href="%s" class="thickbox open-plugin-details-modal" aria-label="%s" data-title="%s">%s</a>',
453
-						esc_url(network_admin_url('plugin-install.php?tab=plugin-information&plugin=' . urlencode($this->slug) .
453
+						esc_url(network_admin_url('plugin-install.php?tab=plugin-information&plugin='.urlencode($this->slug).
454 454
 							'&TB_iframe=true&width=600&height=550')),
455 455
 						esc_attr(sprintf(__('More information about %s'), $pluginData['Name'])),
456 456
 						esc_attr($pluginData['Name']),
@@ -490,11 +490,11 @@  discard block
 block discarded – undo
490 490
 				&& $this->userCanInstallUpdates()
491 491
 				&& check_admin_referer('puc_check_for_updates');
492 492
 
493
-			if ( $shouldCheck ) {
493
+			if ($shouldCheck) {
494 494
 				$update = $this->checkForUpdates();
495 495
 				$status = ($update === null) ? 'no_update' : 'update_available';
496 496
 
497
-				if ( ($update === null) && !empty($this->lastRequestApiErrors) ) {
497
+				if (($update === null) && !empty($this->lastRequestApiErrors)) {
498 498
 					//Some errors are not critical. For example, if PUC tries to retrieve the readme.txt
499 499
 					//file from GitHub and gets a 404, that's an API error, but it doesn't prevent updates
500 500
 					//from working. Maybe the plugin simply doesn't have a readme.
@@ -509,13 +509,13 @@  discard block
 block discarded – undo
509 509
 					foreach ($this->lastRequestApiErrors as $item) {
510 510
 						$wpError = $item['error'];
511 511
 						/** @var WP_Error $wpError */
512
-						if ( !in_array($wpError->get_error_code(), $questionableErrorCodes) ) {
512
+						if (!in_array($wpError->get_error_code(), $questionableErrorCodes)) {
513 513
 							$foundCriticalErrors = true;
514 514
 							break;
515 515
 						}
516 516
 					}
517 517
 
518
-					if ( $foundCriticalErrors ) {
518
+					if ($foundCriticalErrors) {
519 519
 						$status = 'error';
520 520
 						set_site_transient($this->manualCheckErrorTransient, $this->lastRequestApiErrors, 60);
521 521
 					}
@@ -538,17 +538,17 @@  discard block
 block discarded – undo
538 538
 		 * You can change the result message by using the "puc_manual_check_message-$slug" filter.
539 539
 		 */
540 540
 		public function displayManualCheckResult() {
541
-			if ( isset($_GET['puc_update_check_result'], $_GET['puc_slug']) && ($_GET['puc_slug'] == $this->slug) ) {
541
+			if (isset($_GET['puc_update_check_result'], $_GET['puc_slug']) && ($_GET['puc_slug'] == $this->slug)) {
542 542
 				$status      = strval($_GET['puc_update_check_result']);
543 543
 				$title       = $this->getPluginTitle();
544 544
 				$noticeClass = 'updated notice-success';
545 545
 				$details     = '';
546 546
 
547
-				if ( $status == 'no_update' ) {
547
+				if ($status == 'no_update') {
548 548
 					$message = sprintf(_x('The %s plugin is up to date.', 'the plugin title', 'plugin-update-checker'), $title);
549
-				} else if ( $status == 'update_available' ) {
549
+				} else if ($status == 'update_available') {
550 550
 					$message = sprintf(_x('A new version of the %s plugin is available.', 'the plugin title', 'plugin-update-checker'), $title);
551
-				} else if ( $status === 'error' ) {
551
+				} else if ($status === 'error') {
552 552
 					$message = sprintf(_x('Could not determine if updates are available for %s.', 'the plugin title', 'plugin-update-checker'), $title);
553 553
 					$noticeClass = 'error notice-error';
554 554
 
@@ -574,13 +574,13 @@  discard block
 block discarded – undo
574 574
 		 * @return string
575 575
 		 */
576 576
 		protected function formatManualCheckErrors($errors) {
577
-			if ( empty($errors) ) {
577
+			if (empty($errors)) {
578 578
 				return '';
579 579
 			}
580 580
 			$output = '';
581 581
 
582 582
 			$showAsList = count($errors) > 1;
583
-			if ( $showAsList ) {
583
+			if ($showAsList) {
584 584
 				$output .= '<ol>';
585 585
 				$formatString = '<li>%1$s <code>%2$s</code></li>';
586 586
 			} else {
@@ -595,7 +595,7 @@  discard block
 block discarded – undo
595 595
 					$wpError->get_error_code()
596 596
 				);
597 597
 			}
598
-			if ( $showAsList ) {
598
+			if ($showAsList) {
599 599
 				$output .= '</ol>';
600 600
 			}
601 601
 
@@ -610,7 +610,7 @@  discard block
 block discarded – undo
610 610
 		protected function getPluginTitle() {
611 611
 			$title  = '';
612 612
 			$header = $this->getPluginHeader();
613
-			if ( $header && !empty($header['Name']) && isset($header['TextDomain']) ) {
613
+			if ($header && !empty($header['Name']) && isset($header['TextDomain'])) {
614 614
 				$title = translate($header['Name'], $header['TextDomain']);
615 615
 			}
616 616
 			return $title;
@@ -633,7 +633,7 @@  discard block
 block discarded – undo
633 633
 		protected function isMuPlugin() {
634 634
 			static $cachedResult = null;
635 635
 
636
-			if ( $cachedResult === null ) {
636
+			if ($cachedResult === null) {
637 637
 				//Convert both paths to the canonical form before comparison.
638 638
 				$muPluginDir = realpath(WPMU_PLUGIN_DIR);
639 639
 				$pluginPath  = realpath($this->pluginAbsolutePath);
@@ -693,7 +693,7 @@  discard block
 block discarded – undo
693 693
 		 * @param callable $callback
694 694
 		 * @return void
695 695
 		 */
696
-		public function addQueryArgFilter($callback){
696
+		public function addQueryArgFilter($callback) {
697 697
 			$this->addFilter('request_info_query_args', $callback);
698 698
 		}
699 699
 
Please login to merge, or discard this patch.
classes/external/php/plugin-update-checker/Puc/v4p4/UpgraderStatus.php 1 patch
Spacing   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( !class_exists('Puc_v4p4_UpgraderStatus', false) ):
2
+if (!class_exists('Puc_v4p4_UpgraderStatus', false)):
3 3
 
4 4
 	/**
5 5
 	 * A utility class that helps figure out which plugin or theme WordPress is upgrading.
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
 	 */
11 11
 	class Puc_v4p4_UpgraderStatus {
12 12
 		private $currentType = null; //"plugin" or "theme".
13
-		private $currentId = null;   //Plugin basename or theme directory name.
13
+		private $currentId = null; //Plugin basename or theme directory name.
14 14
 
15 15
 		public function __construct() {
16 16
 			//Keep track of which plugin/theme WordPress is currently upgrading.
@@ -54,9 +54,9 @@  discard block
 block discarded – undo
54 54
 		 * @return bool
55 55
 		 */
56 56
 		protected function isBeingUpgraded($type, $id, $upgrader = null) {
57
-			if ( isset($upgrader) ) {
57
+			if (isset($upgrader)) {
58 58
 				list($currentType, $currentId) = $this->getThingBeingUpgradedBy($upgrader);
59
-				if ( $currentType !== null ) {
59
+				if ($currentType !== null) {
60 60
 					$this->currentType = $currentType;
61 61
 					$this->currentId = $currentId;
62 62
 				}
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 		 * @return array
81 81
 		 */
82 82
 		private function getThingBeingUpgradedBy($upgrader) {
83
-			if ( !isset($upgrader, $upgrader->skin) ) {
83
+			if (!isset($upgrader, $upgrader->skin)) {
84 84
 				return array(null, null);
85 85
 			}
86 86
 
@@ -89,26 +89,26 @@  discard block
 block discarded – undo
89 89
 			$themeDirectoryName = null;
90 90
 
91 91
 			$skin = $upgrader->skin;
92
-			if ( isset($skin->theme_info) && ($skin->theme_info instanceof WP_Theme) ) {
92
+			if (isset($skin->theme_info) && ($skin->theme_info instanceof WP_Theme)) {
93 93
 				$themeDirectoryName = $skin->theme_info->get_stylesheet();
94
-			} elseif ( $skin instanceof Plugin_Upgrader_Skin ) {
95
-				if ( isset($skin->plugin) && is_string($skin->plugin) && ($skin->plugin !== '') ) {
94
+			} elseif ($skin instanceof Plugin_Upgrader_Skin) {
95
+				if (isset($skin->plugin) && is_string($skin->plugin) && ($skin->plugin !== '')) {
96 96
 					$pluginFile = $skin->plugin;
97 97
 				}
98
-			} elseif ( $skin instanceof Theme_Upgrader_Skin ) {
99
-				if ( isset($skin->theme) && is_string($skin->theme) && ($skin->theme !== '') ) {
98
+			} elseif ($skin instanceof Theme_Upgrader_Skin) {
99
+				if (isset($skin->theme) && is_string($skin->theme) && ($skin->theme !== '')) {
100 100
 					$themeDirectoryName = $skin->theme;
101 101
 				}
102
-			} elseif ( isset($skin->plugin_info) && is_array($skin->plugin_info) ) {
102
+			} elseif (isset($skin->plugin_info) && is_array($skin->plugin_info)) {
103 103
 				//This case is tricky because Bulk_Plugin_Upgrader_Skin (etc) doesn't actually store the plugin
104 104
 				//filename anywhere. Instead, it has the plugin headers in $plugin_info. So the best we can
105 105
 				//do is compare those headers to the headers of installed plugins.
106 106
 				$pluginFile = $this->identifyPluginByHeaders($skin->plugin_info);
107 107
 			}
108 108
 
109
-			if ( $pluginFile !== null ) {
109
+			if ($pluginFile !== null) {
110 110
 				return array('plugin', $pluginFile);
111
-			} elseif ( $themeDirectoryName !== null ) {
111
+			} elseif ($themeDirectoryName !== null) {
112 112
 				return array('theme', $themeDirectoryName);
113 113
 			}
114 114
 			return array(null, null);
@@ -121,24 +121,24 @@  discard block
 block discarded – undo
121 121
 		 * @return string|null Plugin basename ("foo/bar.php"), or NULL if we can't identify the plugin.
122 122
 		 */
123 123
 		private function identifyPluginByHeaders($searchHeaders) {
124
-			if ( !function_exists('get_plugins') ){
124
+			if (!function_exists('get_plugins')) {
125 125
 				/** @noinspection PhpIncludeInspection */
126
-				require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
126
+				require_once(ABSPATH.'/wp-admin/includes/plugin.php');
127 127
 			}
128 128
 
129 129
 			$installedPlugins = get_plugins();
130 130
 			$matches = array();
131
-			foreach($installedPlugins as $pluginBasename => $headers) {
131
+			foreach ($installedPlugins as $pluginBasename => $headers) {
132 132
 				$diff1 = array_diff_assoc($headers, $searchHeaders);
133 133
 				$diff2 = array_diff_assoc($searchHeaders, $headers);
134
-				if ( empty($diff1) && empty($diff2) ) {
134
+				if (empty($diff1) && empty($diff2)) {
135 135
 					$matches[] = $pluginBasename;
136 136
 				}
137 137
 			}
138 138
 
139 139
 			//It's possible (though very unlikely) that there could be two plugins with identical
140 140
 			//headers. In that case, we can't unambiguously identify the plugin that's being upgraded.
141
-			if ( count($matches) !== 1 ) {
141
+			if (count($matches) !== 1) {
142 142
 				return null;
143 143
 			}
144 144
 
@@ -153,10 +153,10 @@  discard block
 block discarded – undo
153 153
 		 * @return mixed Returns $input unaltered.
154 154
 		 */
155 155
 		public function setUpgradedThing($input, $hookExtra) {
156
-			if ( !empty($hookExtra['plugin']) && is_string($hookExtra['plugin']) ) {
156
+			if (!empty($hookExtra['plugin']) && is_string($hookExtra['plugin'])) {
157 157
 				$this->currentId = $hookExtra['plugin'];
158 158
 				$this->currentType = 'plugin';
159
-			} elseif ( !empty($hookExtra['theme']) && is_string($hookExtra['theme']) ) {
159
+			} elseif (!empty($hookExtra['theme']) && is_string($hookExtra['theme'])) {
160 160
 				$this->currentId = $hookExtra['theme'];
161 161
 				$this->currentType = 'theme';
162 162
 			} else {
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
 		 * @return array
174 174
 		 */
175 175
 		public function setUpgradedPluginFromOptions($options) {
176
-			if ( isset($options['hook_extra']['plugin']) && is_string($options['hook_extra']['plugin']) ) {
176
+			if (isset($options['hook_extra']['plugin']) && is_string($options['hook_extra']['plugin'])) {
177 177
 				$this->currentType = 'plugin';
178 178
 				$this->currentId = $options['hook_extra']['plugin'];
179 179
 			} else {
Please login to merge, or discard this patch.
classes/external/php/plugin-update-checker/Puc/v4p4/UpdateChecker.php 1 patch
Spacing   +68 added lines, -68 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( !class_exists('Puc_v4p4_UpdateChecker', false) ):
3
+if (!class_exists('Puc_v4p4_UpdateChecker', false)):
4 4
 
5 5
 	abstract class Puc_v4p4_UpdateChecker {
6 6
 		protected $filterSuffix = '';
@@ -56,17 +56,17 @@  discard block
 block discarded – undo
56 56
 		protected $lastRequestApiErrors = array();
57 57
 
58 58
 		public function __construct($metadataUrl, $directoryName, $slug = null, $checkPeriod = 12, $optionName = '') {
59
-			$this->debugMode = (bool)(constant('WP_DEBUG'));
59
+			$this->debugMode = (bool) (constant('WP_DEBUG'));
60 60
 			$this->metadataUrl = $metadataUrl;
61 61
 			$this->directoryName = $directoryName;
62 62
 			$this->slug = !empty($slug) ? $slug : $this->directoryName;
63 63
 
64 64
 			$this->optionName = $optionName;
65
-			if ( empty($this->optionName) ) {
65
+			if (empty($this->optionName)) {
66 66
 				//BC: Initially the library only supported plugin updates and didn't use type prefixes
67 67
 				//in the option name. Lets use the same prefix-less name when possible.
68
-				if ( $this->filterSuffix === '' ) {
69
-					$this->optionName = 'external_updates-' . $this->slug;
68
+				if ($this->filterSuffix === '') {
69
+					$this->optionName = 'external_updates-'.$this->slug;
70 70
 				} else {
71 71
 					$this->optionName = $this->getUniqueName('external_updates');
72 72
 				}
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
 			$this->upgraderStatus = new Puc_v4p4_UpgraderStatus();
77 77
 			$this->updateState = new Puc_v4p4_StateStore($this->optionName);
78 78
 
79
-			if ( did_action('init') ) {
79
+			if (did_action('init')) {
80 80
 				$this->loadTextDomain();
81 81
 			} else {
82 82
 				add_action('init', array($this, 'loadTextDomain'));
@@ -98,31 +98,31 @@  discard block
 block discarded – undo
98 98
 				$domain
99 99
 			);
100 100
 
101
-			$moFile = $domain . '-' . $locale . '.mo';
102
-			$path = realpath(dirname(__FILE__) . '/../../languages');
101
+			$moFile = $domain.'-'.$locale.'.mo';
102
+			$path = realpath(dirname(__FILE__).'/../../languages');
103 103
 
104 104
 			if ($path && file_exists($path)) {
105
-				load_textdomain($domain, $path . '/' . $moFile);
105
+				load_textdomain($domain, $path.'/'.$moFile);
106 106
 			}
107 107
 		}
108 108
 
109 109
 		protected function installHooks() {
110 110
 			//Insert our update info into the update array maintained by WP.
111
-			add_filter('site_transient_' . $this->updateTransient, array($this,'injectUpdate'));
111
+			add_filter('site_transient_'.$this->updateTransient, array($this, 'injectUpdate'));
112 112
 
113 113
 			//Insert translation updates into the update list.
114
-			add_filter('site_transient_' . $this->updateTransient, array($this, 'injectTranslationUpdates'));
114
+			add_filter('site_transient_'.$this->updateTransient, array($this, 'injectTranslationUpdates'));
115 115
 
116 116
 			//Clear translation updates when WP clears the update cache.
117 117
 			//This needs to be done directly because the library doesn't actually remove obsolete plugin updates,
118 118
 			//it just hides them (see getUpdate()). We can't do that with translations - too much disk I/O.
119 119
 			add_action(
120
-				'delete_site_transient_' . $this->updateTransient,
120
+				'delete_site_transient_'.$this->updateTransient,
121 121
 				array($this, 'clearCachedTranslationUpdates')
122 122
 			);
123 123
 
124 124
 			//Rename the update directory to be the same as the existing directory.
125
-			if ( $this->directoryName !== '.' ) {
125
+			if ($this->directoryName !== '.') {
126 126
 				add_filter('upgrader_source_selection', array($this, 'fixDirectoryName'), 10, 3);
127 127
 			}
128 128
 
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
 			add_filter('http_request_host_is_external', array($this, 'allowMetadataHost'), 10, 2);
131 131
 
132 132
 			//DebugBar integration.
133
-			if ( did_action('plugins_loaded') ) {
133
+			if (did_action('plugins_loaded')) {
134 134
 				$this->maybeInitDebugBar();
135 135
 			} else {
136 136
 				add_action('plugins_loaded', array($this, 'maybeInitDebugBar'));
@@ -141,10 +141,10 @@  discard block
 block discarded – undo
141 141
 		 * Remove hooks that were added by this update checker instance.
142 142
 		 */
143 143
 		protected function removeHooks() {
144
-			remove_filter('site_transient_' . $this->updateTransient, array($this,'injectUpdate'));
145
-			remove_filter('site_transient_' . $this->updateTransient, array($this, 'injectTranslationUpdates'));
144
+			remove_filter('site_transient_'.$this->updateTransient, array($this, 'injectUpdate'));
145
+			remove_filter('site_transient_'.$this->updateTransient, array($this, 'injectTranslationUpdates'));
146 146
 			remove_action(
147
-				'delete_site_transient_' . $this->updateTransient,
147
+				'delete_site_transient_'.$this->updateTransient,
148 148
 				array($this, 'clearCachedTranslationUpdates')
149 149
 			);
150 150
 
@@ -182,11 +182,11 @@  discard block
 block discarded – undo
182 182
 		 */
183 183
 		public function allowMetadataHost($allow, $host) {
184 184
 			static $metadataHost = 0; //Using 0 instead of NULL because parse_url can return NULL.
185
-			if ( $metadataHost === 0 ) {
185
+			if ($metadataHost === 0) {
186 186
 				$metadataHost = @parse_url($this->metadataUrl, PHP_URL_HOST);
187 187
 			}
188 188
 
189
-			if ( is_string($metadataHost) && (strtolower($host) === strtolower($metadataHost)) ) {
189
+			if (is_string($metadataHost) && (strtolower($host) === strtolower($metadataHost))) {
190 190
 				return true;
191 191
 			}
192 192
 			return $allow;
@@ -211,7 +211,7 @@  discard block
 block discarded – undo
211 211
 		public function checkForUpdates() {
212 212
 			$installedVersion = $this->getInstalledVersion();
213 213
 			//Fail silently if we can't find the plugin/theme or read its header.
214
-			if ( $installedVersion === null ) {
214
+			if ($installedVersion === null) {
215 215
 				$this->triggerError(
216 216
 					sprintf('Skipping update check for %s - installed version unknown.', $this->slug),
217 217
 					E_USER_WARNING
@@ -271,10 +271,10 @@  discard block
 block discarded – undo
271 271
 			$update = $this->updateState->getUpdate();
272 272
 
273 273
 			//Is there an update available?
274
-			if ( isset($update) ) {
274
+			if (isset($update)) {
275 275
 				//Check if the update is actually newer than the currently installed version.
276 276
 				$installedVersion = $this->getInstalledVersion();
277
-				if ( ($installedVersion !== null) && version_compare($update->version, $installedVersion, '>') ){
277
+				if (($installedVersion !== null) && version_compare($update->version, $installedVersion, '>')) {
278 278
 					return $update;
279 279
 				}
280 280
 			}
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
 			//Let plugins/themes modify the update.
302 302
 			$update = apply_filters($this->getUniqueName('request_update_result'), $update, $httpResult);
303 303
 
304
-			if ( isset($update, $update->translations) ) {
304
+			if (isset($update, $update->translations)) {
305 305
 				//Keep only those translation updates that apply to this site.
306 306
 				$update->translations = $this->filterApplicableTranslations($update->translations);
307 307
 			}
@@ -345,11 +345,11 @@  discard block
 block discarded – undo
345 345
 		 * @return string
346 346
 		 */
347 347
 		public function getUniqueName($baseTag) {
348
-			$name = 'puc_' . $baseTag;
348
+			$name = 'puc_'.$baseTag;
349 349
 			if ($this->filterSuffix !== '') {
350
-				$name .= '_' . $this->filterSuffix;
350
+				$name .= '_'.$this->filterSuffix;
351 351
 			}
352
-			return $name . '-' . $this->slug;
352
+			return $name.'-'.$this->slug;
353 353
 		}
354 354
 
355 355
 		/**
@@ -362,7 +362,7 @@  discard block
 block discarded – undo
362 362
 		 * @param string|null $slug
363 363
 		 */
364 364
 		public function collectApiErrors($error, $httpResponse = null, $url = null, $slug = null) {
365
-			if ( isset($slug) && ($slug !== $this->slug) ) {
365
+			if (isset($slug) && ($slug !== $this->slug)) {
366 366
 				return;
367 367
 			}
368 368
 
@@ -416,11 +416,11 @@  discard block
 block discarded – undo
416 416
 			//Is there an update to insert?
417 417
 			$update = $this->getUpdate();
418 418
 
419
-			if ( !$this->shouldShowUpdates() ) {
419
+			if (!$this->shouldShowUpdates()) {
420 420
 				$update = null;
421 421
 			}
422 422
 
423
-			if ( !empty($update) ) {
423
+			if (!empty($update)) {
424 424
 				//Let plugins filter the update info before it's passed on to WordPress.
425 425
 				$update = apply_filters($this->getUniqueName('pre_inject_update'), $update);
426 426
 				$updates = $this->addUpdateToList($updates, $update->toWpFormat());
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
 		 * @return stdClass
439 439
 		 */
440 440
 		protected function addUpdateToList($updates, $updateToAdd) {
441
-			if ( !is_object($updates) ) {
441
+			if (!is_object($updates)) {
442 442
 				$updates = new stdClass();
443 443
 				$updates->response = array();
444 444
 			}
@@ -452,7 +452,7 @@  discard block
 block discarded – undo
452 452
 		 * @return stdClass|null
453 453
 		 */
454 454
 		protected function removeUpdateFromList($updates) {
455
-			if ( isset($updates, $updates->response) ) {
455
+			if (isset($updates, $updates->response)) {
456 456
 				unset($updates->response[$this->getUpdateListKey()]);
457 457
 			}
458 458
 			return $updates;
@@ -506,7 +506,7 @@  discard block
 block discarded – undo
506 506
 				),
507 507
 				$queryArgs
508 508
 			);
509
-			$queryArgs = apply_filters($this->getUniqueName($filterRoot . '_query_args'), $queryArgs);
509
+			$queryArgs = apply_filters($this->getUniqueName($filterRoot.'_query_args'), $queryArgs);
510 510
 
511 511
 			//Various options for the wp_remote_get() call. Plugins can filter these, too.
512 512
 			$options = array(
@@ -515,11 +515,11 @@  discard block
 block discarded – undo
515 515
 					'Accept' => 'application/json',
516 516
 				),
517 517
 			);
518
-			$options = apply_filters($this->getUniqueName($filterRoot . '_options'), $options);
518
+			$options = apply_filters($this->getUniqueName($filterRoot.'_options'), $options);
519 519
 
520 520
 			//The metadata file should be at 'http://your-api.com/url/here/$slug/info.json'
521 521
 			$url = $this->metadataUrl;
522
-			if ( !empty($queryArgs) ){
522
+			if (!empty($queryArgs)) {
523 523
 				$url = add_query_arg($queryArgs, $url);
524 524
 			}
525 525
 
@@ -530,7 +530,7 @@  discard block
 block discarded – undo
530 530
 			//Try to parse the response
531 531
 			$status = $this->validateApiResponse($result);
532 532
 			$metadata = null;
533
-			if ( !is_wp_error($status) ){
533
+			if (!is_wp_error($status)) {
534 534
 				$metadata = call_user_func(array($metaClass, 'fromJson'), $result['body']);
535 535
 			} else {
536 536
 				do_action('puc_api_error', $status, $result, $url, $this->slug);
@@ -551,25 +551,25 @@  discard block
 block discarded – undo
551 551
 		 * @return true|WP_Error
552 552
 		 */
553 553
 		protected function validateApiResponse($result) {
554
-			if ( is_wp_error($result) ) { /** @var WP_Error $result */
555
-				return new WP_Error($result->get_error_code(), 'WP HTTP Error: ' . $result->get_error_message());
554
+			if (is_wp_error($result)) { /** @var WP_Error $result */
555
+				return new WP_Error($result->get_error_code(), 'WP HTTP Error: '.$result->get_error_message());
556 556
 			}
557 557
 
558
-			if ( !isset($result['response']['code']) ) {
558
+			if (!isset($result['response']['code'])) {
559 559
 				return new WP_Error(
560 560
 					'puc_no_response_code',
561 561
 					'wp_remote_get() returned an unexpected result.'
562 562
 				);
563 563
 			}
564 564
 
565
-			if ( $result['response']['code'] !== 200 ) {
565
+			if ($result['response']['code'] !== 200) {
566 566
 				return new WP_Error(
567 567
 					'puc_unexpected_response_code',
568
-					'HTTP response code is ' . $result['response']['code'] . ' (expected: 200)'
568
+					'HTTP response code is '.$result['response']['code'].' (expected: 200)'
569 569
 				);
570 570
 			}
571 571
 
572
-			if ( empty($result['body']) ) {
572
+			if (empty($result['body'])) {
573 573
 				return new WP_Error('puc_empty_response', 'The metadata file appears to be empty.');
574 574
 			}
575 575
 
@@ -593,17 +593,17 @@  discard block
 block discarded – undo
593 593
 			$installedTranslations = $this->getInstalledTranslations();
594 594
 
595 595
 			$applicableTranslations = array();
596
-			foreach($translations as $translation) {
596
+			foreach ($translations as $translation) {
597 597
 				//Does it match one of the available core languages?
598 598
 				$isApplicable = array_key_exists($translation->language, $languages);
599 599
 				//Is it more recent than an already-installed translation?
600
-				if ( isset($installedTranslations[$translation->language]) ) {
600
+				if (isset($installedTranslations[$translation->language])) {
601 601
 					$updateTimestamp = strtotime($translation->updated);
602 602
 					$installedTimestamp = strtotime($installedTranslations[$translation->language]['PO-Revision-Date']);
603 603
 					$isApplicable = $updateTimestamp > $installedTimestamp;
604 604
 				}
605 605
 
606
-				if ( $isApplicable ) {
606
+				if ($isApplicable) {
607 607
 					$applicableTranslations[] = $translation;
608 608
 				}
609 609
 			}
@@ -617,11 +617,11 @@  discard block
 block discarded – undo
617 617
 		 * @return array
618 618
 		 */
619 619
 		protected function getInstalledTranslations() {
620
-			if ( !function_exists('wp_get_installed_translations') ) {
620
+			if (!function_exists('wp_get_installed_translations')) {
621 621
 				return array();
622 622
 			}
623
-			$installedTranslations = wp_get_installed_translations($this->translationType . 's');
624
-			if ( isset($installedTranslations[$this->directoryName]) ) {
623
+			$installedTranslations = wp_get_installed_translations($this->translationType.'s');
624
+			if (isset($installedTranslations[$this->directoryName])) {
625 625
 				$installedTranslations = $installedTranslations[$this->directoryName];
626 626
 			} else {
627 627
 				$installedTranslations = array();
@@ -637,15 +637,15 @@  discard block
 block discarded – undo
637 637
 		 */
638 638
 		public function injectTranslationUpdates($updates) {
639 639
 			$translationUpdates = $this->getTranslationUpdates();
640
-			if ( empty($translationUpdates) ) {
640
+			if (empty($translationUpdates)) {
641 641
 				return $updates;
642 642
 			}
643 643
 
644 644
 			//Being defensive.
645
-			if ( !is_object($updates) ) {
645
+			if (!is_object($updates)) {
646 646
 				$updates = new stdClass();
647 647
 			}
648
-			if ( !isset($updates->translations) ) {
648
+			if (!isset($updates->translations)) {
649 649
 				$updates->translations = array();
650 650
 			}
651 651
 
@@ -657,7 +657,7 @@  discard block
 block discarded – undo
657 657
 			));
658 658
 
659 659
 			//Add our updates to the list.
660
-			foreach($translationUpdates as $update) {
660
+			foreach ($translationUpdates as $update) {
661 661
 				$convertedUpdate = array_merge(
662 662
 					array(
663 663
 						'type' => $this->translationType,
@@ -665,9 +665,9 @@  discard block
 block discarded – undo
665 665
 						'autoupdate' => 0,
666 666
 						//AFAICT, WordPress doesn't actually use the "version" field for anything.
667 667
 						//But lets make sure it's there, just in case.
668
-						'version' => isset($update->version) ? $update->version : ('1.' . strtotime($update->updated)),
668
+						'version' => isset($update->version) ? $update->version : ('1.'.strtotime($update->updated)),
669 669
 					),
670
-					(array)$update
670
+					(array) $update
671 671
 				);
672 672
 
673 673
 				$updates->translations[] = $convertedUpdate;
@@ -740,27 +740,27 @@  discard block
 block discarded – undo
740 740
 			/** @var WP_Filesystem_Base $wp_filesystem */
741 741
 
742 742
 			//Basic sanity checks.
743
-			if ( !isset($source, $remoteSource, $upgrader, $upgrader->skin, $wp_filesystem) ) {
743
+			if (!isset($source, $remoteSource, $upgrader, $upgrader->skin, $wp_filesystem)) {
744 744
 				return $source;
745 745
 			}
746 746
 
747 747
 			//If WordPress is upgrading anything other than our plugin/theme, leave the directory name unchanged.
748
-			if ( !$this->isBeingUpgraded($upgrader) ) {
748
+			if (!$this->isBeingUpgraded($upgrader)) {
749 749
 				return $source;
750 750
 			}
751 751
 
752 752
 			//Rename the source to match the existing directory.
753
-			$correctedSource = trailingslashit($remoteSource) . $this->directoryName . '/';
754
-			if ( $source !== $correctedSource ) {
753
+			$correctedSource = trailingslashit($remoteSource).$this->directoryName.'/';
754
+			if ($source !== $correctedSource) {
755 755
 				//The update archive should contain a single directory that contains the rest of plugin/theme files.
756 756
 				//Otherwise, WordPress will try to copy the entire working directory ($source == $remoteSource).
757 757
 				//We can't rename $remoteSource because that would break WordPress code that cleans up temporary files
758 758
 				//after update.
759
-				if ( $this->isBadDirectoryStructure($remoteSource) ) {
759
+				if ($this->isBadDirectoryStructure($remoteSource)) {
760 760
 					return new WP_Error(
761 761
 						'puc-incorrect-directory-structure',
762 762
 						sprintf(
763
-							'The directory structure of the update is incorrect. All files should be inside ' .
763
+							'The directory structure of the update is incorrect. All files should be inside '.
764 764
 							'a directory named <span class="code">%s</span>, not at the root of the ZIP archive.',
765 765
 							htmlentities($this->slug)
766 766
 						)
@@ -770,11 +770,11 @@  discard block
 block discarded – undo
770 770
 				/** @var WP_Upgrader_Skin $upgrader ->skin */
771 771
 				$upgrader->skin->feedback(sprintf(
772 772
 					'Renaming %s to %s&#8230;',
773
-					'<span class="code">' . basename($source) . '</span>',
774
-					'<span class="code">' . $this->directoryName . '</span>'
773
+					'<span class="code">'.basename($source).'</span>',
774
+					'<span class="code">'.$this->directoryName.'</span>'
775 775
 				));
776 776
 
777
-				if ( $wp_filesystem->move($source, $correctedSource, true) ) {
777
+				if ($wp_filesystem->move($source, $correctedSource, true)) {
778 778
 					$upgrader->skin->feedback('Directory successfully renamed.');
779 779
 					return $correctedSource;
780 780
 				} else {
@@ -808,9 +808,9 @@  discard block
 block discarded – undo
808 808
 			/** @var WP_Filesystem_Base $wp_filesystem */
809 809
 
810 810
 			$sourceFiles = $wp_filesystem->dirlist($remoteSource);
811
-			if ( is_array($sourceFiles) ) {
811
+			if (is_array($sourceFiles)) {
812 812
 				$sourceFiles = array_keys($sourceFiles);
813
-				$firstFilePath = trailingslashit($remoteSource) . $sourceFiles[0];
813
+				$firstFilePath = trailingslashit($remoteSource).$sourceFiles[0];
814 814
 				return (count($sourceFiles) > 1) || (!$wp_filesystem->is_dir($firstFilePath));
815 815
 			}
816 816
 
@@ -843,11 +843,11 @@  discard block
 block discarded – undo
843 843
 			$headers = $this->getHeaderNames();
844 844
 			$results = array();
845 845
 			foreach ($headers as $field => $name) {
846
-				$success = preg_match('/^[ \t\/*#@]*' . preg_quote($name, '/') . ':(.*)$/mi', $content, $matches);
846
+				$success = preg_match('/^[ \t\/*#@]*'.preg_quote($name, '/').':(.*)$/mi', $content, $matches);
847 847
 
848
-				if ( ($success === 1) && $matches[1] ) {
848
+				if (($success === 1) && $matches[1]) {
849 849
 					$value = $matches[1];
850
-					if ( function_exists('_cleanup_header_comment') ) {
850
+					if (function_exists('_cleanup_header_comment')) {
851 851
 						$value = _cleanup_header_comment($value);
852 852
 					}
853 853
 					$results[$field] = $value;
@@ -873,7 +873,7 @@  discard block
 block discarded – undo
873 873
 		 * Initialize the update checker Debug Bar plugin/add-on thingy.
874 874
 		 */
875 875
 		public function maybeInitDebugBar() {
876
-			if ( class_exists('Debug_Bar', false) && file_exists(dirname(__FILE__ . '/DebugBar')) ) {
876
+			if (class_exists('Debug_Bar', false) && file_exists(dirname(__FILE__.'/DebugBar'))) {
877 877
 				$this->createDebugBarExtension();
878 878
 			}
879 879
 		}
Please login to merge, or discard this patch.
classes/external/php/plugin-update-checker/Puc/v4/Factory.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@
 block discarded – undo
1 1
 <?php
2
-if ( !class_exists('Puc_v4_Factory', false) ):
2
+if (!class_exists('Puc_v4_Factory', false)):
3 3
 
4 4
 	class Puc_v4_Factory extends Puc_v4p4_Factory { }
5 5
 
Please login to merge, or discard this patch.
classes/autoptimizeExtra.php 1 patch
Spacing   +300 added lines, -300 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Handles autoptimizeExtra frontend features + admin options page
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -21,9 +21,9 @@  discard block
 block discarded – undo
21 21
      *
22 22
      * @param array $options Optional. Allows overriding options without having to specify them via admin options page.
23 23
      */
24
-    public function __construct( $options = array() )
24
+    public function __construct($options = array())
25 25
     {
26
-        if ( empty( $options ) ) {
26
+        if (empty($options)) {
27 27
             $options = self::fetch_options();
28 28
         }
29 29
 
@@ -32,9 +32,9 @@  discard block
 block discarded – undo
32 32
 
33 33
     public function run()
34 34
     {
35
-        if ( is_admin() ) {
36
-            add_action( 'admin_menu', array( $this, 'admin_menu' ) );
37
-            add_filter( 'autoptimize_filter_settingsscreen_tabs', array( $this, 'add_extra_tab' ) );
35
+        if (is_admin()) {
36
+            add_action('admin_menu', array($this, 'admin_menu'));
37
+            add_filter('autoptimize_filter_settingsscreen_tabs', array($this, 'add_extra_tab'));
38 38
         } else {
39 39
             $this->run_on_frontend();
40 40
         }
@@ -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_extra_settings' );
46
-        if ( empty( $value ) ) {
45
+        $value = get_option('autoptimize_extra_settings');
46
+        if (empty($value)) {
47 47
             // Fallback to returning defaults when no stored option exists yet.
48 48
             $value = autoptimizeConfig::get_ao_extra_default_options();
49 49
         }
50 50
 
51 51
         // get service availability.
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;
@@ -61,55 +61,55 @@  discard block
 block discarded – undo
61 61
     public function disable_emojis()
62 62
     {
63 63
         // Removing all actions related to emojis!
64
-        remove_action( 'admin_print_styles', 'print_emoji_styles' );
65
-        remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
66
-        remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
67
-        remove_action( 'wp_print_styles', 'print_emoji_styles' );
68
-        remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
69
-        remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
70
-        remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
64
+        remove_action('admin_print_styles', 'print_emoji_styles');
65
+        remove_action('wp_head', 'print_emoji_detection_script', 7);
66
+        remove_action('admin_print_scripts', 'print_emoji_detection_script');
67
+        remove_action('wp_print_styles', 'print_emoji_styles');
68
+        remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
69
+        remove_filter('the_content_feed', 'wp_staticize_emoji');
70
+        remove_filter('comment_text_rss', 'wp_staticize_emoji');
71 71
 
72 72
         // Removes TinyMCE emojis.
73
-        add_filter( 'tiny_mce_plugins', array( $this, 'filter_disable_emojis_tinymce' ) );
73
+        add_filter('tiny_mce_plugins', array($this, 'filter_disable_emojis_tinymce'));
74 74
 
75 75
         // Removes emoji dns-preftech.
76
-        add_filter( 'wp_resource_hints', array( $this, 'filter_remove_emoji_dns_prefetch' ), 10, 2 );
76
+        add_filter('wp_resource_hints', array($this, 'filter_remove_emoji_dns_prefetch'), 10, 2);
77 77
     }
78 78
 
79
-    public function filter_disable_emojis_tinymce( $plugins )
79
+    public function filter_disable_emojis_tinymce($plugins)
80 80
     {
81
-        if ( is_array( $plugins ) ) {
82
-            return array_diff( $plugins, array( 'wpemoji' ) );
81
+        if (is_array($plugins)) {
82
+            return array_diff($plugins, array('wpemoji'));
83 83
         } else {
84 84
             return array();
85 85
         }
86 86
     }
87 87
 
88
-    public function filter_remove_qs( $src )
88
+    public function filter_remove_qs($src)
89 89
     {
90
-        if ( strpos( $src, '?ver=' ) ) {
91
-            $src = remove_query_arg( 'ver', $src );
90
+        if (strpos($src, '?ver=')) {
91
+            $src = remove_query_arg('ver', $src);
92 92
         }
93 93
 
94 94
         return $src;
95 95
     }
96 96
 
97
-    public function extra_async_js( $in )
97
+    public function extra_async_js($in)
98 98
     {
99 99
         $exclusions = array();
100
-        if ( ! empty( $in ) ) {
101
-            $exclusions = array_fill_keys( array_filter( array_map( 'trim', explode( ',', $in ) ) ), '' );
100
+        if (!empty($in)) {
101
+            $exclusions = array_fill_keys(array_filter(array_map('trim', explode(',', $in))), '');
102 102
         }
103 103
 
104 104
         $settings = $this->options['autoptimize_extra_text_field_3'];
105
-        $async    = array_fill_keys( array_filter( array_map( 'trim', explode( ',', $settings ) ) ), '' );
106
-        $attr     = apply_filters( 'autoptimize_filter_extra_async', 'async' );
107
-        foreach ( $async as $k => $v ) {
108
-            $async[ $k ] = $attr;
105
+        $async    = array_fill_keys(array_filter(array_map('trim', explode(',', $settings))), '');
106
+        $attr     = apply_filters('autoptimize_filter_extra_async', 'async');
107
+        foreach ($async as $k => $v) {
108
+            $async[$k] = $attr;
109 109
         }
110 110
 
111 111
         // Merge exclusions & asyncs in one array and return to AO API.
112
-        $merged = array_merge( $exclusions, $async );
112
+        $merged = array_merge($exclusions, $async);
113 113
 
114 114
         return $merged;
115 115
     }
@@ -119,57 +119,57 @@  discard block
 block discarded – undo
119 119
         $options = $this->options;
120 120
 
121 121
         // Disable emojis if specified.
122
-        if ( ! empty( $options['autoptimize_extra_checkbox_field_1'] ) ) {
122
+        if (!empty($options['autoptimize_extra_checkbox_field_1'])) {
123 123
             $this->disable_emojis();
124 124
         }
125 125
 
126 126
         // Remove version query parameters.
127
-        if ( ! empty( $options['autoptimize_extra_checkbox_field_0'] ) ) {
128
-            add_filter( 'script_loader_src', array( $this, 'filter_remove_qs' ), 15, 1 );
129
-            add_filter( 'style_loader_src', array( $this, 'filter_remove_qs' ), 15, 1 );
127
+        if (!empty($options['autoptimize_extra_checkbox_field_0'])) {
128
+            add_filter('script_loader_src', array($this, 'filter_remove_qs'), 15, 1);
129
+            add_filter('style_loader_src', array($this, 'filter_remove_qs'), 15, 1);
130 130
         }
131 131
 
132 132
         // Avoiding conflicts of interest when async-javascript plugin is active!
133
-        $async_js_plugin_active = autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' );
134
-        if ( ! empty( $options['autoptimize_extra_text_field_3'] ) && ! $async_js_plugin_active ) {
135
-            add_filter( 'autoptimize_filter_js_exclude', array( $this, 'extra_async_js' ), 10, 1 );
133
+        $async_js_plugin_active = autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php');
134
+        if (!empty($options['autoptimize_extra_text_field_3']) && !$async_js_plugin_active) {
135
+            add_filter('autoptimize_filter_js_exclude', array($this, 'extra_async_js'), 10, 1);
136 136
         }
137 137
 
138 138
         // Optimize google fonts!
139
-        if ( ! empty( $options['autoptimize_extra_radio_field_4'] ) && ( '1' !== $options['autoptimize_extra_radio_field_4'] ) ) {
140
-            add_filter( 'wp_resource_hints', array( $this, 'filter_remove_gfonts_dnsprefetch' ), 10, 2 );
141
-            add_filter( 'autoptimize_html_after_minify', array( $this, 'filter_optimize_google_fonts' ), 10, 1 );
142
-            add_filter( 'autoptimize_extra_filter_tobepreconn', array( $this, 'filter_preconnect_google_fonts' ), 10, 1 );
139
+        if (!empty($options['autoptimize_extra_radio_field_4']) && ('1' !== $options['autoptimize_extra_radio_field_4'])) {
140
+            add_filter('wp_resource_hints', array($this, 'filter_remove_gfonts_dnsprefetch'), 10, 2);
141
+            add_filter('autoptimize_html_after_minify', array($this, 'filter_optimize_google_fonts'), 10, 1);
142
+            add_filter('autoptimize_extra_filter_tobepreconn', array($this, 'filter_preconnect_google_fonts'), 10, 1);
143 143
         }
144 144
 
145 145
         // Preconnect!
146
-        if ( ! empty( $options['autoptimize_extra_text_field_2'] ) || has_filter( 'autoptimize_extra_filter_tobepreconn' ) ) {
147
-            add_filter( 'wp_resource_hints', array( $this, 'filter_preconnect' ), 10, 2 );
146
+        if (!empty($options['autoptimize_extra_text_field_2']) || has_filter('autoptimize_extra_filter_tobepreconn')) {
147
+            add_filter('wp_resource_hints', array($this, 'filter_preconnect'), 10, 2);
148 148
         }
149 149
 
150 150
         // Optimize Images!
151
-        autoptimizeImages::instance()->set_options( $options )->run();
151
+        autoptimizeImages::instance()->set_options($options)->run();
152 152
     }
153 153
 
154
-    public function filter_remove_emoji_dns_prefetch( $urls, $relation_type )
154
+    public function filter_remove_emoji_dns_prefetch($urls, $relation_type)
155 155
     {
156
-        $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/' );
156
+        $emoji_svg_url = apply_filters('emoji_svg_url', 'https://s.w.org/images/core/emoji/');
157 157
 
158
-        return $this->filter_remove_dns_prefetch( $urls, $relation_type, $emoji_svg_url );
158
+        return $this->filter_remove_dns_prefetch($urls, $relation_type, $emoji_svg_url);
159 159
     }
160 160
 
161
-    public function filter_remove_gfonts_dnsprefetch( $urls, $relation_type )
161
+    public function filter_remove_gfonts_dnsprefetch($urls, $relation_type)
162 162
     {
163
-        return $this->filter_remove_dns_prefetch( $urls, $relation_type, 'fonts.googleapis.com' );
163
+        return $this->filter_remove_dns_prefetch($urls, $relation_type, 'fonts.googleapis.com');
164 164
     }
165 165
 
166
-    public function filter_remove_dns_prefetch( $urls, $relation_type, $url_to_remove )
166
+    public function filter_remove_dns_prefetch($urls, $relation_type, $url_to_remove)
167 167
     {
168
-        if ( 'dns-prefetch' === $relation_type ) {
168
+        if ('dns-prefetch' === $relation_type) {
169 169
             $cnt = 0;
170
-            foreach ( $urls as $url ) {
171
-                if ( false !== strpos( $url, $url_to_remove ) ) {
172
-                    unset( $urls[ $cnt ] );
170
+            foreach ($urls as $url) {
171
+                if (false !== strpos($url, $url_to_remove)) {
172
+                    unset($urls[$cnt]);
173 173
                 }
174 174
                 $cnt++;
175 175
             }
@@ -178,132 +178,132 @@  discard block
 block discarded – undo
178 178
         return $urls;
179 179
     }
180 180
 
181
-    public function filter_optimize_google_fonts( $in )
181
+    public function filter_optimize_google_fonts($in)
182 182
     {
183 183
         // Extract fonts, partly based on wp rocket's extraction code.
184
-        $markup = preg_replace( '/<!--(.*)-->/Uis', '', $in );
185
-        preg_match_all( '#<link(?:\s+(?:(?!href\s*=\s*)[^>])+)?(?:\s+href\s*=\s*([\'"])((?:https?:)?\/\/fonts\.googleapis\.com\/css(?:(?!\1).)+)\1)(?:\s+[^>]*)?>#iU', $markup, $matches );
184
+        $markup = preg_replace('/<!--(.*)-->/Uis', '', $in);
185
+        preg_match_all('#<link(?:\s+(?:(?!href\s*=\s*)[^>])+)?(?:\s+href\s*=\s*([\'"])((?:https?:)?\/\/fonts\.googleapis\.com\/css(?:(?!\1).)+)\1)(?:\s+[^>]*)?>#iU', $markup, $matches);
186 186
 
187 187
         $fonts_collection = array();
188
-        if ( ! $matches[2] ) {
188
+        if (!$matches[2]) {
189 189
             return $in;
190 190
         }
191 191
 
192 192
         // Store them in $fonts array.
193 193
         $i = 0;
194
-        foreach ( $matches[2] as $font ) {
195
-            if ( ! preg_match( '/rel=["\']dns-prefetch["\']/', $matches[0][ $i ] ) ) {
194
+        foreach ($matches[2] as $font) {
195
+            if (!preg_match('/rel=["\']dns-prefetch["\']/', $matches[0][$i])) {
196 196
                 // Get fonts name.
197
-                $font = str_replace( array( '%7C', '%7c' ), '|', $font );
198
-                $font = explode( 'family=', $font );
199
-                $font = ( isset( $font[1] ) ) ? explode( '&', $font[1] ) : array();
197
+                $font = str_replace(array('%7C', '%7c'), '|', $font);
198
+                $font = explode('family=', $font);
199
+                $font = (isset($font[1])) ? explode('&', $font[1]) : array();
200 200
                 // Add font to $fonts[$i] but make sure not to pollute with an empty family!
201
-                $_thisfont = array_values( array_filter( explode( '|', reset( $font ) ) ) );
202
-                if ( ! empty( $_thisfont ) ) {
203
-                    $fonts_collection[ $i ]['fonts'] = $_thisfont;
201
+                $_thisfont = array_values(array_filter(explode('|', reset($font))));
202
+                if (!empty($_thisfont)) {
203
+                    $fonts_collection[$i]['fonts'] = $_thisfont;
204 204
                     // And add subset if any!
205
-                    $subset = ( is_array( $font ) ) ? end( $font ) : '';
206
-                    if ( false !== strpos( $subset, 'subset=' ) ) {
207
-                        $subset                            = str_replace( array( '%2C', '%2c' ), ',', $subset );
208
-                        $subset                            = explode( 'subset=', $subset );
209
-                        $fonts_collection[ $i ]['subsets'] = explode( ',', $subset[1] );
205
+                    $subset = (is_array($font)) ? end($font) : '';
206
+                    if (false !== strpos($subset, 'subset=')) {
207
+                        $subset                            = str_replace(array('%2C', '%2c'), ',', $subset);
208
+                        $subset                            = explode('subset=', $subset);
209
+                        $fonts_collection[$i]['subsets'] = explode(',', $subset[1]);
210 210
                     }
211 211
                 }
212 212
                 // And remove Google Fonts.
213
-                $in = str_replace( $matches[0][ $i ], '', $in );
213
+                $in = str_replace($matches[0][$i], '', $in);
214 214
             }
215 215
             $i++;
216 216
         }
217 217
 
218 218
         $options      = $this->options;
219 219
         $fonts_markup = '';
220
-        if ( '2' === $options['autoptimize_extra_radio_field_4'] ) {
220
+        if ('2' === $options['autoptimize_extra_radio_field_4']) {
221 221
             // Remove Google Fonts.
222
-            unset( $fonts_collection );
222
+            unset($fonts_collection);
223 223
             return $in;
224
-        } elseif ( '3' === $options['autoptimize_extra_radio_field_4'] || '5' === $options['autoptimize_extra_radio_field_4'] ) {
224
+        } elseif ('3' === $options['autoptimize_extra_radio_field_4'] || '5' === $options['autoptimize_extra_radio_field_4']) {
225 225
             // Aggregate & link!
226 226
             $fonts_string  = '';
227 227
             $subset_string = '';
228
-            foreach ( $fonts_collection as $font ) {
229
-                $fonts_string .= '|' . trim( implode( '|', $font['fonts'] ), '|' );
230
-                if ( ! empty( $font['subsets'] ) ) {
231
-                    $subset_string .= ',' . trim( implode( ',', $font['subsets'] ), ',' );
228
+            foreach ($fonts_collection as $font) {
229
+                $fonts_string .= '|'.trim(implode('|', $font['fonts']), '|');
230
+                if (!empty($font['subsets'])) {
231
+                    $subset_string .= ','.trim(implode(',', $font['subsets']), ',');
232 232
                 }
233 233
             }
234 234
 
235
-            if ( ! empty( $subset_string ) ) {
236
-                $subset_string = str_replace( ',', '%2C', ltrim( $subset_string, ',' ) );
237
-                $fonts_string  = $fonts_string . '&#038;subset=' . $subset_string;
235
+            if (!empty($subset_string)) {
236
+                $subset_string = str_replace(',', '%2C', ltrim($subset_string, ','));
237
+                $fonts_string  = $fonts_string.'&#038;subset='.$subset_string;
238 238
             }
239 239
 
240
-            $fonts_string = str_replace( '|', '%7C', ltrim( $fonts_string, '|' ) );
240
+            $fonts_string = str_replace('|', '%7C', ltrim($fonts_string, '|'));
241 241
 
242
-            if ( ! empty( $fonts_string ) ) {
243
-                if ( '5' === $options['autoptimize_extra_radio_field_4'] ) {
244
-                    $rel_string = 'rel="preload" as="style" onload="' . autoptimizeConfig::get_ao_css_preload_onload() . '"';
242
+            if (!empty($fonts_string)) {
243
+                if ('5' === $options['autoptimize_extra_radio_field_4']) {
244
+                    $rel_string = 'rel="preload" as="style" onload="'.autoptimizeConfig::get_ao_css_preload_onload().'"';
245 245
                 } else {
246 246
                     $rel_string = 'rel="stylesheet"';
247 247
                 }
248
-                $fonts_markup = '<link ' . $rel_string . ' id="ao_optimized_gfonts" href="https://fonts.googleapis.com/css?family=' . $fonts_string . '" />';
248
+                $fonts_markup = '<link '.$rel_string.' id="ao_optimized_gfonts" href="https://fonts.googleapis.com/css?family='.$fonts_string.'" />';
249 249
             }
250
-        } elseif ( '4' === $options['autoptimize_extra_radio_field_4'] ) {
250
+        } elseif ('4' === $options['autoptimize_extra_radio_field_4']) {
251 251
             // Aggregate & load async (webfont.js impl.)!
252 252
             $fonts_array = array();
253
-            foreach ( $fonts_collection as $_fonts ) {
254
-                if ( ! empty( $_fonts['subsets'] ) ) {
255
-                    $_subset = implode( ',', $_fonts['subsets'] );
256
-                    foreach ( $_fonts['fonts'] as $key => $_one_font ) {
257
-                        $_one_font               = $_one_font . ':' . $_subset;
258
-                        $_fonts['fonts'][ $key ] = $_one_font;
253
+            foreach ($fonts_collection as $_fonts) {
254
+                if (!empty($_fonts['subsets'])) {
255
+                    $_subset = implode(',', $_fonts['subsets']);
256
+                    foreach ($_fonts['fonts'] as $key => $_one_font) {
257
+                        $_one_font               = $_one_font.':'.$_subset;
258
+                        $_fonts['fonts'][$key] = $_one_font;
259 259
                     }
260 260
                 }
261
-                $fonts_array = array_merge( $fonts_array, $_fonts['fonts'] );
261
+                $fonts_array = array_merge($fonts_array, $_fonts['fonts']);
262 262
             }
263 263
 
264
-            $fonts_array          = array_map( 'urldecode', $fonts_array );
265
-            $fonts_markup         = '<script data-cfasync="false" id="ao_optimized_gfonts_config" type="text/javascript">WebFontConfig={google:{families:' . wp_json_encode( $fonts_array ) . ' },classes:false, events:false, timeout:1500};</script>';
264
+            $fonts_array          = array_map('urldecode', $fonts_array);
265
+            $fonts_markup         = '<script data-cfasync="false" id="ao_optimized_gfonts_config" type="text/javascript">WebFontConfig={google:{families:'.wp_json_encode($fonts_array).' },classes:false, events:false, timeout:1500};</script>';
266 266
             $fonts_library_markup = '<script data-cfasync="false" id="ao_optimized_gfonts_webfontloader" type="text/javascript">(function() {var wf = document.createElement(\'script\');wf.src=\'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js\';wf.type=\'text/javascript\';wf.async=\'true\';var s=document.getElementsByTagName(\'script\')[0];s.parentNode.insertBefore(wf, s);})();</script>';
267
-            $in                   = substr_replace( $in, $fonts_library_markup . '</head>', strpos( $in, '</head>' ), strlen( '</head>' ) );
267
+            $in                   = substr_replace($in, $fonts_library_markup.'</head>', strpos($in, '</head>'), strlen('</head>'));
268 268
         }
269 269
 
270 270
         // Replace back in markup.
271
-        $injectpoint = apply_filters( 'autoptimize_filter_extra_gfont_injectpoint', '<link' );
272
-        $out         = substr_replace( $in, $fonts_markup . $inject_point, strpos( $in, $inject_point ), strlen( $inject_point ) );
273
-        unset( $fonts_collection );
271
+        $injectpoint = apply_filters('autoptimize_filter_extra_gfont_injectpoint', '<link');
272
+        $out         = substr_replace($in, $fonts_markup.$inject_point, strpos($in, $inject_point), strlen($inject_point));
273
+        unset($fonts_collection);
274 274
 
275 275
         // and insert preload polyfill if "link preload" and if the polyfill isn't there yet (courtesy of inline&defer).
276 276
         $preload_polyfill = autoptimizeConfig::get_ao_css_preload_polyfill();
277
-        if ( '5' === $options['autoptimize_extra_radio_field_4'] && strpos( $out, $preload_polyfill ) === false ) {
278
-            $out = str_replace( '</body>', $preload_polyfill . '</body>', $out );
277
+        if ('5' === $options['autoptimize_extra_radio_field_4'] && strpos($out, $preload_polyfill) === false) {
278
+            $out = str_replace('</body>', $preload_polyfill.'</body>', $out);
279 279
         }
280 280
         return $out;
281 281
     }
282 282
 
283
-    public function filter_preconnect( $hints, $relation_type )
283
+    public function filter_preconnect($hints, $relation_type)
284 284
     {
285 285
         $options = $this->options;
286 286
 
287 287
         // Get settings and store in array.
288
-        $preconns = array_filter( array_map( 'trim', explode( ',', $options['autoptimize_extra_text_field_2'] ) ) );
289
-        $preconns = apply_filters( 'autoptimize_extra_filter_tobepreconn', $preconns );
288
+        $preconns = array_filter(array_map('trim', explode(',', $options['autoptimize_extra_text_field_2'])));
289
+        $preconns = apply_filters('autoptimize_extra_filter_tobepreconn', $preconns);
290 290
 
291 291
         // Walk array, extract domain and add to new array with crossorigin attribute.
292
-        foreach ( $preconns as $preconn ) {
293
-            $parsed = parse_url( $preconn );
292
+        foreach ($preconns as $preconn) {
293
+            $parsed = parse_url($preconn);
294 294
 
295
-            if ( is_array( $parsed ) && empty( $parsed['scheme'] ) ) {
296
-                $domain = '//' . $parsed['host'];
297
-            } elseif ( is_array( $parsed ) ) {
298
-                $domain = $parsed['scheme'] . '://' . $parsed['host'];
295
+            if (is_array($parsed) && empty($parsed['scheme'])) {
296
+                $domain = '//'.$parsed['host'];
297
+            } elseif (is_array($parsed)) {
298
+                $domain = $parsed['scheme'].'://'.$parsed['host'];
299 299
             }
300 300
 
301
-            if ( ! empty( $domain ) ) {
302
-                $hint = array( 'href' => $domain );
301
+            if (!empty($domain)) {
302
+                $hint = array('href' => $domain);
303 303
                 // Fonts don't get preconnected unless crossorigin flag is set, non-fonts don't get preconnected if origin flag is set
304 304
                 // so hardcode fonts.gstatic.com to come with crossorigin and have filter to add other domains if needed.
305
-                $crossorigins = apply_filters( 'autoptimize_extra_filter_preconn_crossorigin', array( 'https://fonts.gstatic.com' ) );
306
-                if ( in_array( $domain, $crossorigins ) ) {
305
+                $crossorigins = apply_filters('autoptimize_extra_filter_preconn_crossorigin', array('https://fonts.gstatic.com'));
306
+                if (in_array($domain, $crossorigins)) {
307 307
                     $hint['crossorigin'] = 'anonymous';
308 308
                 }
309 309
                 $new_hints[] = $hint;
@@ -311,21 +311,21 @@  discard block
 block discarded – undo
311 311
         }
312 312
 
313 313
         // Merge in WP's preconnect hints.
314
-        if ( 'preconnect' === $relation_type && ! empty( $new_hints ) ) {
315
-            $hints = array_merge( $hints, $new_hints );
314
+        if ('preconnect' === $relation_type && !empty($new_hints)) {
315
+            $hints = array_merge($hints, $new_hints);
316 316
         }
317 317
 
318 318
         return $hints;
319 319
     }
320 320
 
321
-    public function filter_preconnect_google_fonts( $in )
321
+    public function filter_preconnect_google_fonts($in)
322 322
     {
323
-        if ( '2' !== $this->options['autoptimize_extra_radio_field_4'] ) {
323
+        if ('2' !== $this->options['autoptimize_extra_radio_field_4']) {
324 324
             // Preconnect to fonts.gstatic.com unless we remove gfonts.
325 325
             $in[] = 'https://fonts.gstatic.com';
326 326
         }
327 327
 
328
-        if ( '4' === $this->options['autoptimize_extra_radio_field_4'] ) {
328
+        if ('4' === $this->options['autoptimize_extra_radio_field_4']) {
329 329
             // Preconnect even more hosts for webfont.js!
330 330
             $in[] = 'https://ajax.googleapis.com';
331 331
             $in[] = 'https://fonts.googleapis.com';
@@ -334,7 +334,7 @@  discard block
 block discarded – undo
334 334
         return $in;
335 335
     }
336 336
 
337
-    public function filter_optimize_images( $in )
337
+    public function filter_optimize_images($in)
338 338
     {
339 339
         /*
340 340
          * potential future functional improvements:
@@ -347,26 +347,26 @@  discard block
 block discarded – undo
347 347
         $to_replace      = array();
348 348
 
349 349
         // extract img tags.
350
-        if ( preg_match_all( '#<img[^>]*src[^>]*>#Usmi', $in, $matches ) ) {
351
-            foreach ( $matches[0] as $tag ) {
350
+        if (preg_match_all('#<img[^>]*src[^>]*>#Usmi', $in, $matches)) {
351
+            foreach ($matches[0] as $tag) {
352 352
                 $orig_tag = $tag;
353 353
                 $imgopt_w = '';
354 354
                 $imgopt_h = '';
355 355
 
356 356
                 // first do (data-)srcsets.
357
-                if ( preg_match_all( '#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER ) ) {
358
-                    foreach ( $allsrcsets as $srcset ) {
357
+                if (preg_match_all('#srcset=("|\')(.*)("|\')#Usmi', $tag, $allsrcsets, PREG_SET_ORDER)) {
358
+                    foreach ($allsrcsets as $srcset) {
359 359
                         $srcset  = $srcset[2];
360
-                        $srcsets = explode( ',', $srcset );
361
-                        foreach ( $srcsets as $indiv_srcset ) {
362
-                            $indiv_srcset_parts = explode( ' ', trim( $indiv_srcset ) );
363
-                            if ( $indiv_srcset_parts[1] && rtrim( $indiv_srcset_parts[1], 'w' ) !== $indiv_srcset_parts[1] ) {
364
-                                $imgopt_w = rtrim( $indiv_srcset_parts[1], 'w' );
360
+                        $srcsets = explode(',', $srcset);
361
+                        foreach ($srcsets as $indiv_srcset) {
362
+                            $indiv_srcset_parts = explode(' ', trim($indiv_srcset));
363
+                            if ($indiv_srcset_parts[1] && rtrim($indiv_srcset_parts[1], 'w') !== $indiv_srcset_parts[1]) {
364
+                                $imgopt_w = rtrim($indiv_srcset_parts[1], 'w');
365 365
                             }
366
-                            if ( $this->can_optimize_image( $indiv_srcset_parts[0] ) ) {
367
-                                $imgopt_url              = $this->build_imgopt_url( $indiv_srcset_parts[0], $imgopt_w, '' );
368
-                                $tag                     = str_replace( $indiv_srcset_parts[0], $imgopt_url, $tag );
369
-                                $to_replace[ $orig_tag ] = $tag;
366
+                            if ($this->can_optimize_image($indiv_srcset_parts[0])) {
367
+                                $imgopt_url              = $this->build_imgopt_url($indiv_srcset_parts[0], $imgopt_w, '');
368
+                                $tag                     = str_replace($indiv_srcset_parts[0], $imgopt_url, $tag);
369
+                                $to_replace[$orig_tag] = $tag;
370 370
                             }
371 371
                         }
372 372
                     }
@@ -376,35 +376,35 @@  discard block
 block discarded – undo
376 376
                 // first reset and then get width and height and add to $imgopt_size.
377 377
                 $imgopt_w = '';
378 378
                 $imgopt_h = '';
379
-                if ( preg_match( '#width=("|\')(.*)("|\')#Usmi', $tag, $width ) ) {
379
+                if (preg_match('#width=("|\')(.*)("|\')#Usmi', $tag, $width)) {
380 380
                     $imgopt_w = $width[2];
381 381
                 }
382
-                if ( preg_match( '#height=("|\')(.*)("|\')#Usmi', $tag, $height ) ) {
382
+                if (preg_match('#height=("|\')(.*)("|\')#Usmi', $tag, $height)) {
383 383
                     $imgopt_h = $height[2];
384 384
                 }
385 385
 
386 386
                 // then start replacing images src.
387
-                if ( preg_match_all( '#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER ) ) {
388
-                    foreach ( $urls as $url ) {
387
+                if (preg_match_all('#src=(?:"|\')(?!data)(.*)(?:"|\')#Usmi', $tag, $urls, PREG_SET_ORDER)) {
388
+                    foreach ($urls as $url) {
389 389
                         $full_src_orig = $url[0];
390 390
                         $url           = $url[1];
391
-                        if ( $this->can_optimize_image( $url ) ) {
392
-                            $imgopt_url              = $this->build_imgopt_url( $url, $imgopt_w, $imgopt_h );
393
-                            $full_imgopt_src         = str_replace( $url, $imgopt_url, $full_src_orig );
394
-                            $tag                     = str_replace( $full_src_orig, $full_imgopt_src, $tag );
395
-                            $to_replace[ $orig_tag ] = $tag;
391
+                        if ($this->can_optimize_image($url)) {
392
+                            $imgopt_url              = $this->build_imgopt_url($url, $imgopt_w, $imgopt_h);
393
+                            $full_imgopt_src         = str_replace($url, $imgopt_url, $full_src_orig);
394
+                            $tag                     = str_replace($full_src_orig, $full_imgopt_src, $tag);
395
+                            $to_replace[$orig_tag] = $tag;
396 396
                         }
397 397
                     }
398 398
                 }
399 399
             }
400 400
         }
401
-        $out = str_replace( array_keys( $to_replace ), array_values( $to_replace ), $in );
401
+        $out = str_replace(array_keys($to_replace), array_values($to_replace), $in);
402 402
 
403 403
         // img thumbnails in e.g. woocommerce.
404
-        if ( strpos( $out, 'data-thumb' ) !== false && apply_filters( 'autoptimize_filter_extra_imgopt_datathumbs', true ) ) {
404
+        if (strpos($out, 'data-thumb') !== false && apply_filters('autoptimize_filter_extra_imgopt_datathumbs', true)) {
405 405
             $out = preg_replace_callback(
406 406
                 '/\<div(?:[^>]?)\sdata-thumb\=(?:\"|\')(.+?)(?:\"|\')(?:[^>]*)?\>/s',
407
-                array( $this, 'replace_data_thumbs' ),
407
+                array($this, 'replace_data_thumbs'),
408 408
                 $out
409 409
             );
410 410
         }
@@ -412,13 +412,13 @@  discard block
 block discarded – undo
412 412
         return $out;
413 413
     }
414 414
 
415
-    public function filter_optimize_css_images( $in )
415
+    public function filter_optimize_css_images($in)
416 416
     {
417 417
         $imgopt_base_url = $this->get_imgopt_base_url();
418
-        $in              = $this->normalize_img_urls( $in );
418
+        $in              = $this->normalize_img_urls($in);
419 419
 
420
-        if ( $this->can_optimize_image( $in ) ) {
421
-            return $this->build_imgopt_url( $in, '', '' );
420
+        if ($this->can_optimize_image($in)) {
421
+            return $this->build_imgopt_url($in, '', '');
422 422
         } else {
423 423
             return $in;
424 424
         }
@@ -428,47 +428,47 @@  discard block
 block discarded – undo
428 428
     {
429 429
         static $imgopt_base_url = null;
430 430
 
431
-        if ( is_null( $imgopt_base_url ) ) {
431
+        if (is_null($imgopt_base_url)) {
432 432
             $imgopt_host     = $this->get_imgopt_host();
433 433
             $quality         = $this->get_img_quality_string();
434
-            $ret_val         = apply_filters( 'autoptimize_filter_extra_imgopt_wait', 'ret_img' ); // values: ret_wait, ret_img, ret_json, ret_blank.
435
-            $imgopt_base_url = $imgopt_host . 'client/' . $quality . ',' . $ret_val;
436
-            $imgopt_base_url = apply_filters( 'autoptimize_filter_extra_imgopt_base_url', $imgopt_base_url );
434
+            $ret_val         = apply_filters('autoptimize_filter_extra_imgopt_wait', 'ret_img'); // values: ret_wait, ret_img, ret_json, ret_blank.
435
+            $imgopt_base_url = $imgopt_host.'client/'.$quality.','.$ret_val;
436
+            $imgopt_base_url = apply_filters('autoptimize_filter_extra_imgopt_base_url', $imgopt_base_url);
437 437
         }
438 438
 
439 439
         return $imgopt_base_url;
440 440
     }
441 441
 
442
-    private function can_optimize_image( $url )
442
+    private function can_optimize_image($url)
443 443
     {
444 444
         static $cdn_url      = null;
445 445
         static $nopti_images = null;
446 446
 
447
-        if ( is_null( $cdn_url ) ) {
448
-            $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', get_option( 'autoptimize_cdn_url', '' ) );
447
+        if (is_null($cdn_url)) {
448
+            $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', get_option('autoptimize_cdn_url', ''));
449 449
         }
450 450
 
451
-        if ( is_null( $nopti_images ) ) {
452
-            $nopti_images = apply_filters( 'autoptimize_filter_extra_imgopt_noptimize', '' );
451
+        if (is_null($nopti_images)) {
452
+            $nopti_images = apply_filters('autoptimize_filter_extra_imgopt_noptimize', '');
453 453
         }
454 454
 
455 455
         $imgopt_base_url = $this->get_imgopt_base_url();
456 456
         $site_host       = AUTOPTIMIZE_SITE_DOMAIN;
457
-        $url_parsed      = parse_url( $url );
457
+        $url_parsed      = parse_url($url);
458 458
 
459
-        if ( $url_parsed['host'] !== $site_host && empty( $cdn_url ) ) {
459
+        if ($url_parsed['host'] !== $site_host && empty($cdn_url)) {
460 460
             return false;
461
-        } elseif ( ! empty( $cdn_url ) && strpos( $url, $cdn_url ) === false && $url_parsed['host'] !== $site_host ) {
461
+        } elseif (!empty($cdn_url) && strpos($url, $cdn_url) === false && $url_parsed['host'] !== $site_host) {
462 462
             return false;
463
-        } elseif ( strpos( $url, '.php' ) !== false ) {
463
+        } elseif (strpos($url, '.php') !== false) {
464 464
             return false;
465
-        } elseif ( str_ireplace( array( '.png', '.gif', '.jpg', '.jpeg' ), '', $url_parsed['path'] ) === $url_parsed['path'] ) {
465
+        } elseif (str_ireplace(array('.png', '.gif', '.jpg', '.jpeg'), '', $url_parsed['path']) === $url_parsed['path']) {
466 466
             // fixme: better check against end of string.
467 467
             return false;
468
-        } elseif ( ! empty( $nopti_images ) ) {
469
-            $nopti_images_array = array_filter( array_map( 'trim', explode( ',', $nopti_images ) ) );
470
-            foreach ( $nopti_images_array as $nopti_image ) {
471
-                if ( strpos( $url, $nopti_image ) !== false ) {
468
+        } elseif (!empty($nopti_images)) {
469
+            $nopti_images_array = array_filter(array_map('trim', explode(',', $nopti_images)));
470
+            foreach ($nopti_images_array as $nopti_image) {
471
+                if (strpos($url, $nopti_image) !== false) {
472 472
                     return false;
473 473
                 }
474 474
             }
@@ -476,72 +476,72 @@  discard block
 block discarded – undo
476 476
         return true;
477 477
     }
478 478
 
479
-    private function build_imgopt_url( $orig_url, $width = 0, $height = 0 )
479
+    private function build_imgopt_url($orig_url, $width = 0, $height = 0)
480 480
     {
481
-        $filtered_url = apply_filters( 'autoptimize_filter_extra_imgopt_build_url', $orig_url, $width, $height );
481
+        $filtered_url = apply_filters('autoptimize_filter_extra_imgopt_build_url', $orig_url, $width, $height);
482 482
 
483
-        if ( $filtered_url !== $orig_url ) {
483
+        if ($filtered_url !== $orig_url) {
484 484
             return $filtered_url;
485 485
         }
486 486
 
487
-        $orig_url        = $this->normalize_img_urls( $orig_url );
487
+        $orig_url        = $this->normalize_img_urls($orig_url);
488 488
         $imgopt_base_url = $this->get_imgopt_base_url();
489 489
         $imgopt_size     = '';
490 490
 
491
-        if ( $width && 0 !== $width ) {
492
-            $imgopt_size = ',w_' . $width;
491
+        if ($width && 0 !== $width) {
492
+            $imgopt_size = ',w_'.$width;
493 493
         }
494 494
 
495
-        if ( $height && 0 !== $height ) {
496
-            $imgopt_size .= ',h_' . $height;
495
+        if ($height && 0 !== $height) {
496
+            $imgopt_size .= ',h_'.$height;
497 497
         }
498 498
 
499
-        $url = $imgopt_base_url . $imgopt_size . '/' . $orig_url;
499
+        $url = $imgopt_base_url.$imgopt_size.'/'.$orig_url;
500 500
 
501 501
         return $url;
502 502
     }
503 503
 
504
-    public function replace_data_thumbs( $matches )
504
+    public function replace_data_thumbs($matches)
505 505
     {
506
-        if ( $this->can_optimize_image( $matches[1] ) ) {
507
-            return str_replace( $matches[1], $this->build_imgopt_url( $matches[1], 150, 150 ), $matches[0] );
506
+        if ($this->can_optimize_image($matches[1])) {
507
+            return str_replace($matches[1], $this->build_imgopt_url($matches[1], 150, 150), $matches[0]);
508 508
         } else {
509 509
             return $matches[0];
510 510
         }
511 511
     }
512 512
 
513
-    public function filter_preconnect_imgopt_url( $in )
513
+    public function filter_preconnect_imgopt_url($in)
514 514
     {
515
-        $imgopt_url_array = parse_url( $this->get_imgopt_base_url() );
516
-        $in[]             = $imgopt_url_array['scheme'] . '://' . $imgopt_url_array['host'];
515
+        $imgopt_url_array = parse_url($this->get_imgopt_base_url());
516
+        $in[]             = $imgopt_url_array['scheme'].'://'.$imgopt_url_array['host'];
517 517
 
518 518
         return $in;
519 519
     }
520 520
 
521
-    private function normalize_img_urls( $in )
521
+    private function normalize_img_urls($in)
522 522
     {
523
-        $parsed_site_url = parse_url( site_url() );
523
+        $parsed_site_url = parse_url(site_url());
524 524
 
525
-        if ( strpos( $in, 'http' ) !== 0 && strpos( $in, '//' ) === 0 ) {
526
-            $in = $parsed_site_url['scheme'] . ':' . $in;
527
-        } elseif ( strpos( $in, '/' ) === 0 ) {
528
-            $in = $parsed_site_url['scheme'] . '://' . $parsed_site_url['host'] . $in;
525
+        if (strpos($in, 'http') !== 0 && strpos($in, '//') === 0) {
526
+            $in = $parsed_site_url['scheme'].':'.$in;
527
+        } elseif (strpos($in, '/') === 0) {
528
+            $in = $parsed_site_url['scheme'].'://'.$parsed_site_url['host'].$in;
529 529
         }
530 530
 
531
-        return apply_filters( 'autoptimize_filter_extra_imgopt_normalized_url', $in );
531
+        return apply_filters('autoptimize_filter_extra_imgopt_normalized_url', $in);
532 532
     }
533 533
 
534 534
     private function get_img_quality_array()
535 535
     {
536 536
         static $img_quality_array = null;
537 537
 
538
-        if ( is_null( $img_quality_array ) ) {
538
+        if (is_null($img_quality_array)) {
539 539
             $img_quality_array = array(
540 540
                 '1' => 'lossy',
541 541
                 '2' => 'glossy',
542 542
                 '3' => 'lossless',
543 543
             );
544
-            $img_quality_array = apply_filters( 'autoptimize_filter_extra_imgopt_quality_array', $img_quality_array );
544
+            $img_quality_array = apply_filters('autoptimize_filter_extra_imgopt_quality_array', $img_quality_array);
545 545
         }
546 546
 
547 547
         return $img_quality_array;
@@ -551,10 +551,10 @@  discard block
 block discarded – undo
551 551
     {
552 552
         static $_img_q = null;
553 553
 
554
-        if ( is_null( $_img_q ) ) {
554
+        if (is_null($_img_q)) {
555 555
             $_setting = $this->options['autoptimize_extra_select_field_6'];
556 556
 
557
-            if ( ! $_setting || empty( $_setting ) || ( '1' !== $_setting && '3' !== $_setting ) ) {
557
+            if (!$_setting || empty($_setting) || ('1' !== $_setting && '3' !== $_setting)) {
558 558
                 // default image opt. value is 2 ("glossy").
559 559
                 $_img_q = '2';
560 560
             } else {
@@ -569,10 +569,10 @@  discard block
 block discarded – undo
569 569
     {
570 570
         static $_img_q_string = null;
571 571
 
572
-        if ( is_null( $_img_q_string ) ) {
572
+        if (is_null($_img_q_string)) {
573 573
             $_quality_array = $this->get_img_quality_array();
574 574
             $_setting       = $this->get_img_quality_setting();
575
-            $_img_q_string  = apply_filters( 'autoptimize_filter_extra_imgopt_quality', 'q_' . $_quality_array[ $_setting ] );
575
+            $_img_q_string  = apply_filters('autoptimize_filter_extra_imgopt_quality', 'q_'.$_quality_array[$_setting]);
576 576
         }
577 577
 
578 578
         return $_img_q_string;
@@ -587,26 +587,26 @@  discard block
 block discarded – undo
587 587
 
588 588
     public function query_img_provider_stats()
589 589
     {
590
-        if ( ! empty( $this->options['autoptimize_extra_checkbox_field_5'] ) ) {
590
+        if (!empty($this->options['autoptimize_extra_checkbox_field_5'])) {
591 591
             $_img_provider_stat_url = '';
592
-            $_img_provider_endpoint = $this->get_imgopt_host() . 'read-domain/';
592
+            $_img_provider_endpoint = $this->get_imgopt_host().'read-domain/';
593 593
             $_site_host             = AUTOPTIMIZE_SITE_DOMAIN;
594 594
 
595 595
             // make sure parse_url result makes sense, keeping $_img_provider_stat_url empty if not.
596
-            if ( $_site_host && ! empty( $_site_host ) ) {
597
-                $_img_provider_stat_url = $_img_provider_endpoint . $_site_host;
596
+            if ($_site_host && !empty($_site_host)) {
597
+                $_img_provider_stat_url = $_img_provider_endpoint.$_site_host;
598 598
             }
599 599
 
600
-            $_img_provider_stat_url = apply_filters( 'autoptimize_filter_extra_imgopt_stat_url', $_img_provider_stat_url );
600
+            $_img_provider_stat_url = apply_filters('autoptimize_filter_extra_imgopt_stat_url', $_img_provider_stat_url);
601 601
 
602 602
             // only do the remote call if $_img_provider_stat_url is not empty to make sure no parse_url weirdness results in useless calls.
603
-            if ( ! empty( $_img_provider_stat_url ) ) {
604
-                $_img_stat_resp = wp_remote_get( $_img_provider_stat_url );
605
-                if ( ! is_wp_error( $_img_stat_resp ) ) {
606
-                    if ( '200' == wp_remote_retrieve_response_code( $_img_stat_resp ) ) {
607
-                        $_img_provider_stat              = json_decode( wp_remote_retrieve_body( $_img_stat_resp ), true );
603
+            if (!empty($_img_provider_stat_url)) {
604
+                $_img_stat_resp = wp_remote_get($_img_provider_stat_url);
605
+                if (!is_wp_error($_img_stat_resp)) {
606
+                    if ('200' == wp_remote_retrieve_response_code($_img_stat_resp)) {
607
+                        $_img_provider_stat              = json_decode(wp_remote_retrieve_body($_img_stat_resp), true);
608 608
                         $_img_provider_stat['timestamp'] = time();
609
-                        update_option( 'autoptimize_imgopt_provider_stat', $_img_provider_stat );
609
+                        update_option('autoptimize_imgopt_provider_stat', $_img_provider_stat);
610 610
                     }
611 611
                 }
612 612
             }
@@ -617,14 +617,14 @@  discard block
 block discarded – undo
617 617
     {
618 618
         static $launch_status = null;
619 619
 
620
-        if ( is_null( $launch_status ) ) {
620
+        if (is_null($launch_status)) {
621 621
             $avail_imgopt = $this->options['availabilities']['extra_imgopt'];
622
-            $magic_number = intval( substr( md5( parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) ), 0, 3 ), 16 );
623
-            $has_launched = get_option( 'autoptimize_imgopt_launched', '' );
624
-            if ( $has_launched || ( array_key_exists( 'launch-threshold', $avail_imgopt ) && $magic_number < $avail_imgopt['launch-threshold'] ) ) {
622
+            $magic_number = intval(substr(md5(parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST)), 0, 3), 16);
623
+            $has_launched = get_option('autoptimize_imgopt_launched', '');
624
+            if ($has_launched || (array_key_exists('launch-threshold', $avail_imgopt) && $magic_number < $avail_imgopt['launch-threshold'])) {
625 625
                 $launch_status = true;
626
-                if ( ! $has_launched ) {
627
-                    update_option( 'autoptimize_imgopt_launched', 'on' );
626
+                if (!$has_launched) {
627
+                    update_option('autoptimize_imgopt_launched', 'on');
628 628
                 }
629 629
             } else {
630 630
                 $launch_status = false;
@@ -645,10 +645,10 @@  discard block
 block discarded – undo
645 645
     {
646 646
         static $imgopt_host = null;
647 647
 
648
-        if ( is_null( $imgopt_host ) ) {
648
+        if (is_null($imgopt_host)) {
649 649
             $avail_imgopt = $this->options['availabilities']['extra_imgopt'];
650
-            if ( ! empty( $avail_imgopt ) && array_key_exists( 'hosts', $avail_imgopt ) && is_array( $avail_imgopt['hosts'] ) ) {
651
-                $imgopt_host = array_rand( array_flip( $avail_imgopt['hosts'] ) );
650
+            if (!empty($avail_imgopt) && array_key_exists('hosts', $avail_imgopt) && is_array($avail_imgopt['hosts'])) {
651
+                $imgopt_host = array_rand(array_flip($avail_imgopt['hosts']));
652 652
             } else {
653 653
                 $imgopt_host = 'https://cdn.shortpixel.ai/';
654 654
             }
@@ -666,37 +666,37 @@  discard block
 block discarded – undo
666 666
 
667 667
     public function get_imgopt_status_notice() {
668 668
         $_extra_options = $this->options;
669
-        if ( ! empty( $_extra_options ) && is_array( $_extra_options ) && array_key_exists( 'autoptimize_extra_checkbox_field_5', $_extra_options ) && ! empty( $_extra_options['autoptimize_extra_checkbox_field_5'] ) ) {
669
+        if (!empty($_extra_options) && is_array($_extra_options) && array_key_exists('autoptimize_extra_checkbox_field_5', $_extra_options) && !empty($_extra_options['autoptimize_extra_checkbox_field_5'])) {
670 670
             $_imgopt_notice = '';
671
-            $_stat          = get_option( 'autoptimize_imgopt_provider_stat', '' );
671
+            $_stat          = get_option('autoptimize_imgopt_provider_stat', '');
672 672
             $_site_host     = AUTOPTIMIZE_SITE_DOMAIN;
673
-            $_imgopt_upsell = 'https://shortpixel.com/aospai/af/GWRGFLW109483/' . $_site_host;
673
+            $_imgopt_upsell = 'https://shortpixel.com/aospai/af/GWRGFLW109483/'.$_site_host;
674 674
 
675
-            if ( is_array( $_stat ) ) {
676
-                if ( 1 == $_stat['Status'] ) {
675
+            if (is_array($_stat)) {
676
+                if (1 == $_stat['Status']) {
677 677
                     // translators: "add more credits" will appear in a "a href".
678
-                    $_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>' );
678
+                    $_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>');
679 679
                 } elseif ( -1 == $_stat['Status'] || -2 == $_stat['Status'] ) {
680 680
                     // translators: "add more credits" will appear in a "a href".
681
-                    $_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>' );
682
-                    $_imgopt_stats_refresh_url = add_query_arg( array(
681
+                    $_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>');
682
+                    $_imgopt_stats_refresh_url = add_query_arg(array(
683 683
                         'page'                => 'autoptimize_extra',
684 684
                         'refreshImgProvStats' => '1',
685
-                    ), admin_url( 'options-general.php' ) );
686
-                    if ( $_stat && array_key_exists( 'timestamp', $_stat ) && ! empty( $_stat['timestamp'] ) ) {
687
-                        $_imgopt_stats_last_run = __( 'based on status at ', 'autoptimize' ) . date_i18n( get_option( 'time_format' ), $_stat['timestamp'] );
685
+                    ), admin_url('options-general.php'));
686
+                    if ($_stat && array_key_exists('timestamp', $_stat) && !empty($_stat['timestamp'])) {
687
+                        $_imgopt_stats_last_run = __('based on status at ', 'autoptimize').date_i18n(get_option('time_format'), $_stat['timestamp']);
688 688
                     } else {
689
-                        $_imgopt_stats_last_run = __( 'based on previously fetched data', 'autoptimize' );
689
+                        $_imgopt_stats_last_run = __('based on previously fetched data', 'autoptimize');
690 690
                     }
691
-                    $_imgopt_notice .= ' (' . $_imgopt_stats_last_run . ', ';
691
+                    $_imgopt_notice .= ' ('.$_imgopt_stats_last_run.', ';
692 692
                     // translators: "here to refresh" links to the Autoptimize Extra page and forces a refresh of the img opt stats.
693
-                    $_imgopt_notice .= sprintf( __( 'click %1$shere to refresh%2$s', 'autoptimize' ), '<a href="' . $_imgopt_stats_refresh_url . '">', '</a>).' );
693
+                    $_imgopt_notice .= sprintf(__('click %1$shere to refresh%2$s', 'autoptimize'), '<a href="'.$_imgopt_stats_refresh_url.'">', '</a>).');
694 694
                 } else {
695 695
                     $_imgopt_upsell = 'https://shortpixel.com/g/af/GWRGFLW109483';
696 696
                     // translators: "log in to check your account" will appear in a "a href".
697
-                    $_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>' );
697
+                    $_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>');
698 698
                 }
699
-                $_imgopt_notice = apply_filters( 'autoptimize_filter_imgopt_notice', $_imgopt_notice );
699
+                $_imgopt_notice = apply_filters('autoptimize_filter_imgopt_notice', $_imgopt_notice);
700 700
 
701 701
                 return array(
702 702
                     'status' => $_stat['Status'],
@@ -721,14 +721,14 @@  discard block
 block discarded – undo
721 721
             'autoptimize_extra',
722 722
             'manage_options',
723 723
             'autoptimize_extra',
724
-            array( $this, 'options_page' )
724
+            array($this, 'options_page')
725 725
         );
726
-        register_setting( 'autoptimize_extra_settings', 'autoptimize_extra_settings' );
726
+        register_setting('autoptimize_extra_settings', 'autoptimize_extra_settings');
727 727
     }
728 728
 
729
-    public function add_extra_tab( $in )
729
+    public function add_extra_tab($in)
730 730
     {
731
-        $in = array_merge( $in, array( 'autoptimize_extra' => __( 'Extra', 'autoptimize' ) ) );
731
+        $in = array_merge($in, array('autoptimize_extra' => __('Extra', 'autoptimize')));
732 732
 
733 733
         return $in;
734 734
     }
@@ -736,7 +736,7 @@  discard block
 block discarded – undo
736 736
     public function options_page()
737 737
     {
738 738
         // Check querystring for "refreshCacheChecker" and call cachechecker if so.
739
-        if ( array_key_exists( 'refreshImgProvStats', $_GET ) && 1 == $_GET['refreshImgProvStats'] ) {
739
+        if (array_key_exists('refreshImgProvStats', $_GET) && 1 == $_GET['refreshImgProvStats']) {
740 740
             $this->query_img_provider_stats();
741 741
         }
742 742
 
@@ -754,52 +754,52 @@  discard block
 block discarded – undo
754 754
         #autoptimize_extra_descr{font-size: 120%;}
755 755
     </style>
756 756
     <div class="wrap">
757
-    <h1><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?></h1>
757
+    <h1><?php _e('Autoptimize Settings', 'autoptimize'); ?></h1>
758 758
         <?php echo autoptimizeConfig::ao_admin_tabs(); ?>
759
-        <?php if ( 'on' !== get_option( 'autoptimize_js' ) && 'on' !== get_option( 'autoptimize_css' ) && 'on' !== get_option( 'autoptimize_html' ) ) { ?>
759
+        <?php if ('on' !== get_option('autoptimize_js') && 'on' !== get_option('autoptimize_css') && 'on' !== get_option('autoptimize_html')) { ?>
760 760
             <div class="notice-warning notice"><p>
761
-            <?php _e( 'Most of below Extra optimizations require at least one of HTML, JS or CSS autoptimizations being active.', 'autoptimize' ); ?>
761
+            <?php _e('Most of below Extra optimizations require at least one of HTML, JS or CSS autoptimizations being active.', 'autoptimize'); ?>
762 762
             </p></div>
763 763
         <?php } ?>
764 764
 
765
-        <?php if ( 'down' === $options['availabilities']['extra_imgopt']['status'] ) { ?>
765
+        <?php if ('down' === $options['availabilities']['extra_imgopt']['status']) { ?>
766 766
             <div class="notice-warning notice"><p>
767 767
             <?php
768 768
             // translators: "Autoptimize support forum" will appear in a "a href".
769
-            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>' );
769
+            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>');
770 770
             ?>
771 771
             </p></div>
772 772
         <?php } ?>
773 773
 
774
-        <?php if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] && ! autoptimizeImages::instance()->launch_ok() ) { ?>
774
+        <?php if ('launch' === $options['availabilities']['extra_imgopt']['status'] && !autoptimizeImages::instance()->launch_ok()) { ?>
775 775
             <div class="notice-warning notice"><p>
776
-            <?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' ); ?>
776
+            <?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'); ?>
777 777
             </p></div>
778 778
         <?php } ?>
779 779
     <form id='ao_settings_form' action='options.php' method='post'>
780
-        <?php settings_fields( 'autoptimize_extra_settings' ); ?>
781
-        <h2><?php _e( 'Extra Auto-Optimizations', 'autoptimize' ); ?></h2>
782
-        <span id='autoptimize_extra_descr'><?php _e( 'The following settings can improve your site\'s performance even more.', 'autoptimize' ); ?></span>
780
+        <?php settings_fields('autoptimize_extra_settings'); ?>
781
+        <h2><?php _e('Extra Auto-Optimizations', 'autoptimize'); ?></h2>
782
+        <span id='autoptimize_extra_descr'><?php _e('The following settings can improve your site\'s performance even more.', 'autoptimize'); ?></span>
783 783
         <table class="form-table">
784 784
             <tr>
785
-                <th scope="row"><?php _e( 'Google Fonts', 'autoptimize' ); ?></th>
785
+                <th scope="row"><?php _e('Google Fonts', 'autoptimize'); ?></th>
786 786
                 <td>
787
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="1" <?php if ( ! in_array( $gfonts, array( 2, 3, 4, 5 ) ) ) { echo 'checked'; } ?> ><?php _e( 'Leave as is', 'autoptimize' ); ?><br/>
788
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="2" <?php checked( 2, $gfonts, true ); ?> ><?php _e( 'Remove Google Fonts', 'autoptimize' ); ?><br/>
789
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="3" <?php checked( 3, $gfonts, true ); ?> ><?php _e( 'Combine and link in head (fonts load fast but are render-blocking)', 'autoptimize' ); ?><br/>
790
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="5" <?php checked( 5, $gfonts, true ); ?> ><?php _e( 'Combine and preload in head (fonts load late, but are not render-blocking)', 'autoptimize' ); ?><br/>
791
-                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="4" <?php checked( 4, $gfonts, true ); ?> ><?php _e( 'Combine and load fonts asynchronously with <a href="https://github.com/typekit/webfontloader#readme" target="_blank">webfont.js</a>', 'autoptimize' ); ?><br/>
787
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="1" <?php if (!in_array($gfonts, array(2, 3, 4, 5))) { echo 'checked'; } ?> ><?php _e('Leave as is', 'autoptimize'); ?><br/>
788
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="2" <?php checked(2, $gfonts, true); ?> ><?php _e('Remove Google Fonts', 'autoptimize'); ?><br/>
789
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="3" <?php checked(3, $gfonts, true); ?> ><?php _e('Combine and link in head (fonts load fast but are render-blocking)', 'autoptimize'); ?><br/>
790
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="5" <?php checked(5, $gfonts, true); ?> ><?php _e('Combine and preload in head (fonts load late, but are not render-blocking)', 'autoptimize'); ?><br/>
791
+                    <input type="radio" name="autoptimize_extra_settings[autoptimize_extra_radio_field_4]" value="4" <?php checked(4, $gfonts, true); ?> ><?php _e('Combine and load fonts asynchronously with <a href="https://github.com/typekit/webfontloader#readme" target="_blank">webfont.js</a>', 'autoptimize'); ?><br/>
792 792
                 </td>
793 793
             </tr>
794 794
             <tr>
795
-                <th scope="row"><?php _e( 'Optimize Images', 'autoptimize' ); ?></th>
795
+                <th scope="row"><?php _e('Optimize Images', 'autoptimize'); ?></th>
796 796
                 <td>
797
-                    <label><input id='autoptimize_imgopt_checkbox' type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_5]' <?php if ( ! empty( $options['autoptimize_extra_checkbox_field_5'] ) && '1' === $options['autoptimize_extra_checkbox_field_5'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Optimize images on the fly and serve them from a CDN.', 'autoptimize' ); ?></label>
797
+                    <label><input id='autoptimize_imgopt_checkbox' type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_5]' <?php if (!empty($options['autoptimize_extra_checkbox_field_5']) && '1' === $options['autoptimize_extra_checkbox_field_5']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Optimize images on the fly and serve them from a CDN.', 'autoptimize'); ?></label>
798 798
                     <?php
799 799
                     // show shortpixel status.
800 800
                     $_notice = autoptimizeImages::instance()->get_status_notice();
801
-                    if ( $_notice ) {
802
-                        switch ( $_notice['status'] ) {
801
+                    if ($_notice) {
802
+                        switch ($_notice['status']) {
803 803
                             case 2:
804 804
                                 $_notice_color = 'green';
805 805
                                 break;
@@ -815,28 +815,28 @@  discard block
 block discarded – undo
815 815
                             default:
816 816
                                 $_notice_color = 'green';
817 817
                         }
818
-                        echo apply_filters( 'autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:' . $_notice_color . ';">' . __( 'Shortpixel status: ', 'autoptimize' ) . '</span></strong>' . $_notice['notice'] . '</p>' );
818
+                        echo apply_filters('autoptimize_filter_imgopt_settings_status', '<p><strong><span style="color:'.$_notice_color.';">'.__('Shortpixel status: ', 'autoptimize').'</span></strong>'.$_notice['notice'].'</p>');
819 819
                     } else {
820 820
                         // translators: link points to shortpixel.
821
-                        $upsell_msg_1 = '<p>' . sprintf( __( 'Get more Google love and improve your website\'s loading speed by having the images optimized on the fly by %1$sShortPixel%2$s and then cached and served fast from a CDN.', 'autoptimize' ), '<a href="https://shortpixel.com/aospai' . $sp_url_suffix . '" target="_blank">', '</a>' );
822
-                        if ( 'launch' === $options['availabilities']['extra_imgopt']['status'] ) {
823
-                            $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' );
821
+                        $upsell_msg_1 = '<p>'.sprintf(__('Get more Google love and improve your website\'s loading speed by having the images optimized on the fly by %1$sShortPixel%2$s and then cached and served fast from a CDN.', 'autoptimize'), '<a href="https://shortpixel.com/aospai'.$sp_url_suffix.'" target="_blank">', '</a>');
822
+                        if ('launch' === $options['availabilities']['extra_imgopt']['status']) {
823
+                            $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');
824 824
                         } else {
825 825
                             // translators: link points to shortpixel.
826
-                            $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>' );
826
+                            $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>');
827 827
                         }
828
-                        echo apply_filters( 'autoptimize_extra_imgopt_settings_copy', $upsell_msg_1 . ' ' . $upsell_msg_2 . '</p>' );
828
+                        echo apply_filters('autoptimize_extra_imgopt_settings_copy', $upsell_msg_1.' '.$upsell_msg_2.'</p>');
829 829
                     }
830 830
                     // translators: link points to shortpixel FAQ.
831
-                    $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>' );
831
+                    $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>');
832 832
                     // translators: links points to shortpixel TOS & Privacy Policy.
833
-                    $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>' );
834
-                    echo apply_filters( 'autoptimize_extra_imgopt_settings_tos', '<p>' . $faqcopy . ' ' . $toscopy . '</p>' );
833
+                    $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>');
834
+                    echo apply_filters('autoptimize_extra_imgopt_settings_tos', '<p>'.$faqcopy.' '.$toscopy.'</p>');
835 835
                     ?>
836 836
                 </td>
837 837
             </tr>
838
-            <tr id='autoptimize_imgopt_quality' <?php if ( ! array_key_exists( 'autoptimize_extra_checkbox_field_5', $options ) || ( ! empty( $options['autoptimize_extra_checkbox_field_5'] ) && '1' !== $options['autoptimize_extra_checkbox_field_5'] ) ) { echo 'class="hidden"'; } ?>>
839
-                <th scope="row"><?php _e( 'Image Optimization quality', 'autoptimize' ); ?></th>
838
+            <tr id='autoptimize_imgopt_quality' <?php if (!array_key_exists('autoptimize_extra_checkbox_field_5', $options) || (!empty($options['autoptimize_extra_checkbox_field_5']) && '1' !== $options['autoptimize_extra_checkbox_field_5'])) { echo 'class="hidden"'; } ?>>
839
+                <th scope="row"><?php _e('Image Optimization quality', 'autoptimize'); ?></th>
840 840
                 <td>
841 841
                     <label>
842 842
                     <select name='autoptimize_extra_settings[autoptimize_extra_select_field_6]'>
@@ -844,12 +844,12 @@  discard block
 block discarded – undo
844 844
                         $_imgopt_array = autoptimizeImages::instance()->get_img_quality_array();
845 845
                         $_imgopt_val   = autoptimizeImages::instance()->get_img_quality_setting();
846 846
 
847
-                        foreach ( $_imgopt_array as $key => $value ) {
848
-                            echo '<option value="' . $key . '"';
849
-                            if ( $_imgopt_val == $key ) {
847
+                        foreach ($_imgopt_array as $key => $value) {
848
+                            echo '<option value="'.$key.'"';
849
+                            if ($_imgopt_val == $key) {
850 850
                                 echo ' selected';
851 851
                             }
852
-                            echo '>' . ucfirst( $value ) . '</option>';
852
+                            echo '>'.ucfirst($value).'</option>';
853 853
                         }
854 854
                         echo "\n";
855 855
                         ?>
@@ -858,69 +858,69 @@  discard block
 block discarded – undo
858 858
                     <p>
859 859
                         <?php
860 860
                             // translators: link points to shortpixel image test page.
861
-                            echo apply_filters( 'autoptimize_extra_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>' ) );
861
+                            echo apply_filters('autoptimize_extra_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>'));
862 862
                         ?>
863 863
                     </p>
864 864
                 </td>
865 865
             </tr>
866 866
             <tr>
867
-                <th scope="row"><?php _e( 'Remove emojis', 'autoptimize' ); ?></th>
867
+                <th scope="row"><?php _e('Remove emojis', 'autoptimize'); ?></th>
868 868
                 <td>
869
-                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_1]' <?php if ( ! empty( $options['autoptimize_extra_checkbox_field_1'] ) && '1' === $options['autoptimize_extra_checkbox_field_1'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Removes WordPress\' core emojis\' inline CSS, inline JavaScript, and an otherwise un-autoptimized JavaScript file.', 'autoptimize' ); ?></label>
869
+                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_1]' <?php if (!empty($options['autoptimize_extra_checkbox_field_1']) && '1' === $options['autoptimize_extra_checkbox_field_1']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Removes WordPress\' core emojis\' inline CSS, inline JavaScript, and an otherwise un-autoptimized JavaScript file.', 'autoptimize'); ?></label>
870 870
                 </td>
871 871
             </tr>
872 872
             <tr>
873
-                <th scope="row"><?php _e( 'Remove query strings from static resources', 'autoptimize' ); ?></th>
873
+                <th scope="row"><?php _e('Remove query strings from static resources', 'autoptimize'); ?></th>
874 874
                 <td>
875
-                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_0]' <?php if ( ! empty( $options['autoptimize_extra_checkbox_field_0'] ) && '1' === $options['autoptimize_extra_checkbox_field_0'] ) { echo 'checked="checked"'; } ?> value='1'><?php _e( 'Removing query strings (or more specifically the <code>ver</code> parameter) will not improve load time, but might improve performance scores.', 'autoptimize' ); ?></label>
875
+                    <label><input type='checkbox' name='autoptimize_extra_settings[autoptimize_extra_checkbox_field_0]' <?php if (!empty($options['autoptimize_extra_checkbox_field_0']) && '1' === $options['autoptimize_extra_checkbox_field_0']) { echo 'checked="checked"'; } ?> value='1'><?php _e('Removing query strings (or more specifically the <code>ver</code> parameter) will not improve load time, but might improve performance scores.', 'autoptimize'); ?></label>
876 876
                 </td>
877 877
             </tr>
878 878
             <tr>
879
-                <th scope="row"><?php _e( 'Preconnect to 3rd party domains <em>(advanced users)</em>', 'autoptimize' ); ?></th>
879
+                <th scope="row"><?php _e('Preconnect to 3rd party domains <em>(advanced users)</em>', 'autoptimize'); ?></th>
880 880
                 <td>
881
-                    <label><input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_2]' value='<?php if ( array_key_exists( 'autoptimize_extra_text_field_2', $options ) ) { echo esc_attr( $options['autoptimize_extra_text_field_2'] ); } ?>'><br /><?php _e( 'Add 3rd party domains you want the browser to <a href="https://www.keycdn.com/support/preconnect/#primary" target="_blank">preconnect</a> to, separated by comma\'s. Make sure to include the correct protocol (HTTP or HTTPS).', 'autoptimize' ); ?></label>
881
+                    <label><input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_2]' value='<?php if (array_key_exists('autoptimize_extra_text_field_2', $options)) { echo esc_attr($options['autoptimize_extra_text_field_2']); } ?>'><br /><?php _e('Add 3rd party domains you want the browser to <a href="https://www.keycdn.com/support/preconnect/#primary" target="_blank">preconnect</a> to, separated by comma\'s. Make sure to include the correct protocol (HTTP or HTTPS).', 'autoptimize'); ?></label>
882 882
                 </td>
883 883
             </tr>
884 884
             <tr>
885
-                <th scope="row"><?php _e( 'Async Javascript-files <em>(advanced users)</em>', 'autoptimize' ); ?></th>
885
+                <th scope="row"><?php _e('Async Javascript-files <em>(advanced users)</em>', 'autoptimize'); ?></th>
886 886
                 <td>
887 887
                     <?php
888
-                    if ( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) ) {
888
+                    if (autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php')) {
889 889
                         // translators: link points Async Javascript settings page.
890
-                        printf( __( 'You have "Async JavaScript" installed, %1$sconfiguration of async javascript is best done there%2$s.', 'autoptimize' ), '<a href="' . 'options-general.php?page=async-javascript' . '">', '</a>' );
890
+                        printf(__('You have "Async JavaScript" installed, %1$sconfiguration of async javascript is best done there%2$s.', 'autoptimize'), '<a href="'.'options-general.php?page=async-javascript'.'">', '</a>');
891 891
                     } else {
892 892
                     ?>
893
-                        <input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_3]' value='<?php if ( array_key_exists( 'autoptimize_extra_text_field_3', $options ) ) { echo esc_attr( $options['autoptimize_extra_text_field_3'] ); } ?>'>
893
+                        <input type='text' style='width:80%' name='autoptimize_extra_settings[autoptimize_extra_text_field_3]' value='<?php if (array_key_exists('autoptimize_extra_text_field_3', $options)) { echo esc_attr($options['autoptimize_extra_text_field_3']); } ?>'>
894 894
                         <br />
895 895
                         <?php
896
-                            _e( 'Comma-separated list of local or 3rd party JS-files that should loaded with the <code>async</code> flag. JS-files from your own site will be automatically excluded if added here. ', 'autoptimize' );
896
+                            _e('Comma-separated list of local or 3rd party JS-files that should loaded with the <code>async</code> flag. JS-files from your own site will be automatically excluded if added here. ', 'autoptimize');
897 897
                             // translators: %s will be replaced by a link to the "async javascript" plugin.
898
-                            echo sprintf( __( 'Configuration of async javascript is easier and more flexible using the %s plugin.', 'autoptimize' ), '"<a href="https://wordpress.org/plugins/async-javascript" target="_blank">Async Javascript</a>"' );
899
-                            $asj_install_url = network_admin_url() . 'plugin-install.php?s=async+javascript&tab=search&type=term';
900
-                            echo sprintf( ' <a href="' . $asj_install_url . '">%s</a>', __( 'Click here to install and activate it.', 'autoptimize' ) );
898
+                            echo sprintf(__('Configuration of async javascript is easier and more flexible using the %s plugin.', 'autoptimize'), '"<a href="https://wordpress.org/plugins/async-javascript" target="_blank">Async Javascript</a>"');
899
+                            $asj_install_url = network_admin_url().'plugin-install.php?s=async+javascript&tab=search&type=term';
900
+                            echo sprintf(' <a href="'.$asj_install_url.'">%s</a>', __('Click here to install and activate it.', 'autoptimize'));
901 901
                     }
902 902
                     ?>
903 903
                 </td>
904 904
             </tr>
905 905
             <tr>
906
-                <th scope="row"><?php _e( 'Optimize YouTube videos', 'autoptimize' ); ?></th>
906
+                <th scope="row"><?php _e('Optimize YouTube videos', 'autoptimize'); ?></th>
907 907
                 <td>
908 908
                     <?php
909
-                    if ( autoptimizeUtils::is_plugin_active( 'wp-youtube-lyte/wp-youtube-lyte.php' ) ) {
910
-                        _e( 'Great, you have WP YouTube Lyte installed.', 'autoptimize' );
909
+                    if (autoptimizeUtils::is_plugin_active('wp-youtube-lyte/wp-youtube-lyte.php')) {
910
+                        _e('Great, you have WP YouTube Lyte installed.', 'autoptimize');
911 911
                         $lyte_config_url = 'options-general.php?page=lyte_settings_page';
912
-                        echo sprintf( ' <a href="' . $lyte_config_url . '">%s</a>', __( 'Click here to configure it.', 'autoptimize' ) );
912
+                        echo sprintf(' <a href="'.$lyte_config_url.'">%s</a>', __('Click here to configure it.', 'autoptimize'));
913 913
                     } else {
914 914
                         // translators: %s will be replaced by a link to "wp youtube lyte" plugin.
915
-                        echo sprintf( __( '%s allows you to “lazy load” your videos, by inserting responsive “Lite YouTube Embeds". ', 'autoptimize' ), '<a href="https://wordpress.org/plugins/wp-youtube-lyte" target="_blank">WP YouTube Lyte</a>' );
916
-                        $lyte_install_url = network_admin_url() . 'plugin-install.php?s=lyte&tab=search&type=term';
917
-                        echo sprintf( ' <a href="' . $lyte_install_url . '">%s</a>', __( 'Click here to install and activate it.', 'autoptimize' ) );
915
+                        echo sprintf(__('%s allows you to “lazy load” your videos, by inserting responsive “Lite YouTube Embeds". ', 'autoptimize'), '<a href="https://wordpress.org/plugins/wp-youtube-lyte" target="_blank">WP YouTube Lyte</a>');
916
+                        $lyte_install_url = network_admin_url().'plugin-install.php?s=lyte&tab=search&type=term';
917
+                        echo sprintf(' <a href="'.$lyte_install_url.'">%s</a>', __('Click here to install and activate it.', 'autoptimize'));
918 918
                     }
919 919
                     ?>
920 920
                 </td>
921 921
             </tr>
922 922
         </table>
923
-        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save Changes', 'autoptimize' ); ?>" /></p>
923
+        <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'autoptimize'); ?>" /></p>
924 924
     </form>
925 925
     <script>
926 926
         jQuery(document).ready(function() {
Please login to merge, or discard this patch.
classes/autoptimizeStyles.php 1 patch
Spacing   +310 added lines, -310 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
 
@@ -48,53 +48,53 @@  discard block
 block discarded – undo
48 48
     // public $cdn_url; // Used all over the place implicitly, so will have to be either public or protected :/ .
49 49
 
50 50
     // Reads the page and collects style tags.
51
-    public function read( $options )
51
+    public function read($options)
52 52
     {
53
-        $noptimizeCSS = apply_filters( 'autoptimize_filter_css_noptimize', false, $this->content );
54
-        if ( $noptimizeCSS ) {
53
+        $noptimizeCSS = apply_filters('autoptimize_filter_css_noptimize', false, $this->content);
54
+        if ($noptimizeCSS) {
55 55
             return false;
56 56
         }
57 57
 
58
-        $whitelistCSS = apply_filters( 'autoptimize_filter_css_whitelist', '', $this->content );
59
-        if ( ! empty( $whitelistCSS ) ) {
60
-            $this->whitelist = array_filter( array_map( 'trim', explode( ',', $whitelistCSS ) ) );
58
+        $whitelistCSS = apply_filters('autoptimize_filter_css_whitelist', '', $this->content);
59
+        if (!empty($whitelistCSS)) {
60
+            $this->whitelist = array_filter(array_map('trim', explode(',', $whitelistCSS)));
61 61
         }
62 62
 
63
-        $removableCSS = apply_filters( 'autoptimize_filter_css_removables', '' );
64
-        if ( ! empty( $removableCSS ) ) {
65
-            $this->cssremovables = array_filter( array_map( 'trim', explode( ',', $removableCSS ) ) );
63
+        $removableCSS = apply_filters('autoptimize_filter_css_removables', '');
64
+        if (!empty($removableCSS)) {
65
+            $this->cssremovables = array_filter(array_map('trim', explode(',', $removableCSS)));
66 66
         }
67 67
 
68
-        $this->cssinlinesize = apply_filters( 'autoptimize_filter_css_inlinesize', 256 );
68
+        $this->cssinlinesize = apply_filters('autoptimize_filter_css_inlinesize', 256);
69 69
 
70 70
         // filter to "late inject minified CSS", default to true for now (it is faster).
71
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_css_inject_min_late', true );
71
+        $this->inject_min_late = apply_filters('autoptimize_filter_css_inject_min_late', true);
72 72
 
73 73
         // Remove everything that's not the header.
74
-        if ( apply_filters( 'autoptimize_filter_css_justhead', $options['justhead'] ) ) {
75
-            $content             = explode( '</head>', $this->content, 2 );
76
-            $this->content       = $content[0] . '</head>';
74
+        if (apply_filters('autoptimize_filter_css_justhead', $options['justhead'])) {
75
+            $content             = explode('</head>', $this->content, 2);
76
+            $this->content       = $content[0].'</head>';
77 77
             $this->restofcontent = $content[1];
78 78
         }
79 79
 
80 80
         // Determine whether we're doing CSS-files aggregation or not.
81
-        if ( isset( $options['aggregate'] ) && ! $options['aggregate'] ) {
81
+        if (isset($options['aggregate']) && !$options['aggregate']) {
82 82
             $this->aggregate = false;
83 83
         }
84 84
         // Returning true for "dontaggregate" turns off aggregation.
85
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_css_dontaggregate', false ) ) {
85
+        if ($this->aggregate && apply_filters('autoptimize_filter_css_dontaggregate', false)) {
86 86
             $this->aggregate = false;
87 87
         }
88 88
 
89 89
         // include inline?
90
-        if ( apply_filters( 'autoptimize_css_include_inline', $options['include_inline'] ) ) {
90
+        if (apply_filters('autoptimize_css_include_inline', $options['include_inline'])) {
91 91
             $this->include_inline = true;
92 92
         }
93 93
 
94 94
         // List of CSS strings which are excluded from autoptimization.
95
-        $excludeCSS = apply_filters( 'autoptimize_filter_css_exclude', $options['css_exclude'], $this->content );
96
-        if ( '' !== $excludeCSS ) {
97
-            $this->dontmove = array_filter( array_map( 'trim', explode( ',', $excludeCSS ) ) );
95
+        $excludeCSS = apply_filters('autoptimize_filter_css_exclude', $options['css_exclude'], $this->content);
96
+        if ('' !== $excludeCSS) {
97
+            $this->dontmove = array_filter(array_map('trim', explode(',', $excludeCSS)));
98 98
         } else {
99 99
             $this->dontmove = array();
100 100
         }
@@ -105,16 +105,16 @@  discard block
 block discarded – undo
105 105
         // Should we defer css?
106 106
         // value: true / false.
107 107
         $this->defer = $options['defer'];
108
-        $this->defer = apply_filters( 'autoptimize_filter_css_defer', $this->defer, $this->content );
108
+        $this->defer = apply_filters('autoptimize_filter_css_defer', $this->defer, $this->content);
109 109
 
110 110
         // Should we inline while deferring?
111 111
         // value: inlined CSS.
112
-        $this->defer_inline = apply_filters( 'autoptimize_filter_css_defer_inline', $options['defer_inline'], $this->content );
112
+        $this->defer_inline = apply_filters('autoptimize_filter_css_defer_inline', $options['defer_inline'], $this->content);
113 113
 
114 114
         // Should we inline?
115 115
         // value: true / false.
116 116
         $this->inline = $options['inline'];
117
-        $this->inline = apply_filters( 'autoptimize_filter_css_inline', $this->inline, $this->content );
117
+        $this->inline = apply_filters('autoptimize_filter_css_inline', $this->inline, $this->content);
118 118
 
119 119
         // Store cdn url.
120 120
         $this->cdn_url = $options['cdn_url'];
@@ -123,7 +123,7 @@  discard block
 block discarded – undo
123 123
         $this->datauris = $options['datauris'];
124 124
 
125 125
         // noptimize me.
126
-        $this->content = $this->hide_noptimize( $this->content );
126
+        $this->content = $this->hide_noptimize($this->content);
127 127
 
128 128
         // Exclude (no)script, as those may contain CSS which should be left as is.
129 129
         $this->content = $this->replace_contents_with_marker_if_exists(
@@ -134,26 +134,26 @@  discard block
 block discarded – undo
134 134
         );
135 135
 
136 136
         // Save IE hacks.
137
-        $this->content = $this->hide_iehacks( $this->content );
137
+        $this->content = $this->hide_iehacks($this->content);
138 138
 
139 139
         // Hide HTML comments.
140
-        $this->content = $this->hide_comments( $this->content );
140
+        $this->content = $this->hide_comments($this->content);
141 141
 
142 142
         // Get <style> and <link>.
143
-        if ( preg_match_all( '#(<style[^>]*>.*</style>)|(<link[^>]*stylesheet[^>]*>)#Usmi', $this->content, $matches ) ) {
143
+        if (preg_match_all('#(<style[^>]*>.*</style>)|(<link[^>]*stylesheet[^>]*>)#Usmi', $this->content, $matches)) {
144 144
 
145
-            foreach ( $matches[0] as $tag ) {
146
-                if ( $this->isremovable( $tag, $this->cssremovables ) ) {
147
-                    $this->content = str_replace( $tag, '', $this->content );
148
-                } elseif ( $this->ismovable( $tag ) ) {
145
+            foreach ($matches[0] as $tag) {
146
+                if ($this->isremovable($tag, $this->cssremovables)) {
147
+                    $this->content = str_replace($tag, '', $this->content);
148
+                } elseif ($this->ismovable($tag)) {
149 149
                     // Get the media.
150
-                    if ( false !== strpos( $tag, 'media=' ) ) {
151
-                        preg_match( '#media=(?:"|\')([^>]*)(?:"|\')#Ui', $tag, $medias );
152
-                        $medias = explode( ',', $medias[1] );
150
+                    if (false !== strpos($tag, 'media=')) {
151
+                        preg_match('#media=(?:"|\')([^>]*)(?:"|\')#Ui', $tag, $medias);
152
+                        $medias = explode(',', $medias[1]);
153 153
                         $media = array();
154
-                        foreach ( $medias as $elem ) {
154
+                        foreach ($medias as $elem) {
155 155
                             /* $media[] = current(explode(' ',trim($elem),2)); */
156
-                            if ( empty( $elem ) ) {
156
+                            if (empty($elem)) {
157 157
                                 $elem = 'all';
158 158
                             }
159 159
 
@@ -161,65 +161,65 @@  discard block
 block discarded – undo
161 161
                         }
162 162
                     } else {
163 163
                         // No media specified - applies to all.
164
-                        $media = array( 'all' );
164
+                        $media = array('all');
165 165
                     }
166 166
 
167
-                    $media = apply_filters( 'autoptimize_filter_css_tagmedia', $media, $tag );
167
+                    $media = apply_filters('autoptimize_filter_css_tagmedia', $media, $tag);
168 168
 
169
-                    if ( preg_match( '#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source ) ) {
169
+                    if (preg_match('#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source)) {
170 170
                         // <link>.
171
-                        $url  = current( explode( '?', $source[2], 2 ) );
172
-                        $path = $this->getpath( $url );
171
+                        $url  = current(explode('?', $source[2], 2));
172
+                        $path = $this->getpath($url);
173 173
 
174
-                        if ( false !== $path && preg_match( '#\.css$#', $path ) ) {
174
+                        if (false !== $path && preg_match('#\.css$#', $path)) {
175 175
                             // Good link.
176
-                            $this->css[] = array( $media, $path );
176
+                            $this->css[] = array($media, $path);
177 177
                         } else {
178 178
                             // Link is dynamic (.php etc).
179
-                            $new_tag = $this->optionally_defer_excluded( $tag, 'none' );
180
-                            if ( $new_tag !== $tag ) {
181
-                                $this->content = str_replace( $tag, $new_tag, $this->content );
179
+                            $new_tag = $this->optionally_defer_excluded($tag, 'none');
180
+                            if ($new_tag !== $tag) {
181
+                                $this->content = str_replace($tag, $new_tag, $this->content);
182 182
                             }
183 183
                             $tag = '';
184 184
                         }
185 185
                     } else {
186 186
                         // Inline css in style tags can be wrapped in comment tags, so restore comments.
187
-                        $tag = $this->restore_comments( $tag );
188
-                        preg_match( '#<style.*>(.*)</style>#Usmi', $tag, $code );
187
+                        $tag = $this->restore_comments($tag);
188
+                        preg_match('#<style.*>(.*)</style>#Usmi', $tag, $code);
189 189
 
190 190
                         // And re-hide them to be able to to the removal based on tag.
191
-                        $tag = $this->hide_comments( $tag );
191
+                        $tag = $this->hide_comments($tag);
192 192
 
193
-                        if ( $this->include_inline ) {
194
-                            $code = preg_replace( '#^.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*$#sm', '$1', $code[1] );
195
-                            $this->css[] = array( $media, 'INLINE;' . $code );
193
+                        if ($this->include_inline) {
194
+                            $code = preg_replace('#^.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*$#sm', '$1', $code[1]);
195
+                            $this->css[] = array($media, 'INLINE;'.$code);
196 196
                         } else {
197 197
                             $tag = '';
198 198
                         }
199 199
                     }
200 200
 
201 201
                     // Remove the original style tag.
202
-                    $this->content = str_replace( $tag, '', $this->content );
202
+                    $this->content = str_replace($tag, '', $this->content);
203 203
                 } else {
204 204
                     // Excluded CSS, minify if getpath and filter says so...
205
-                    if ( preg_match( '#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source ) ) {
206
-                        $exploded_url = explode( '?', $source[2], 2 );
205
+                    if (preg_match('#<link.*href=("|\')(.*)("|\')#Usmi', $tag, $source)) {
206
+                        $exploded_url = explode('?', $source[2], 2);
207 207
                         $url          = $exploded_url[0];
208
-                        $path         = $this->getpath( $url );
208
+                        $path         = $this->getpath($url);
209 209
 
210
-                        if ( $path && apply_filters( 'autoptimize_filter_css_minify_excluded', true, $url ) ) {
211
-                            $minified_url = $this->minify_single( $path );
212
-                            if ( ! empty( $minified_url ) ) {
210
+                        if ($path && apply_filters('autoptimize_filter_css_minify_excluded', true, $url)) {
211
+                            $minified_url = $this->minify_single($path);
212
+                            if (!empty($minified_url)) {
213 213
                                 // Replace orig URL with cached minified URL.
214
-                                $new_tag = str_replace( $url, $minified_url, $tag );
214
+                                $new_tag = str_replace($url, $minified_url, $tag);
215 215
                             } else {
216 216
                                 $new_tag = $tag;
217 217
                             }
218 218
 
219
-                            $new_tag = $this->optionally_defer_excluded( $new_tag, $url );
219
+                            $new_tag = $this->optionally_defer_excluded($new_tag, $url);
220 220
 
221 221
                             // And replace!
222
-                            $this->content = str_replace( $tag, $new_tag, $this->content );
222
+                            $this->content = str_replace($tag, $new_tag, $this->content);
223 223
                         }
224 224
                     }
225 225
                 }
@@ -240,10 +240,10 @@  discard block
 block discarded – undo
240 240
      *
241 241
      * @return string $new_tag
242 242
      */
243
-    private function optionally_defer_excluded( $new_tag, $url = '' )
243
+    private function optionally_defer_excluded($new_tag, $url = '')
244 244
     {
245 245
         // Defer single CSS if "inline & defer" is ON and there is inline CSS.
246
-        if ( $this->defer && ! empty( $this->defer_inline ) ) {
246
+        if ($this->defer && !empty($this->defer_inline)) {
247 247
             // Get/ set (via filter) the JS to be triggers onload of the preloaded CSS.
248 248
             $_preload_onload = apply_filters(
249 249
                 'autoptimize_filter_css_preload_onload',
@@ -251,12 +251,12 @@  discard block
 block discarded – undo
251 251
                 $url
252 252
             );
253 253
             // Adapt original <link> element for CSS to be preloaded and add <noscript>-version for fallback.
254
-            $new_tag = '<noscript>' . $new_tag . '</noscript>' . str_replace(
254
+            $new_tag = '<noscript>'.$new_tag.'</noscript>'.str_replace(
255 255
                 array(
256 256
                     "rel='stylesheet'",
257 257
                     'rel="stylesheet"',
258 258
                 ),
259
-                "rel='preload' as='style' onload=\"" . $_preload_onload . "\"",
259
+                "rel='preload' as='style' onload=\"".$_preload_onload."\"",
260 260
                 $new_tag
261 261
             );
262 262
         }
@@ -270,22 +270,22 @@  discard block
 block discarded – undo
270 270
      * @param string $path
271 271
      * @return boolean
272 272
      */
273
-    private function is_datauri_candidate( $path )
273
+    private function is_datauri_candidate($path)
274 274
     {
275 275
         // Call only once since it's called from a loop.
276 276
         static $max_size = null;
277
-        if ( null === $max_size ) {
277
+        if (null === $max_size) {
278 278
             $max_size = $this->get_datauri_maxsize();
279 279
         }
280 280
 
281
-        if ( $path && preg_match( '#\.(jpe?g|png|gif|webp|bmp)$#i', $path ) &&
282
-            file_exists( $path ) && is_readable( $path ) && filesize( $path ) <= $max_size ) {
281
+        if ($path && preg_match('#\.(jpe?g|png|gif|webp|bmp)$#i', $path) &&
282
+            file_exists($path) && is_readable($path) && filesize($path) <= $max_size) {
283 283
 
284 284
             // Seems we have a candidate.
285 285
             $is_candidate = true;
286 286
         } else {
287 287
             // Filter allows overriding default decision (which checks for local file existence).
288
-            $is_candidate = apply_filters( 'autoptimize_filter_css_is_datauri_candidate', false, $path );
288
+            $is_candidate = apply_filters('autoptimize_filter_css_is_datauri_candidate', false, $path);
289 289
         }
290 290
 
291 291
         return $is_candidate;
@@ -310,29 +310,29 @@  discard block
 block discarded – undo
310 310
          * of thing you're probably better of building assets completely
311 311
          * outside of WordPress anyway.
312 312
          */
313
-        if ( null === $max_size ) {
314
-            $max_size = (int) apply_filters( 'autoptimize_filter_css_datauri_maxsize', 4096 );
313
+        if (null === $max_size) {
314
+            $max_size = (int) apply_filters('autoptimize_filter_css_datauri_maxsize', 4096);
315 315
         }
316 316
 
317 317
         return $max_size;
318 318
     }
319 319
 
320
-    private function check_datauri_exclude_list( $url )
320
+    private function check_datauri_exclude_list($url)
321 321
     {
322 322
         static $exclude_list = null;
323 323
         $no_datauris         = array();
324 324
 
325 325
         // Again, skip doing certain stuff repeatedly when loop-called.
326
-        if ( null === $exclude_list ) {
327
-            $exclude_list = apply_filters( 'autoptimize_filter_css_datauri_exclude', '' );
328
-            $no_datauris = array_filter( array_map( 'trim', explode( ',', $exclude_list ) ) );
326
+        if (null === $exclude_list) {
327
+            $exclude_list = apply_filters('autoptimize_filter_css_datauri_exclude', '');
328
+            $no_datauris = array_filter(array_map('trim', explode(',', $exclude_list)));
329 329
         }
330 330
 
331 331
         $matched = false;
332 332
 
333
-        if ( ! empty( $exclude_list ) ) {
334
-            foreach ( $no_datauris as $no_datauri ) {
335
-                if ( false !== strpos( $url, $no_datauri ) ) {
333
+        if (!empty($exclude_list)) {
334
+            foreach ($no_datauris as $no_datauri) {
335
+                if (false !== strpos($url, $no_datauri)) {
336 336
                     $matched = true;
337 337
                     break;
338 338
                 }
@@ -342,7 +342,7 @@  discard block
 block discarded – undo
342 342
         return $matched;
343 343
     }
344 344
 
345
-    private function build_or_get_datauri_image( $path )
345
+    private function build_or_get_datauri_image($path)
346 346
     {
347 347
         /**
348 348
          * TODO/FIXME: document the required return array format, or better yet,
@@ -351,27 +351,27 @@  discard block
 block discarded – undo
351 351
          */
352 352
 
353 353
         // Allows short-circuiting datauri generation for an image.
354
-        $result = apply_filters( 'autoptimize_filter_css_datauri_image', array(), $path );
355
-        if ( ! empty( $result ) ) {
356
-            if ( is_array( $result ) && isset( $result['full'] ) && isset( $result['base64data'] ) ) {
354
+        $result = apply_filters('autoptimize_filter_css_datauri_image', array(), $path);
355
+        if (!empty($result)) {
356
+            if (is_array($result) && isset($result['full']) && isset($result['base64data'])) {
357 357
                 return $result;
358 358
             }
359 359
         }
360 360
 
361
-        $hash = md5( $path );
362
-        $check = new autoptimizeCache( $hash, 'img' );
363
-        if ( $check->check() ) {
361
+        $hash = md5($path);
362
+        $check = new autoptimizeCache($hash, 'img');
363
+        if ($check->check()) {
364 364
             // we have the base64 image in cache.
365 365
             $headAndData = $check->retrieve();
366
-            $_base64data = explode( ';base64,', $headAndData );
366
+            $_base64data = explode(';base64,', $headAndData);
367 367
             $base64data  = $_base64data[1];
368
-            unset( $_base64data );
368
+            unset($_base64data);
369 369
         } else {
370 370
             // It's an image and we don't have it in cache, get the type by extension.
371
-            $exploded_path = explode( '.', $path );
372
-            $type = end( $exploded_path );
371
+            $exploded_path = explode('.', $path);
372
+            $type = end($exploded_path);
373 373
 
374
-            switch ( $type ) {
374
+            switch ($type) {
375 375
                 case 'jpg':
376 376
                 case 'jpeg':
377 377
                     $dataurihead = 'data:image/jpeg;base64,';
@@ -393,15 +393,15 @@  discard block
 block discarded – undo
393 393
             }
394 394
 
395 395
             // Encode the data.
396
-            $base64data  = base64_encode( file_get_contents( $path ) );
397
-            $headAndData = $dataurihead . $base64data;
396
+            $base64data  = base64_encode(file_get_contents($path));
397
+            $headAndData = $dataurihead.$base64data;
398 398
 
399 399
             // Save in cache.
400
-            $check->cache( $headAndData, 'text/plain' );
400
+            $check->cache($headAndData, 'text/plain');
401 401
         }
402
-        unset( $check );
402
+        unset($check);
403 403
 
404
-        return array( 'full' => $headAndData, 'base64data' => $base64data );
404
+        return array('full' => $headAndData, 'base64data' => $base64data);
405 405
     }
406 406
 
407 407
     /**
@@ -413,13 +413,13 @@  discard block
 block discarded – undo
413 413
      *
414 414
      * @return string
415 415
      */
416
-    protected static function replace_longest_matches_first( $string, $replacements = array() )
416
+    protected static function replace_longest_matches_first($string, $replacements = array())
417 417
     {
418
-        if ( ! empty( $replacements ) ) {
418
+        if (!empty($replacements)) {
419 419
             // Sort the replacements array by key length in desc order (so that the longest strings are replaced first).
420
-            $keys = array_map( 'strlen', array_keys( $replacements ) );
421
-            array_multisort( $keys, SORT_DESC, $replacements );
422
-            $string = str_replace( array_keys( $replacements ), array_values( $replacements ), $string );
420
+            $keys = array_map('strlen', array_keys($replacements));
421
+            array_multisort($keys, SORT_DESC, $replacements);
422
+            $string = str_replace(array_keys($replacements), array_values($replacements), $string);
423 423
         }
424 424
 
425 425
         return $string;
@@ -435,15 +435,15 @@  discard block
 block discarded – undo
435 435
      *
436 436
      * @return string
437 437
      */
438
-    public function replace_urls( $code = '' )
438
+    public function replace_urls($code = '')
439 439
     {
440 440
         $replacements = array();
441 441
 
442
-        preg_match_all( self::ASSETS_REGEX, $code, $url_src_matches );
443
-        if ( is_array( $url_src_matches ) && ! empty( $url_src_matches ) ) {
444
-            foreach ( $url_src_matches[1] as $count => $original_url ) {
442
+        preg_match_all(self::ASSETS_REGEX, $code, $url_src_matches);
443
+        if (is_array($url_src_matches) && !empty($url_src_matches)) {
444
+            foreach ($url_src_matches[1] as $count => $original_url) {
445 445
                 // Removes quotes and other cruft.
446
-                $url = trim( $original_url, " \t\n\r\0\x0B\"'" );
446
+                $url = trim($original_url, " \t\n\r\0\x0B\"'");
447 447
 
448 448
                 /**
449 449
                  * TODO/FIXME: Add a way for other code / callable to be called here
@@ -461,17 +461,17 @@  discard block
 block discarded – undo
461 461
                  */
462 462
 
463 463
                 // Do CDN replacement if needed.
464
-                if ( ! empty( $this->cdn_url ) ) {
465
-                    $replacement_url = $this->url_replace_cdn( $url );
464
+                if (!empty($this->cdn_url)) {
465
+                    $replacement_url = $this->url_replace_cdn($url);
466 466
                     // Prepare replacements array.
467
-                    $replacements[ $url_src_matches[1][ $count ] ] = str_replace(
467
+                    $replacements[$url_src_matches[1][$count]] = str_replace(
468 468
                         $original_url, $replacement_url, $url_src_matches[1][$count]
469 469
                     );
470 470
                 }
471 471
             }
472 472
         }
473 473
 
474
-        $code = self::replace_longest_matches_first( $code, $replacements );
474
+        $code = self::replace_longest_matches_first($code, $replacements);
475 475
 
476 476
         return $code;
477 477
     }
@@ -484,26 +484,26 @@  discard block
 block discarded – undo
484 484
      * @param string $code
485 485
      * @return string
486 486
      */
487
-    public function hide_fontface_and_maybe_cdn( $code )
487
+    public function hide_fontface_and_maybe_cdn($code)
488 488
     {
489 489
         // Proceed only if @font-face declarations exist within $code.
490
-        preg_match_all( self::FONT_FACE_REGEX, $code, $fontfaces );
491
-        if ( isset( $fontfaces[0] ) ) {
490
+        preg_match_all(self::FONT_FACE_REGEX, $code, $fontfaces);
491
+        if (isset($fontfaces[0])) {
492 492
             // Check if we need to cdn fonts or not.
493
-            $do_font_cdn = apply_filters( 'autoptimize_filter_css_fonts_cdn', false );
493
+            $do_font_cdn = apply_filters('autoptimize_filter_css_fonts_cdn', false);
494 494
 
495
-            foreach ( $fontfaces[0] as $full_match ) {
495
+            foreach ($fontfaces[0] as $full_match) {
496 496
                 // Keep original match so we can search/replace it.
497 497
                 $match_search = $full_match;
498 498
 
499 499
                 // Do font cdn if needed.
500
-                if ( $do_font_cdn ) {
501
-                    $full_match = $this->replace_urls( $full_match );
500
+                if ($do_font_cdn) {
501
+                    $full_match = $this->replace_urls($full_match);
502 502
                 }
503 503
 
504 504
                 // Replace declaration with its base64 encoded string.
505
-                $replacement = self::build_marker( 'FONTFACE', $full_match );
506
-                $code = str_replace( $match_search, $replacement, $code );
505
+                $replacement = self::build_marker('FONTFACE', $full_match);
506
+                $code = str_replace($match_search, $replacement, $code);
507 507
             }
508 508
         }
509 509
 
@@ -517,16 +517,16 @@  discard block
 block discarded – undo
517 517
      * @param string $code
518 518
      * @return string
519 519
      */
520
-    public function restore_fontface( $code )
520
+    public function restore_fontface($code)
521 521
     {
522
-        return $this->restore_marked_content( 'FONTFACE', $code );
522
+        return $this->restore_marked_content('FONTFACE', $code);
523 523
     }
524 524
 
525 525
     // Re-write (and/or inline) referenced assets.
526
-    public function rewrite_assets( $code )
526
+    public function rewrite_assets($code)
527 527
     {
528 528
         // Handle @font-face rules by hiding and processing them separately.
529
-        $code = $this->hide_fontface_and_maybe_cdn( $code );
529
+        $code = $this->hide_fontface_and_maybe_cdn($code);
530 530
 
531 531
         /**
532 532
          * TODO/FIXME:
@@ -542,30 +542,30 @@  discard block
 block discarded – undo
542 542
         $url_src_matches = array();
543 543
         $imgreplace = array();
544 544
         // Matches and captures anything specified within the literal `url()` and excludes those containing data: URIs.
545
-        preg_match_all( self::ASSETS_REGEX, $code, $url_src_matches );
546
-        if ( is_array( $url_src_matches ) && ! empty( $url_src_matches ) ) {
547
-            foreach ( $url_src_matches[1] as $count => $original_url ) {
545
+        preg_match_all(self::ASSETS_REGEX, $code, $url_src_matches);
546
+        if (is_array($url_src_matches) && !empty($url_src_matches)) {
547
+            foreach ($url_src_matches[1] as $count => $original_url) {
548 548
                 // Removes quotes and other cruft.
549
-                $url = trim( $original_url, " \t\n\r\0\x0B\"'" );
549
+                $url = trim($original_url, " \t\n\r\0\x0B\"'");
550 550
 
551 551
                 // If datauri inlining is turned on, do it.
552 552
                 $inlined = false;
553
-                if ( $this->datauris ) {
553
+                if ($this->datauris) {
554 554
                     $iurl = $url;
555
-                    if ( false !== strpos( $iurl, '?' ) ) {
556
-                        $iurl = strtok( $iurl, '?' );
555
+                    if (false !== strpos($iurl, '?')) {
556
+                        $iurl = strtok($iurl, '?');
557 557
                     }
558 558
 
559
-                    $ipath = $this->getpath( $iurl );
559
+                    $ipath = $this->getpath($iurl);
560 560
 
561
-                    $excluded = $this->check_datauri_exclude_list( $ipath );
562
-                    if ( ! $excluded ) {
563
-                        $is_datauri_candidate = $this->is_datauri_candidate( $ipath );
564
-                        if ( $is_datauri_candidate ) {
565
-                            $datauri     = $this->build_or_get_datauri_image( $ipath );
561
+                    $excluded = $this->check_datauri_exclude_list($ipath);
562
+                    if (!$excluded) {
563
+                        $is_datauri_candidate = $this->is_datauri_candidate($ipath);
564
+                        if ($is_datauri_candidate) {
565
+                            $datauri     = $this->build_or_get_datauri_image($ipath);
566 566
                             $base64data  = $datauri['base64data'];
567 567
                             // Add it to the list for replacement.
568
-                            $imgreplace[ $url_src_matches[1][ $count ] ] = str_replace(
568
+                            $imgreplace[$url_src_matches[1][$count]] = str_replace(
569 569
                                     $original_url,
570 570
                                     $datauri['full'],
571 571
                                     $url_src_matches[1][$count]
@@ -581,20 +581,20 @@  discard block
 block discarded – undo
581 581
                  * inlining isn't turned on, or if a resource is skipped from
582 582
                  * being inlined for whatever reason above.
583 583
                  */
584
-                if ( ! $inlined && ( ! empty( $this->cdn_url ) || has_filter( 'autoptimize_filter_base_replace_cdn' ) ) ) {
584
+                if (!$inlined && (!empty($this->cdn_url) || has_filter('autoptimize_filter_base_replace_cdn'))) {
585 585
                     // Just do the "simple" CDN replacement.
586
-                    $replacement_url = $this->url_replace_cdn( $url );
587
-                    $imgreplace[ $url_src_matches[1][ $count ] ] = str_replace(
586
+                    $replacement_url = $this->url_replace_cdn($url);
587
+                    $imgreplace[$url_src_matches[1][$count]] = str_replace(
588 588
                         $original_url, $replacement_url, $url_src_matches[1][$count]
589 589
                     );
590 590
                 }
591 591
             }
592 592
         }
593 593
 
594
-        $code = self::replace_longest_matches_first( $code, $imgreplace );
594
+        $code = self::replace_longest_matches_first($code, $imgreplace);
595 595
 
596 596
         // Replace back font-face markers with actual font-face declarations.
597
-        $code = $this->restore_fontface( $code );
597
+        $code = $this->restore_fontface($code);
598 598
 
599 599
         return $code;
600 600
     }
@@ -602,29 +602,29 @@  discard block
 block discarded – undo
602 602
     // Joins and optimizes CSS.
603 603
     public function minify()
604 604
     {
605
-        foreach ( $this->css as $group ) {
606
-            list( $media, $css ) = $group;
607
-            if ( preg_match( '#^INLINE;#', $css ) ) {
605
+        foreach ($this->css as $group) {
606
+            list($media, $css) = $group;
607
+            if (preg_match('#^INLINE;#', $css)) {
608 608
                 // <style>.
609
-                $css = preg_replace( '#^INLINE;#', '', $css );
610
-                $css = self::fixurls( ABSPATH . 'index.php', $css ); // ABSPATH already contains a trailing slash.
611
-                $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $css, '' );
612
-                if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
609
+                $css = preg_replace('#^INLINE;#', '', $css);
610
+                $css = self::fixurls(ABSPATH.'index.php', $css); // ABSPATH already contains a trailing slash.
611
+                $tmpstyle = apply_filters('autoptimize_css_individual_style', $css, '');
612
+                if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
613 613
                     $css = $tmpstyle;
614 614
                     $this->alreadyminified = true;
615 615
                 }
616 616
             } else {
617 617
                 // <link>
618
-                if ( false !== $css && file_exists( $css ) && is_readable( $css ) ) {
618
+                if (false !== $css && file_exists($css) && is_readable($css)) {
619 619
                     $cssPath = $css;
620
-                    $css = self::fixurls( $cssPath, file_get_contents( $cssPath ) );
621
-                    $css = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $css );
622
-                    $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $css, $cssPath );
623
-                    if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
620
+                    $css = self::fixurls($cssPath, file_get_contents($cssPath));
621
+                    $css = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $css);
622
+                    $tmpstyle = apply_filters('autoptimize_css_individual_style', $css, $cssPath);
623
+                    if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
624 624
                         $css = $tmpstyle;
625 625
                         $this->alreadyminified = true;
626
-                    } elseif ( $this->can_inject_late( $cssPath, $css ) ) {
627
-                        $css = self::build_injectlater_marker( $cssPath, md5( $css ) );
626
+                    } elseif ($this->can_inject_late($cssPath, $css)) {
627
+                        $css = self::build_injectlater_marker($cssPath, md5($css));
628 628
                     }
629 629
                 } else {
630 630
                     // Couldn't read CSS. Maybe getpath isn't working?
@@ -632,12 +632,12 @@  discard block
 block discarded – undo
632 632
                 }
633 633
             }
634 634
 
635
-            foreach ( $media as $elem ) {
636
-                if ( ! empty( $css ) ) {
637
-                    if ( ! isset( $this->csscode[$elem] ) ) {
635
+            foreach ($media as $elem) {
636
+                if (!empty($css)) {
637
+                    if (!isset($this->csscode[$elem])) {
638 638
                         $this->csscode[$elem] = '';
639 639
                     }
640
-                    $this->csscode[$elem] .= "\n/*FILESTART*/" . $css;
640
+                    $this->csscode[$elem] .= "\n/*FILESTART*/".$css;
641 641
                 }
642 642
             }
643 643
         }
@@ -645,133 +645,133 @@  discard block
 block discarded – undo
645 645
         // Check for duplicate code.
646 646
         $md5list = array();
647 647
         $tmpcss  = $this->csscode;
648
-        foreach ( $tmpcss as $media => $code ) {
649
-            $md5sum    = md5( $code );
648
+        foreach ($tmpcss as $media => $code) {
649
+            $md5sum    = md5($code);
650 650
             $medianame = $media;
651
-            foreach ( $md5list as $med => $sum ) {
651
+            foreach ($md5list as $med => $sum) {
652 652
                 // If same code.
653
-                if ( $sum === $md5sum ) {
653
+                if ($sum === $md5sum) {
654 654
                     // Add the merged code.
655
-                    $medianame                 = $med . ', ' . $media;
655
+                    $medianame                 = $med.', '.$media;
656 656
                     $this->csscode[$medianame] = $code;
657 657
                     $md5list[$medianame]       = $md5list[$med];
658
-                    unset( $this->csscode[$med], $this->csscode[$media], $md5list[$med] );
658
+                    unset($this->csscode[$med], $this->csscode[$media], $md5list[$med]);
659 659
                 }
660 660
             }
661 661
             $md5list[$medianame] = $md5sum;
662 662
         }
663
-        unset( $tmpcss );
663
+        unset($tmpcss);
664 664
 
665 665
         // Manage @imports, while is for recursive import management.
666
-        foreach ( $this->csscode as &$thiscss ) {
666
+        foreach ($this->csscode as &$thiscss) {
667 667
             // Flag to trigger import reconstitution and var to hold external imports.
668 668
             $fiximports       = false;
669 669
             $external_imports = '';
670 670
 
671 671
             // remove comments to avoid importing commented-out imports.
672
-            $thiscss_nocomments = preg_replace( '#/\*.*\*/#Us', '', $thiscss );
673
-            while ( preg_match_all( '#@import +(?:url)?(?:(?:\((["\']?)(?:[^"\')]+)\1\)|(["\'])(?:[^"\']+)\2)(?:[^,;"\']+(?:,[^,;"\']+)*)?)(?:;)#mi', $thiscss_nocomments, $matches ) ) {
674
-                foreach ( $matches[0] as $import ) {
675
-                    if ( $this->isremovable( $import, $this->cssremovables ) ) {
676
-                        $thiscss = str_replace( $import, '', $thiscss );
672
+            $thiscss_nocomments = preg_replace('#/\*.*\*/#Us', '', $thiscss);
673
+            while (preg_match_all('#@import +(?:url)?(?:(?:\((["\']?)(?:[^"\')]+)\1\)|(["\'])(?:[^"\']+)\2)(?:[^,;"\']+(?:,[^,;"\']+)*)?)(?:;)#mi', $thiscss_nocomments, $matches)) {
674
+                foreach ($matches[0] as $import) {
675
+                    if ($this->isremovable($import, $this->cssremovables)) {
676
+                        $thiscss = str_replace($import, '', $thiscss);
677 677
                         $import_ok = true;
678 678
                     } else {
679
-                        $url = trim( preg_replace( '#^.*((?:https?:|ftp:)?//.*\.css).*$#', '$1', trim( $import ) ), " \t\n\r\0\x0B\"'" );
680
-                        $path = $this->getpath( $url );
679
+                        $url = trim(preg_replace('#^.*((?:https?:|ftp:)?//.*\.css).*$#', '$1', trim($import)), " \t\n\r\0\x0B\"'");
680
+                        $path = $this->getpath($url);
681 681
                         $import_ok = false;
682
-                        if ( file_exists( $path ) && is_readable( $path ) ) {
683
-                            $code = addcslashes( self::fixurls( $path, file_get_contents( $path ) ), "\\" );
684
-                            $code = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $code );
685
-                            $tmpstyle = apply_filters( 'autoptimize_css_individual_style', $code, '' );
686
-                            if ( has_filter( 'autoptimize_css_individual_style' ) && ! empty( $tmpstyle ) ) {
682
+                        if (file_exists($path) && is_readable($path)) {
683
+                            $code = addcslashes(self::fixurls($path, file_get_contents($path)), "\\");
684
+                            $code = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $code);
685
+                            $tmpstyle = apply_filters('autoptimize_css_individual_style', $code, '');
686
+                            if (has_filter('autoptimize_css_individual_style') && !empty($tmpstyle)) {
687 687
                                 $code = $tmpstyle;
688 688
                                 $this->alreadyminified = true;
689
-                            } elseif ( $this->can_inject_late( $path, $code ) ) {
690
-                                $code = self::build_injectlater_marker( $path, md5( $code ) );
689
+                            } elseif ($this->can_inject_late($path, $code)) {
690
+                                $code = self::build_injectlater_marker($path, md5($code));
691 691
                             }
692 692
 
693
-                            if ( ! empty( $code ) ) {
694
-                                $tmp_thiscss = preg_replace( '#(/\*FILESTART\*/.*)' . preg_quote( $import, '#' ) . '#Us', '/*FILESTART2*/' . $code . '$1', $thiscss );
695
-                                if ( ! empty( $tmp_thiscss ) ) {
693
+                            if (!empty($code)) {
694
+                                $tmp_thiscss = preg_replace('#(/\*FILESTART\*/.*)'.preg_quote($import, '#').'#Us', '/*FILESTART2*/'.$code.'$1', $thiscss);
695
+                                if (!empty($tmp_thiscss)) {
696 696
                                     $thiscss = $tmp_thiscss;
697 697
                                     $import_ok = true;
698
-                                    unset( $tmp_thiscss );
698
+                                    unset($tmp_thiscss);
699 699
                                 }
700 700
                             }
701
-                            unset( $code );
701
+                            unset($code);
702 702
                         }
703 703
                     }
704
-                    if ( ! $import_ok ) {
704
+                    if (!$import_ok) {
705 705
                         // External imports and general fall-back.
706 706
                         $external_imports .= $import;
707 707
 
708
-                        $thiscss    = str_replace( $import, '', $thiscss );
708
+                        $thiscss    = str_replace($import, '', $thiscss);
709 709
                         $fiximports = true;
710 710
                     }
711 711
                 }
712
-                $thiscss = preg_replace( '#/\*FILESTART\*/#', '', $thiscss );
713
-                $thiscss = preg_replace( '#/\*FILESTART2\*/#', '/*FILESTART*/', $thiscss );
712
+                $thiscss = preg_replace('#/\*FILESTART\*/#', '', $thiscss);
713
+                $thiscss = preg_replace('#/\*FILESTART2\*/#', '/*FILESTART*/', $thiscss);
714 714
 
715 715
                 // and update $thiscss_nocomments before going into next iteration in while loop.
716
-                $thiscss_nocomments = preg_replace( '#/\*.*\*/#Us', '', $thiscss );
716
+                $thiscss_nocomments = preg_replace('#/\*.*\*/#Us', '', $thiscss);
717 717
             }
718
-            unset( $thiscss_nocomments );
718
+            unset($thiscss_nocomments);
719 719
 
720 720
             // Add external imports to top of aggregated CSS.
721
-            if ( $fiximports ) {
722
-                $thiscss = $external_imports . $thiscss;
721
+            if ($fiximports) {
722
+                $thiscss = $external_imports.$thiscss;
723 723
             }
724 724
         }
725
-        unset( $thiscss );
725
+        unset($thiscss);
726 726
 
727 727
         // $this->csscode has all the uncompressed code now.
728
-        foreach ( $this->csscode as &$code ) {
728
+        foreach ($this->csscode as &$code) {
729 729
             // Check for already-minified code.
730
-            $hash = md5( $code );
731
-            do_action( 'autoptimize_action_css_hash', $hash );
732
-            $ccheck = new autoptimizeCache( $hash, 'css' );
733
-            if ( $ccheck->check() ) {
730
+            $hash = md5($code);
731
+            do_action('autoptimize_action_css_hash', $hash);
732
+            $ccheck = new autoptimizeCache($hash, 'css');
733
+            if ($ccheck->check()) {
734 734
                 $code = $ccheck->retrieve();
735
-                $this->hashmap[md5( $code )] = $hash;
735
+                $this->hashmap[md5($code)] = $hash;
736 736
                 continue;
737 737
             }
738
-            unset( $ccheck );
738
+            unset($ccheck);
739 739
 
740 740
             // Rewrite and/or inline referenced assets.
741
-            $code = $this->rewrite_assets( $code );
741
+            $code = $this->rewrite_assets($code);
742 742
 
743 743
             // Minify.
744
-            $code = $this->run_minifier_on( $code );
744
+            $code = $this->run_minifier_on($code);
745 745
 
746 746
             // Bring back INJECTLATER stuff.
747
-            $code = $this->inject_minified( $code );
747
+            $code = $this->inject_minified($code);
748 748
 
749 749
             // Filter results.
750
-            $tmp_code = apply_filters( 'autoptimize_css_after_minify', $code );
751
-            if ( ! empty( $tmp_code ) ) {
750
+            $tmp_code = apply_filters('autoptimize_css_after_minify', $code);
751
+            if (!empty($tmp_code)) {
752 752
                 $code = $tmp_code;
753
-                unset( $tmp_code );
753
+                unset($tmp_code);
754 754
             }
755 755
 
756
-            $this->hashmap[md5( $code )] = $hash;
756
+            $this->hashmap[md5($code)] = $hash;
757 757
         }
758 758
 
759
-        unset( $code );
759
+        unset($code);
760 760
         return true;
761 761
     }
762 762
 
763
-    public function run_minifier_on( $code )
763
+    public function run_minifier_on($code)
764 764
     {
765
-        if ( ! $this->alreadyminified ) {
766
-            $do_minify = apply_filters( 'autoptimize_css_do_minify', true );
765
+        if (!$this->alreadyminified) {
766
+            $do_minify = apply_filters('autoptimize_css_do_minify', true);
767 767
 
768
-            if ( $do_minify ) {
768
+            if ($do_minify) {
769 769
                 $cssmin   = new autoptimizeCSSmin();
770
-                $tmp_code = trim( $cssmin->run( $code ) );
770
+                $tmp_code = trim($cssmin->run($code));
771 771
 
772
-                if ( ! empty( $tmp_code ) ) {
772
+                if (!empty($tmp_code)) {
773 773
                     $code = $tmp_code;
774
-                    unset( $tmp_code );
774
+                    unset($tmp_code);
775 775
                 }
776 776
             }
777 777
         }
@@ -783,14 +783,14 @@  discard block
 block discarded – undo
783 783
     public function cache()
784 784
     {
785 785
         // CSS cache.
786
-        foreach ( $this->csscode as $media => $code ) {
787
-            $md5 = $this->hashmap[md5( $code )];
788
-            $cache = new autoptimizeCache( $md5, 'css' );
789
-            if ( ! $cache->check() ) {
786
+        foreach ($this->csscode as $media => $code) {
787
+            $md5 = $this->hashmap[md5($code)];
788
+            $cache = new autoptimizeCache($md5, 'css');
789
+            if (!$cache->check()) {
790 790
                 // Cache our code.
791
-                $cache->cache( $code, 'text/css' );
791
+                $cache->cache($code, 'text/css');
792 792
             }
793
-            $this->url[$media] = AUTOPTIMIZE_CACHE_URL . $cache->getname();
793
+            $this->url[$media] = AUTOPTIMIZE_CACHE_URL.$cache->getname();
794 794
         }
795 795
     }
796 796
 
@@ -798,136 +798,136 @@  discard block
 block discarded – undo
798 798
     public function getcontent()
799 799
     {
800 800
         // Restore the full content (only applies when "autoptimize_filter_css_justhead" filter is true).
801
-        if ( ! empty( $this->restofcontent ) ) {
801
+        if (!empty($this->restofcontent)) {
802 802
             $this->content .= $this->restofcontent;
803 803
             $this->restofcontent = '';
804 804
         }
805 805
 
806 806
         // Inject the new stylesheets.
807
-        $replaceTag = array( '<title', 'before' );
808
-        $replaceTag = apply_filters( 'autoptimize_filter_css_replacetag', $replaceTag, $this->content );
807
+        $replaceTag = array('<title', 'before');
808
+        $replaceTag = apply_filters('autoptimize_filter_css_replacetag', $replaceTag, $this->content);
809 809
 
810
-        if ( $this->inline ) {
811
-            foreach ( $this->csscode as $media => $code ) {
812
-                $this->inject_in_html( '<style type="text/css" media="' . $media . '">' . $code . '</style>', $replaceTag );
810
+        if ($this->inline) {
811
+            foreach ($this->csscode as $media => $code) {
812
+                $this->inject_in_html('<style type="text/css" media="'.$media.'">'.$code.'</style>', $replaceTag);
813 813
             }
814 814
         } else {
815
-            if ( $this->defer ) {
815
+            if ($this->defer) {
816 816
                 $preloadCssBlock = '';
817 817
                 $noScriptCssBlock = "<noscript id=\"aonoscrcss\">";
818 818
 
819 819
                 $defer_inline_code = $this->defer_inline;
820
-                if ( ! empty( $defer_inline_code ) ) {
821
-                    if ( apply_filters( 'autoptimize_filter_css_critcss_minify', true ) ) {
822
-                        $iCssHash = md5( $defer_inline_code );
823
-                        $iCssCache = new autoptimizeCache( $iCssHash, 'css' );
824
-                        if ( $iCssCache->check() ) {
820
+                if (!empty($defer_inline_code)) {
821
+                    if (apply_filters('autoptimize_filter_css_critcss_minify', true)) {
822
+                        $iCssHash = md5($defer_inline_code);
823
+                        $iCssCache = new autoptimizeCache($iCssHash, 'css');
824
+                        if ($iCssCache->check()) {
825 825
                             // we have the optimized inline CSS in cache.
826 826
                             $defer_inline_code = $iCssCache->retrieve();
827 827
                         } else {
828 828
                             $cssmin   = new autoptimizeCSSmin();
829
-                            $tmp_code = trim( $cssmin->run( $defer_inline_code ) );
829
+                            $tmp_code = trim($cssmin->run($defer_inline_code));
830 830
 
831
-                            if ( ! empty( $tmp_code ) ) {
831
+                            if (!empty($tmp_code)) {
832 832
                                 $defer_inline_code = $tmp_code;
833
-                                $iCssCache->cache( $defer_inline_code, 'text/css' );
834
-                                unset( $tmp_code );
833
+                                $iCssCache->cache($defer_inline_code, 'text/css');
834
+                                unset($tmp_code);
835 835
                             }
836 836
                         }
837 837
                     }
838 838
                     // inlined critical css set here, but injected when full CSS is injected
839 839
                     // to avoid CSS containing SVG with <title tag receiving the full CSS link.
840
-                    $inlined_ccss_block = '<style type="text/css" id="aoatfcss" media="all">' . $defer_inline_code . '</style>';
840
+                    $inlined_ccss_block = '<style type="text/css" id="aoatfcss" media="all">'.$defer_inline_code.'</style>';
841 841
                 }
842 842
             }
843 843
 
844
-            foreach ( $this->url as $media => $url ) {
845
-                $url = $this->url_replace_cdn( $url );
844
+            foreach ($this->url as $media => $url) {
845
+                $url = $this->url_replace_cdn($url);
846 846
 
847 847
                 // Add the stylesheet either deferred (import at bottom) or normal links in head.
848
-                if ( $this->defer ) {
848
+                if ($this->defer) {
849 849
                     $preloadOnLoad = autoptimizeConfig::get_ao_css_preload_onload();
850 850
 
851
-                    $preloadCssBlock .= '<link rel="preload" as="style" media="' . $media . '" href="' . $url . '" onload="' . $preloadOnLoad . '" />';
852
-                    $noScriptCssBlock .= '<link type="text/css" media="' . $media . '" href="' . $url . '" rel="stylesheet" />';
851
+                    $preloadCssBlock .= '<link rel="preload" as="style" media="'.$media.'" href="'.$url.'" onload="'.$preloadOnLoad.'" />';
852
+                    $noScriptCssBlock .= '<link type="text/css" media="'.$media.'" href="'.$url.'" rel="stylesheet" />';
853 853
                 } else {
854 854
                     // $this->inject_in_html('<link type="text/css" media="' . $media . '" href="' . $url . '" rel="stylesheet" />', $replaceTag);
855
-                    if ( strlen( $this->csscode[$media] ) > $this->cssinlinesize ) {
856
-                        $this->inject_in_html( '<link type="text/css" media="' . $media . '" href="' . $url . '" rel="stylesheet" />', $replaceTag );
857
-                    } elseif ( strlen( $this->csscode[$media] ) > 0 ) {
858
-                        $this->inject_in_html( '<style type="text/css" media="' . $media . '">' . $this->csscode[$media] . '</style>', $replaceTag );
855
+                    if (strlen($this->csscode[$media]) > $this->cssinlinesize) {
856
+                        $this->inject_in_html('<link type="text/css" media="'.$media.'" href="'.$url.'" rel="stylesheet" />', $replaceTag);
857
+                    } elseif (strlen($this->csscode[$media]) > 0) {
858
+                        $this->inject_in_html('<style type="text/css" media="'.$media.'">'.$this->csscode[$media].'</style>', $replaceTag);
859 859
                     }
860 860
                 }
861 861
             }
862 862
 
863
-            if ( $this->defer ) {
863
+            if ($this->defer) {
864 864
                 $preload_polyfill = autoptimizeConfig::get_ao_css_preload_polyfill();
865 865
                 $noScriptCssBlock .= '</noscript>';
866 866
                 // Inject inline critical CSS, the preloaded full CSS and the noscript-CSS.
867
-                $this->inject_in_html( $inlined_ccss_block . $preloadCssBlock . $noScriptCssBlock, $replaceTag );
867
+                $this->inject_in_html($inlined_ccss_block.$preloadCssBlock.$noScriptCssBlock, $replaceTag);
868 868
 
869 869
                 // Adds preload polyfill at end of body tag.
870 870
                 $this->inject_in_html(
871
-                    apply_filters( 'autoptimize_css_preload_polyfill', $preload_polyfill ),
872
-                    array( '</body>', 'before' )
871
+                    apply_filters('autoptimize_css_preload_polyfill', $preload_polyfill),
872
+                    array('</body>', 'before')
873 873
                 );
874 874
             }
875 875
         }
876 876
 
877 877
         // restore comments.
878
-        $this->content = $this->restore_comments( $this->content );
878
+        $this->content = $this->restore_comments($this->content);
879 879
 
880 880
         // restore IE hacks.
881
-        $this->content = $this->restore_iehacks( $this->content );
881
+        $this->content = $this->restore_iehacks($this->content);
882 882
 
883 883
         // restore (no)script.
884
-        $this->content = $this->restore_marked_content( 'SCRIPT', $this->content );
884
+        $this->content = $this->restore_marked_content('SCRIPT', $this->content);
885 885
 
886 886
         // Restore noptimize.
887
-        $this->content = $this->restore_noptimize( $this->content );
887
+        $this->content = $this->restore_noptimize($this->content);
888 888
 
889 889
         // Return the modified stylesheet.
890 890
         return $this->content;
891 891
     }
892 892
 
893
-    static function fixurls( $file, $code )
893
+    static function fixurls($file, $code)
894 894
     {
895 895
         // Switch all imports to the url() syntax.
896
-        $code = preg_replace( '#@import ("|\')(.+?)\.css.*?("|\')#', '@import url("${2}.css")', $code );
896
+        $code = preg_replace('#@import ("|\')(.+?)\.css.*?("|\')#', '@import url("${2}.css")', $code);
897 897
 
898
-        if ( preg_match_all( self::ASSETS_REGEX, $code, $matches ) ) {
899
-            $file = str_replace( WP_ROOT_DIR, '/', $file );
898
+        if (preg_match_all(self::ASSETS_REGEX, $code, $matches)) {
899
+            $file = str_replace(WP_ROOT_DIR, '/', $file);
900 900
             /**
901 901
              * rollback as per https://github.com/futtta/autoptimize/issues/94
902 902
              * $file = str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', $file );
903 903
              */
904
-            $dir = dirname( $file ); // Like /themes/expound/css.
904
+            $dir = dirname($file); // Like /themes/expound/css.
905 905
 
906 906
             /**
907 907
              * $dir should not contain backslashes, since it's used to replace
908 908
              * urls, but it can contain them when running on Windows because
909 909
              * fixurls() is sometimes called with `ABSPATH . 'index.php'`
910 910
              */
911
-            $dir = str_replace( '\\', '/', $dir );
912
-            unset( $file ); // not used below at all.
911
+            $dir = str_replace('\\', '/', $dir);
912
+            unset($file); // not used below at all.
913 913
 
914 914
             $replace = array();
915
-            foreach ( $matches[1] as $k => $url ) {
915
+            foreach ($matches[1] as $k => $url) {
916 916
                 // Remove quotes.
917
-                $url    = trim( $url, " \t\n\r\0\x0B\"'" );
918
-                $noQurl = trim( $url, "\"'" );
919
-                if ( $url !== $noQurl ) {
917
+                $url    = trim($url, " \t\n\r\0\x0B\"'");
918
+                $noQurl = trim($url, "\"'");
919
+                if ($url !== $noQurl) {
920 920
                     $removedQuotes = true;
921 921
                 } else {
922 922
                     $removedQuotes = false;
923 923
                 }
924 924
 
925
-                if ( '' === $noQurl ) {
925
+                if ('' === $noQurl) {
926 926
                     continue;
927 927
                 }
928 928
 
929 929
                 $url = $noQurl;
930
-                if ( '/' === $url{0} || preg_match( '#^(https?://|ftp://|data:)#i', $url ) ) {
930
+                if ('/' === $url{0} || preg_match('#^(https?://|ftp://|data:)#i', $url)) {
931 931
                     // URL is protocol-relative, host-relative or something we don't touch.
932 932
                     continue;
933 933
                 } else {
@@ -936,49 +936,49 @@  discard block
 block discarded – undo
936 936
                      * rollback as per https://github.com/futtta/autoptimize/issues/94
937 937
                      * $newurl = preg_replace( '/https?:/', '', str_replace( ' ', '%20', AUTOPTIMIZE_WP_CONTENT_URL . str_replace( '//', '/', $dir . '/' . $url ) ) );
938 938
                      */
939
-                    $newurl = preg_replace( '/https?:/', '', str_replace( ' ', '%20', AUTOPTIMIZE_WP_ROOT_URL . str_replace( '//', '/', $dir . '/' . $url ) ) );
940
-                    $newurl = apply_filters( 'autoptimize_filter_css_fixurl_newurl', $newurl );
939
+                    $newurl = preg_replace('/https?:/', '', str_replace(' ', '%20', AUTOPTIMIZE_WP_ROOT_URL.str_replace('//', '/', $dir.'/'.$url)));
940
+                    $newurl = apply_filters('autoptimize_filter_css_fixurl_newurl', $newurl);
941 941
 
942 942
                     /**
943 943
                      * Hash the url + whatever was behind potentially for replacement
944 944
                      * We must do this, or different css classes referencing the same bg image (but
945 945
                      * different parts of it, say, in sprites and such) loose their stuff...
946 946
                      */
947
-                    $hash = md5( $url . $matches[2][$k] );
948
-                    $code = str_replace( $matches[0][$k], $hash, $code );
947
+                    $hash = md5($url.$matches[2][$k]);
948
+                    $code = str_replace($matches[0][$k], $hash, $code);
949 949
 
950
-                    if ( $removedQuotes ) {
951
-                        $replace[$hash] = "url('" . $newurl . "')" . $matches[2][$k];
950
+                    if ($removedQuotes) {
951
+                        $replace[$hash] = "url('".$newurl."')".$matches[2][$k];
952 952
                     } else {
953
-                        $replace[$hash] = 'url(' . $newurl . ')' . $matches[2][$k];
953
+                        $replace[$hash] = 'url('.$newurl.')'.$matches[2][$k];
954 954
                     }
955 955
                 }
956 956
             }
957 957
 
958
-            $code = self::replace_longest_matches_first( $code, $replace );
958
+            $code = self::replace_longest_matches_first($code, $replace);
959 959
         }
960 960
 
961 961
         return $code;
962 962
     }
963 963
 
964
-    private function ismovable( $tag )
964
+    private function ismovable($tag)
965 965
     {
966
-        if ( ! $this->aggregate ) {
966
+        if (!$this->aggregate) {
967 967
             return false;
968 968
         }
969 969
 
970
-        if ( ! empty( $this->whitelist ) ) {
971
-            foreach ( $this->whitelist as $match ) {
972
-                if ( false !== strpos( $tag, $match ) ) {
970
+        if (!empty($this->whitelist)) {
971
+            foreach ($this->whitelist as $match) {
972
+                if (false !== strpos($tag, $match)) {
973 973
                     return true;
974 974
                 }
975 975
             }
976 976
             // no match with whitelist.
977 977
             return false;
978 978
         } else {
979
-            if ( is_array( $this->dontmove ) && ! empty( $this->dontmove ) ) {
980
-                foreach ( $this->dontmove as $match ) {
981
-                    if ( false !== strpos( $tag, $match ) ) {
979
+            if (is_array($this->dontmove) && !empty($this->dontmove)) {
980
+                foreach ($this->dontmove as $match) {
981
+                    if (false !== strpos($tag, $match)) {
982 982
                         // Matched something.
983 983
                         return false;
984 984
                     }
@@ -990,22 +990,22 @@  discard block
 block discarded – undo
990 990
         }
991 991
     }
992 992
 
993
-    private function can_inject_late( $cssPath, $css )
993
+    private function can_inject_late($cssPath, $css)
994 994
     {
995
-        $consider_minified_array = apply_filters( 'autoptimize_filter_css_consider_minified', false, $cssPath );
996
-        if ( true !== $this->inject_min_late ) {
995
+        $consider_minified_array = apply_filters('autoptimize_filter_css_consider_minified', false, $cssPath);
996
+        if (true !== $this->inject_min_late) {
997 997
             // late-inject turned off.
998 998
             return false;
999
-        } elseif ( ( false === strpos( $cssPath, 'min.css' ) ) && ( str_replace( $consider_minified_array, '', $cssPath ) === $cssPath ) ) {
999
+        } elseif ((false === strpos($cssPath, 'min.css')) && (str_replace($consider_minified_array, '', $cssPath) === $cssPath)) {
1000 1000
             // file not minified based on filename & filter.
1001 1001
             return false;
1002
-        } elseif ( false !== strpos( $css, '@import' ) ) {
1002
+        } elseif (false !== strpos($css, '@import')) {
1003 1003
             // can't late-inject files with imports as those need to be aggregated.
1004 1004
             return false;
1005
-        } elseif ( ( false !== strpos( $css, '@font-face' ) ) && ( apply_filters( 'autoptimize_filter_css_fonts_cdn', false ) === true ) && ( ! empty( $this->cdn_url ) ) ) {
1005
+        } elseif ((false !== strpos($css, '@font-face')) && (apply_filters('autoptimize_filter_css_fonts_cdn', false) === true) && (!empty($this->cdn_url))) {
1006 1006
             // don't late-inject CSS with font-src's if fonts are set to be CDN'ed.
1007 1007
             return false;
1008
-        } elseif ( ( ( $this->datauris == true ) || ( ! empty( $this->cdn_url ) ) ) && preg_match( '#background[^;}]*url\(#Ui', $css ) ) {
1008
+        } elseif ((($this->datauris == true) || (!empty($this->cdn_url))) && preg_match('#background[^;}]*url\(#Ui', $css)) {
1009 1009
             // don't late-inject CSS with images if CDN is set OR if image inlining is on.
1010 1010
             return false;
1011 1011
         } else {
@@ -1023,32 +1023,32 @@  discard block
 block discarded – undo
1023 1023
      *
1024 1024
      * @return bool|string Url pointing to the minified css file or false.
1025 1025
      */
1026
-    public function minify_single( $filepath, $cache_miss = false )
1026
+    public function minify_single($filepath, $cache_miss = false)
1027 1027
     {
1028
-        $contents = $this->prepare_minify_single( $filepath );
1028
+        $contents = $this->prepare_minify_single($filepath);
1029 1029
 
1030
-        if ( empty( $contents ) ) {
1030
+        if (empty($contents)) {
1031 1031
             return false;
1032 1032
         }
1033 1033
 
1034 1034
         // Check cache.
1035
-        $hash  = 'single_' . md5( $contents );
1036
-        $cache = new autoptimizeCache( $hash, 'css' );
1035
+        $hash  = 'single_'.md5($contents);
1036
+        $cache = new autoptimizeCache($hash, 'css');
1037 1037
 
1038 1038
         // If not in cache already, minify...
1039
-        if ( ! $cache->check() || $cache_miss ) {
1039
+        if (!$cache->check() || $cache_miss) {
1040 1040
             // Fixurls...
1041
-            $contents = self::fixurls( $filepath, $contents );
1041
+            $contents = self::fixurls($filepath, $contents);
1042 1042
             // CDN-replace any referenced assets if needed...
1043
-            $contents = $this->replace_urls( $contents );
1043
+            $contents = $this->replace_urls($contents);
1044 1044
             // Now minify...
1045 1045
             $cssmin   = new autoptimizeCSSmin();
1046
-            $contents = trim( $cssmin->run( $contents ) );
1046
+            $contents = trim($cssmin->run($contents));
1047 1047
             // Store in cache.
1048
-            $cache->cache( $contents, 'text/css' );
1048
+            $cache->cache($contents, 'text/css');
1049 1049
         }
1050 1050
 
1051
-        $url = $this->build_minify_single_url( $cache );
1051
+        $url = $this->build_minify_single_url($cache);
1052 1052
 
1053 1053
         return $url;
1054 1054
     }
@@ -1068,18 +1068,18 @@  discard block
 block discarded – undo
1068 1068
         return $this->options;
1069 1069
     }
1070 1070
 
1071
-    public function replaceOptions( $options )
1071
+    public function replaceOptions($options)
1072 1072
     {
1073 1073
         $this->options = $options;
1074 1074
     }
1075 1075
 
1076
-    public function setOption( $name, $value )
1076
+    public function setOption($name, $value)
1077 1077
     {
1078 1078
         $this->options[$name] = $value;
1079 1079
         $this->$name = $value;
1080 1080
     }
1081 1081
 
1082
-    public function getOption( $name )
1082
+    public function getOption($name)
1083 1083
     {
1084 1084
         return $this->options[$name];
1085 1085
     }
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
-                $site_url  = esc_url( site_url() );
64
-                $ao_mailto = apply_filters( 'autoptimize_filter_cachecheck_mailto', get_option( 'admin_email', '' ) );
65
-
66
-                $ao_mailsubject = __( 'Autoptimize cache size warning', 'autoptimize' ) . ' (' . $site_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: ' . $site_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
+                $site_url  = esc_url(site_url());
64
+                $ao_mailto = apply_filters('autoptimize_filter_cachecheck_mailto', get_option('admin_email', ''));
65
+
66
+                $ao_mailsubject = __('Autoptimize cache size warning', 'autoptimize').' ('.$site_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: '.$site_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.