PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 4.7.0
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v4.7.0
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
← All changes | templates/minify/advanced-tab.php +116 -98 3.2.5 → 4.7.0 View file →
@@ -1,22 +1,22 @@
1 -<?php if (!defined('WPO_VERSION')) die('No direct access allowed'); ?>
1 +<?php if (!defined('ABSPATH')) die('No direct access allowed'); ?>
2 2 <div id="wp-optimize-minify-advanced" class="wpo_section wpo_group">
3 - <h3><?php _e('Minify cache information', 'wp-optimize'); ?></h3>
3 + <h3><?php esc_html_e('Minify cache information', 'wp-optimize'); ?></h3>
4 4 <div class="wpo-fieldgroup">
5 5 <p>
6 - <?php _e('Current cache path:', 'wp-optimize'); ?>
6 + <?php esc_html_e('Current cache path:', 'wp-optimize'); ?>
7 7 <strong class="wpo_min_cache_path">
8 8 <?php
9 9
10 - $cache_path = WPO_MINIFY_PHP_VERSION_MET ? WP_Optimize_Minify_Cache_Functions::cache_path() : array("cachedir" => __('none', 'wp-optimize'));
11 - echo htmlspecialchars($cache_path['cachedir']);
10 + $cache_path = WP_Optimize_Minify_Cache_Functions::cache_path();
11 + echo esc_html($cache_path['cachedir']);
12 12 ?>
13 13 </strong>
14 14 </p>
15 15
16 - <h3><?php _e('List of processed files', 'wp-optimize'); ?></h3>
16 + <h3><?php esc_html_e('List of processed files', 'wp-optimize'); ?></h3>
17 17
18 - <h4><?php _e('JavaScript files', 'wp-optimize'); ?></h4>
18 + <h4><?php esc_html_e('JavaScript files', 'wp-optimize'); ?></h4>
19 19 <div id="wpo_min_jsprocessed">
20 20 <ul class="processed">
21 21 <?php
22 22 $processed_js = 0;
@@ -27,9 +27,10 @@
27 27 WP_Optimize()->include_template(
28 28 'minify/cached-file.php',
29 29 false,
30 30 array(
31 - 'file' => $js_file
31 + 'file' => $js_file,
32 + 'minify_config' => wp_optimize_minify_config()->get(),
32 33 )
33 34 );
34 35 }
35 36 }
@@ -34,17 +35,17 @@
34 35 }
35 36 }
36 37 ?>
37 38 <li class="no-files-yet<?php echo $processed_js ? ' hidden' : ''; ?>">
38 - <span class="filename"><?php _e('There are no processed files yet.', 'wp-optimize'); ?></span>
39 + <span class="filename"><?php esc_html_e('There are no processed files yet.', 'wp-optimize'); ?></span>
39 40 </li>
40 41 </ul>
41 42 </div>
42 43
43 - <h4><?php _e('CSS files', 'wp-optimize'); ?></h4>
44 + <h4><?php esc_html_e('CSS files', 'wp-optimize'); ?></h4>
44 45 <div id="wpo_min_cssprocessed">
45 46 <?php if ($wpo_minify_options['inline_css']) : ?>
46 - <p><?php _e('There are no merged CSS files listed here, because you are inlining all CSS directly', 'wp-optimize'); ?></p>
47 + <p><?php esc_html_e('There are no merged CSS files listed here, because you are inlining all CSS directly', 'wp-optimize'); ?></p>
47 48 <?php else : ?>
48 49 <ul class="processed">
49 50 <?php
50 51 $processed_css = 0;
@@ -54,9 +55,10 @@
54 55 WP_Optimize()->include_template(
55 56 'minify/cached-file.php',
56 57 false,
57 58 array(
58 - 'file' => $css_file
59 + 'file' => $css_file,
60 + 'minify_config' => wp_optimize_minify_config()->get(),
59 61 )
60 62 );
61 63 }
62 64 }
@@ -62,9 +64,9 @@
62 64 }
63 65 // No files were found
64 66 ?>
65 67 <li class="no-files-yet<?php echo $processed_css ? ' hidden' : ''; ?>">
66 - <span class="filename"><?php _e('There are no processed files yet.', 'wp-optimize'); ?></span>
68 + <span class="filename"><?php esc_html_e('There are no processed files yet.', 'wp-optimize'); ?></span>
67 69 </li>
68 70 </ul>
69 71 <?php endif; ?>
70 72 </div>
@@ -72,13 +74,13 @@
72 74 </div>
73 75
74 76 <form method="post" action="#">
75 77
76 - <h3><?php _e('Advanced options', 'wp-optimize'); ?></h3>
78 + <h3><?php esc_html_e('Advanced options', 'wp-optimize'); ?></h3>
77 79 <div class="wpo-fieldgroup">
78 80 <div class="wpo-fieldgroup__subgroup">
79 81 <label for="wpo_min_cache_lifespan">
80 - <?php _e('Cache lifespan', 'wp-optimize'); ?>
82 + <?php esc_html_e('Cache lifespan', 'wp-optimize'); ?>
81 83 </label>
82 84 <p>
83 85 <input
84 86 name="cache_lifespan"
@@ -86,13 +88,13 @@
86 88 class="cache_lifespan wpo-save-setting"
87 89 type="number"
88 90 min="0"
89 91 value="<?php echo intval($wpo_minify_options['cache_lifespan']);?>"
90 - > <?php _e('days', 'wp-optimize'); ?>
92 + > <?php esc_html_e('days', 'wp-optimize'); ?>
91 93 </p>
92 94 <p>
93 - <?php _e('In order to prevent broken pages when using a third party page caching, WP-Optimize keeps the stale minified cache for 30 days.', 'wp-optimize'); ?>
94 - <br><?php _e('Enter 0 to never keep stale cache.', 'wp-optimize'); ?>
95 + <?php esc_html_e('In order to prevent broken pages when using a third party page caching, WP-Optimize keeps the stale minified cache for 30 days.', 'wp-optimize'); ?>
96 + <br><?php esc_html_e('Enter 0 to never keep stale cache.', 'wp-optimize'); ?>
95 97 </p>
96 98 </div>
97 99
98 100 <div class="switch-container">
@@ -107,14 +109,14 @@
107 109 >
108 110 <span class="slider round"></span>
109 111 </label>
110 112 <label for="wpo_min_enable_minify_debug">
111 - <?php _e('Enable debug mode', 'wp-optimize'); ?>
113 + <?php esc_html_e('Enable debug mode', 'wp-optimize'); ?>
112 114 </label>
113 115 </div>
114 - <p><?php _e('Enabling the debug mode will add various comments and show more information in the files list.', 'wp-optimize'); ?> <?php _e('It also adds extra actions in the status tab.', 'wp-optimize'); ?></p>
116 + <p><?php esc_html_e('Enabling the debug mode will add various comments and show more information in the files list.', 'wp-optimize'); ?> <?php esc_html_e('It also adds extra actions in the status tab.', 'wp-optimize'); ?></p>
115 117 </div>
116 - <h3><?php _e('Default exclusions', 'wp-optimize'); ?></h3>
118 + <h3><?php esc_html_e('Default exclusions', 'wp-optimize'); ?></h3>
117 119 <div class="wpo-fieldgroup">
118 120 <div class="switch-container">
119 121 <label class="switch">
120 122 <input
@@ -127,30 +129,30 @@
127 129 >
128 130 <span class="slider round"></span>
129 131 </label>
130 132 <label for="wpo_min_edit_default_exclutions">
131 - <?php _e('Edit default exclusions', 'wp-optimize'); ?>
133 + <?php esc_html_e('Edit default exclusions', 'wp-optimize'); ?>
132 134 </label>
133 135 </div>
134 - <p><?php _e('By default, WP-Optimize excludes a list of files that are known to cause problems when minified or combined.'); ?>
135 - <?php _e('Enable this option to see or edit those files.'); ?></p>
136 + <p><?php esc_html_e('By default, WP-Optimize excludes a list of files that are known to cause problems when minified or combined.', 'wp-optimize'); ?>
137 + <?php esc_html_e('Enable this option to see or edit those files.', 'wp-optimize'); ?></p>
136 138 <div class="wpo-minify-default-exclusions<?php echo $wpo_minify_options['edit_default_exclutions'] ? '' : ' hidden'; ?>">
137 - <h3><?php _e('Known incompatible files', 'wp-optimize'); ?></h3>
139 + <h3><?php esc_html_e('Known incompatible files', 'wp-optimize'); ?></h3>
138 140 <fieldset>
139 - <label for="ignore_list">
140 - <?php _e('List of files that can\'t or shouldn\'t be minified or merged.', 'wp-optimize'); ?>
141 - <?php _e('Do not edit this if you are not sure what it is.', 'wp-optimize'); ?>
142 - <br><?php _e('Tick the checkbox to merge / minify the corresponding file anyways.', 'wp-optimize'); ?>
143 - <span tabindex="0" data-tooltip="<?php esc_attr_e('Files that have been consistently reported by other users to cause trouble when merged', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
144 - </label>
141 + <p>
142 + <?php esc_html_e('List of files that can\'t or shouldn\'t be minified or merged.', 'wp-optimize'); ?>
143 + <?php esc_html_e('Do not edit this if you are not sure what it is.', 'wp-optimize'); ?>
144 + <br><?php esc_html_e('Tick the checkbox to merge / minify the corresponding file anyways.', 'wp-optimize'); ?>
145 + <span tabindex="0" class="wpo-tooltip" data-tooltip="<?php esc_attr_e('Files that have been consistently reported by other users to cause trouble when merged', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
146 + </p>
145 147 <?php
146 148 $user_excluded_ignorelist_items = is_array($wpo_minify_options['ignore_list']) ? $wpo_minify_options['ignore_list'] : array();
147 149 if (empty($default_ignore)) {
148 - echo '<p>'.__('Refresh the page to see the list', 'wp-optimize').'</p>';
150 + echo '<p>'.esc_html__('Refresh the page to see the list', 'wp-optimize').'</p>';
149 151 } else {
150 152 foreach ($default_ignore as $ignore_item) {
151 153 ?>
152 - <label class="ignore-list-item"><input type="checkbox" name="ignore_list[]" value="<?php echo esc_attr($ignore_item); ?>"<?php checked(in_array($ignore_item, $user_excluded_ignorelist_items)); ?>><span class="ignore-item"><?php echo $ignore_item; ?></span></label>
154 + <label class="ignore-list-item"><input type="checkbox" name="ignore_list[]" value="<?php echo esc_attr($ignore_item); ?>"<?php checked(in_array($ignore_item, $user_excluded_ignorelist_items)); ?>><span class="ignore-item"><?php echo esc_html($ignore_item); ?></span></label>
153 155 <?php
154 156 }
155 157 }
156 158 ?>
@@ -155,23 +157,23 @@
155 157 }
156 158 ?>
157 159 </fieldset>
158 160
159 - <h3><?php _e('IE incompatible files', 'wp-optimize'); ?></h3>
161 + <h3><?php esc_html_e('IE incompatible files', 'wp-optimize'); ?></h3>
160 162 <fieldset>
161 - <label for="blacklist">
162 - <?php _e('List of excluded files used for IE compatibility.', 'wp-optimize'); ?>
163 - <?php _e('Do not edit this if you are not sure what it is.', 'wp-optimize'); ?>
164 - <br><?php _e('Tick the checkbox to merge / minify the corresponding file anyways.', 'wp-optimize'); ?>
165 - </label>
163 + <p>
164 + <?php esc_html_e('List of excluded files used for IE compatibility.', 'wp-optimize'); ?>
165 + <?php esc_html_e('Do not edit this if you are not sure what it is.', 'wp-optimize'); ?>
166 + <br><?php esc_html_e('Tick the checkbox to merge / minify the corresponding file anyways.', 'wp-optimize'); ?>
167 + </p>
166 168 <?php
167 169 $user_excluded_blacklist_items = is_array($wpo_minify_options['blacklist']) ? $wpo_minify_options['blacklist'] : array();
168 170 if (empty($default_ie_blacklist)) {
169 - echo '<p>'.__('Refresh the page to see the list', 'wp-optimize').'</p>';
171 + echo '<p>'.esc_html__('Refresh the page to see the list', 'wp-optimize').'</p>';
170 172 } else {
171 173 foreach ($default_ie_blacklist as $blacklist_item) {
172 174 ?>
173 - <label class="black-list-item"><input type="checkbox" name="blacklist[]" value="<?php echo esc_attr($blacklist_item); ?>"<?php checked(in_array($blacklist_item, $user_excluded_blacklist_items)); ?>><span class="ignore-item"><?php echo $blacklist_item; ?></span></label>
175 + <label class="black-list-item"><input type="checkbox" name="blacklist[]" value="<?php echo esc_attr($blacklist_item); ?>"<?php checked(in_array($blacklist_item, $user_excluded_blacklist_items)); ?>><span class="ignore-item"><?php echo esc_html($blacklist_item); ?></span></label>
174 176 <?php
175 177 }
176 178 }
177 179 ?>
@@ -181,9 +183,10 @@
181 183
182 184 <?php if (WP_OPTIMIZE_SHOW_MINIFY_ADVANCED) : ?>
183 185 <div class="wpo-fieldgroup">
184 186 <fieldset>
185 - <br />
187 + <div class="wpo-fieldgroup__subgroup">
188 + <br>
186 189 <label for="enabled_css_preload">
187 190 <input
188 191 name="enabled_css_preload"
189 192 type="checkbox"
@@ -190,12 +193,13 @@
190 193 id="enabled_css_preload"
191 194 value="1"
192 195 <?php echo checked($wpo_minify_options['enabled_css_preload']); ?>
193 196 >
194 - <?php _e('Enable WP-O Minify CSS files preloading', 'wp-optimize'); ?>
195 - <span tabindex="0" data-tooltip="<?php esc_attr_e('Automatically create HTTP headers for WP-O Minify-generated CSS files (when not inlined)', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
197 + <?php esc_html_e('Enable WP-O Minify CSS files preloading', 'wp-optimize'); ?>
196 198 </label>
197 - <br />
199 + <span tabindex="0" class="wpo-tooltip" data-tooltip="<?php esc_attr_e('Automatically create HTTP headers for WP-O Minify-generated CSS files (when not inlined)', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
200 + </div>
201 + <div class="wpo-fieldgroup__subgroup">
198 202 <label for="enabled_js_preload">
199 203 <input
200 204 name="enabled_js_preload"
201 205 type="checkbox"
@@ -202,35 +206,41 @@
202 206 id="enabled_js_preload"
203 207 value="1"
204 208 <?php echo checked($wpo_minify_options['enabled_js_preload']); ?>
205 209 >
206 - <?php _e('Enable WP-O Minify JavaScript files Preload', 'wp-optimize'); ?>
207 - <span tabindex="0" data-tooltip="<?php esc_attr_e('Automatically create HTTP headers for WP-O Minify-generated JS files', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
210 + <?php esc_html_e('Enable WP-O Minify JavaScript files Preload', 'wp-optimize'); ?>
208 211 </label>
209 - </fieldset>
210 - </div>
212 + <span tabindex="0" class="wpo-tooltip" data-tooltip="<?php esc_attr_e('Automatically create HTTP headers for WP-O Minify-generated JS files', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
213 + </div>
214 + </fieldset>
215 + </div>
211 216 <h3 class="title">
212 - <?php _e('HTTP Headers', 'wp-optimize'); ?>
217 + <?php esc_html_e('HTTP Headers', 'wp-optimize'); ?>
213 218 </h3>
214 219 <p class="wpo_min-bold-green">
215 - <?php _e('Preconnect Headers: This will add link headers to your HTTP response to instruct the browser to preconnect to other domains (e.g.: fonts, images, videos, etc)', 'wp-optimize'); ?>
220 + <?php esc_html_e('Preconnect Headers: This will add link headers to your HTTP response to instruct the browser to preconnect to other domains (e.g.: fonts, images, videos, etc)', 'wp-optimize'); ?>
216 221 </p>
217 222 <p class="wpo_min-bold-green">
218 - <?php _e('Preload Headers: Use this for preloading specific, high priority resources that exist across all of your pages.', 'wp-optimize'); ?>
223 + <?php esc_html_e('Preload Headers: Use this for preloading specific, high priority resources that exist across all of your pages.', 'wp-optimize'); ?>
219 224 </p>
220 225 <p class="wpo_min-bold-green">
221 - <?php _e('Note: Some servers do not support http push or headers. If you get a server error: a) rename the plugin directory via (S)FTP or your hosting control panel, b) go to your plugins page (plugin will be disabled on access), c) rename it back and d) activate it back (reset to default settings).', 'wp-optimize'); ?>
226 + <?php
227 + $message = __('Note: Some servers do not support HTTP push or headers.', 'wp-optimize');
228 + $message .= ' ';
229 + $message .= __('If you get a server error: a) rename the plugin directory via (S)FTP or your hosting control panel, b) go to your plugins page (plugin will be disabled on access), c) rename it back and d) activate it back (reset to default settings).', 'wp-optimize');
230 + echo esc_html($message);
231 + ?>
222 232 </p>
223 233
224 - <h3><?php _e('Preconnect Headers', 'wp-optimize'); ?></h3>
234 + <h3><?php esc_html_e('Preconnect Headers', 'wp-optimize'); ?></h3>
225 235 <div class="wpo-fieldgroup">
226 236 <fieldset>
227 237 <legend class="screen-reader-text">
228 - <?php _e('Preconnect', 'wp-optimize'); ?>
238 + <?php esc_html_e('Preconnect', 'wp-optimize'); ?>
229 239 </legend>
230 240 <label for="hpreconnect">
231 241 <span class="wpo_min-label-pad">
232 - <?php _e('Use only the strictly minimum necessary domain names, (CDN or frequent embeds):', 'wp-optimize'); ?>
242 + <?php esc_html_e('Use only the strictly minimum necessary domain names, (CDN or frequent embeds):', 'wp-optimize'); ?>
233 243 </span>
234 244 </label>
235 245 <textarea
236 246 name="hpreconnect"
@@ -241,41 +251,46 @@
241 251 placeholder="https://cdn.example.com"
242 252 disabled
243 253 ><?php echo esc_textarea($wpo_minify_options['hpreconnect']); ?></textarea>
244 254 <p>
245 - <?php _e('Use the complete scheme (http:// or https://) followed by the domain name only (no file paths).', 'wp-optimize'); ?>
255 + <?php esc_html_e('Use the complete scheme (http:// or https://) followed by the domain name only (no file paths).', 'wp-optimize'); ?>
246 256 </p>
247 257 <p>
248 - <?php _e('Examples: https://fonts.googleapis.com, https://fonts.gstatic.com', 'wp-optimize'); ?>
258 + <?php esc_html_e('Examples: https://fonts.googleapis.com, https://fonts.gstatic.com', 'wp-optimize'); ?>
249 259 </p>
250 260 </fieldset>
251 261 </div>
252 262
253 - <h3><?php _e('External URLs to merge', 'wp-optimize'); ?></h3>
263 + <h3><?php esc_html_e('External URLs to merge', 'wp-optimize'); ?></h3>
254 264 <div class="wpo-fieldgroup">
255 265 <fieldset>
256 - <label for="merge_allowed_urls">
257 - <?php _e('List of external domains that can be fetched and merged:', 'wp-optimize'); ?>
258 - <span tabindex="0" data-tooltip="<?php esc_attr_e('Add any external "domain" for JavaScript or CSS files that can be fetched and merged by WP-Optimize, e.g.: cdnjs.cloudflare.com', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
259 - </label>
260 - <textarea
261 - name="merge_allowed_urls"
262 - rows="7"
263 - cols="50"
264 - id="merge_allowed_urls"
265 - class="large-text code"
266 - placeholder="<?php esc_attr_e('e.g.: example.com', 'wp-optimize'); ?>"
267 - ><?php echo esc_textarea($wpo_minify_options['merge_allowed_urls']); ?></textarea>
266 + <div class="wpo-fieldgroup__subgroup">
267 + <label for="merge_allowed_urls">
268 + <?php esc_html_e('List of external domains that can be fetched and merged:', 'wp-optimize'); ?>
269 + </label>
270 + <span tabindex="0" class="wpo-tooltip" data-tooltip="<?php esc_attr_e('Add any external "domain" for JavaScript or CSS files that can be fetched and merged by WP-Optimize, e.g.: cdnjs.cloudflare.com', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
271 + <textarea
272 + name="merge_allowed_urls"
273 + rows="7"
274 + cols="50"
275 + id="merge_allowed_urls"
276 + class="large-text code"
277 + placeholder="<?php esc_attr_e('e.g.: example.com', 'wp-optimize'); ?>"
278 + ><?php echo esc_textarea($wpo_minify_options['merge_allowed_urls']); ?></textarea>
279 + </div>
268 280 </fieldset>
269 281 </div>
270 282
271 - <h1><?php _e('CDN Options', 'wp-optimize'); ?></h1>
283 + <h1><?php esc_html_e('CDN Options', 'wp-optimize'); ?></h1>
272 284 <p class="wpo_min-bold-green">
273 - <?php printf(__('When the "Enable defer on processed JavaScript files" option is enabled, JavaScript and CSS files will not be loaded from the CDN due to %scompatibility%s reasons.', 'wp-optimize'), '<a target="_blank" href="https://www.chromestatus.com/feature/5718547946799104">', '</a>'); ?>
274 - <?php _e('However, you can define a CDN Domain below, in order to use it for all of the static assets "inside" your CSS and JS files.', 'wp-optimize'); ?>
285 + <?php
286 + // translators: %1$s is opening anchor tag and %2$s is closing anchor tag
287 + printf(esc_html__('When the "Enable defer on processed JavaScript files" option is enabled, JavaScript and CSS files will not be loaded from the CDN due to %1$scompatibility%2$s reasons.', 'wp-optimize'), '<a target="_blank" href="https://www.chromestatus.com/feature/5718547946799104">', '</a>');
288 + esc_html_e('However, you can define a CDN Domain below, in order to use it for all of the static assets "inside" your CSS and JS files.', 'wp-optimize');
289 + ?>
275 290 </p>
276 291
277 - <h3><?php _e('Your CDN domain', 'wp-optimize'); ?></h3>
292 + <h3><?php esc_html_e('Your CDN domain', 'wp-optimize'); ?></h3>
278 293 <div class="wpo-fieldgroup">
279 294 <fieldset>
280 295 <label for="cdn_url">
281 296 <p>
@@ -284,46 +299,49 @@
284 299 name="cdn_url"
285 300 id="cdn_url"
286 301 value="<?php echo isset($wpo_minify_options['cdn_url']) ? esc_attr($wpo_minify_options['cdn_url']) : ''; ?>"
287 302 size="80"
288 - />
303 + >
289 304 </p>
290 305 <p>
291 - <?php _e('Will rewrite the static assets urls inside WP-O Minify-merged files to your CDN domain. Usage: cdn.example.com', 'wp-optimize'); ?>
306 + <?php
307 + $message = __('Will rewrite the static assets urls inside WP-O Minify-merged files to your CDN domain.', 'wp-optimize');
308 + $message .= ' ';
309 + $message .= __('Usage: cdn.example.com', 'wp-optimize');
310 + echo esc_html($message);
311 + ?>
292 312 </p>
293 313 </label>
294 314 </fieldset>
295 315 </div>
296 316
297 - <h3><?php _e('Force the CDN Usage', 'wp-optimize'); ?></h3>
317 + <h3><?php esc_html_e('Force the CDN Usage', 'wp-optimize'); ?></h3>
298 318 <div class="wpo-fieldgroup">
299 319 <p class="wpo_min-bold-green wpo_min-rowintro">
300 - <?php _e('If you force this, your JS files may not load for certain slow internet users on Google Chrome.', 'wp-optimize'); ?>
320 + <?php esc_html_e('If you force this, your JS files may not load for certain slow internet users on Google Chrome.', 'wp-optimize'); ?>
301 321 </p>
302 322 <fieldset>
303 - <label for="cdn_force">
304 - <input
305 - name="cdn_force"
306 - type="checkbox"
307 - id="cdn_force"
308 - value="1"
309 - <?php echo checked($wpo_minify_options['cdn_force']); ?>
310 - >
311 - <?php _e('I know what I\'m doing...', 'wp-optimize'); ?>
312 - <span tabindex="0" data-tooltip="<?php esc_attr_e('Load my JS files from the CDN, even when "defer for Pagespeed Insights" is enabled', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
313 - </label>
323 + <div class="wpo-fieldgroup__subgroup">
324 + <label for="cdn_force">
325 + <input
326 + name="cdn_force"
327 + type="checkbox"
328 + id="cdn_force"
329 + value="1"
330 + <?php echo checked($wpo_minify_options['cdn_force']); ?>
331 + >
332 + <?php esc_html_e('I know what I\'m doing...', 'wp-optimize'); ?>
333 + </label>
334 + <span tabindex="0" class="wpo-tooltip" data-tooltip="<?php esc_attr_e('Load my JS files from the CDN, even when "defer for Pagespeed Insights" is enabled', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
335 + </div>
314 336 </fieldset>
315 337 </div>
316 338 <?php endif; ?>
317 339
318 - <p class="submit">
319 - <input
320 - class="wp-optimize-save-minify-settings button button-primary"
321 - type="submit"
322 - value="<?php esc_attr_e('Save settings', 'wp-optimize'); ?>"
323 - >
324 - <img class="wpo_spinner" src="<?php echo esc_attr(admin_url('images/spinner-2x.gif')); ?>" alt="...">
340 + <div class="wpo-save-btn-container">
341 + <input class="wp-optimize-save-minify-settings button button-primary" type="submit" value="<?php esc_attr_e('Save settings', 'wp-optimize'); ?>">
342 + <img class="wpo_spinner" src="<?php echo esc_url(admin_url('images/spinner-2x.gif')); // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage -- N/A ?>" alt="...">
325 343 <span class="save-done dashicons dashicons-yes display-none"></span>
326 - </p>
344 + </div>
327 345 <input type="hidden" name="minify_advanced_tab" value="1">
328 346 </form>
329 347 </div>