PluginProbe ʕ •ᴥ•ʔ
10Web Booster – Website speed optimization, Cache & Page Speed optimizer / trunk
10Web Booster – Website speed optimization, Cache & Page Speed optimizer vtrunk
2.33.0 2.30.5 2.30.7 2.30.9 2.31.10 2.31.8 2.32.11 2.32.21 2.32.3 2.32.4 2.32.7 2.6.31 2.6.40 2.6.42 2.6.7 2.7.37 2.7.44 2.7.47 2.8.18 2.8.19 2.8.32 2.8.34 2.8.35 2.9.23 2.9.24 2.9.25 2.9.27 v2.27.4 trunk 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.17 2.0.18 2.0.21 2.0.22 2.0.25 2.0.26 2.0.27 2.0.3 2.0.7 2.0.9 2.10.46 2.10.65 2.10.66 2.10.68 2.11.41 2.11.42 2.11.43 2.12.15 2.12.21 2.12.22 2.12.23 2.12.26 2.13.37 2.13.40 2.13.41 2.13.42 2.13.44 2.13.45 2.13.47 2.14.49 2.14.50 2.15.18 2.17.21 2.17.23 2.18.17 2.19.44 2.19.45 2.19.46 2.19.49 2.2.12 2.2.15 2.2.16 2.2.18 2.2.8 2.20.31 2.20.32 2.20.33 2.21.11 2.21.12 2.21.16 2.21.25 2.22.32 2.23.13 2.23.15 2.23.16 2.23.18 2.24.12 2.24.14 2.24.18 2.25.14 2.26.6 2.28.10 2.28.13 2.28.14 2.28.7 2.29.1 2.29.2 2.29.3 2.3.0 2.3.1 2.3.2 2.3.3 2.30.18
tenweb-speed-optimizer / views / settings_view.php
tenweb-speed-optimizer / views Last commit date
templates 2 years ago autoupdate_banner.php 2 years ago cdn_page.php 2 years ago customer_support.php 2 years ago deactivation_popup.php 2 years ago post_custom_column.php 2 years ago referral_program_page.php 2 years ago settings_basic.php 11 months ago settings_connect.php 3 years ago settings_view.php 1 year ago two_black_friday.php 3 years ago two_header.php 3 years ago white_label_view.php 2 years ago
settings_view.php
1006 lines
1 <?php
2 global $TwoSettings;
3
4 use TenWebOptimizer\ExcludeJsFromDelay;
5 use TenWebOptimizer\OptimizerUtils;
6
7 $TwoSettings = \TenWebOptimizer\OptimizerSettings::get_instance();
8
9 $two_lazyload = $TwoSettings->get_settings('two_lazyload');
10 $two_add_noscript = $TwoSettings->get_settings('two_add_noscript');
11 $two_lazyload_slider_images = $TwoSettings->get_settings('two_lazyload_slider_images');
12 $two_elemrntor_video_iframe = $TwoSettings->get_settings('two_elemrntor_video_iframe');
13 $two_remove_elementor_lazyload = $TwoSettings->get_settings('two_remove_elementor_lazyload');
14 $two_bg_lazyload = $TwoSettings->get_settings('two_bg_lazyload');
15 $two_img_in_viewport_lazyload = $TwoSettings->get_settings('two_img_in_viewport_lazyload');
16 $two_iframe_lazyload = $TwoSettings->get_settings('two_iframe_lazyload');
17 $two_delay_iframe_lazyload = $TwoSettings->get_settings('two_delay_iframe_lazyload');
18 $two_youtube_vimeo_iframe_lazyload = $TwoSettings->get_settings('two_youtube_vimeo_iframe_lazyload');
19 $two_video_lazyload = $TwoSettings->get_settings('two_video_lazyload');
20 $two_gzip = $TwoSettings->get_settings('two_gzip');
21 $two_page_cache = $TwoSettings->get_settings('two_page_cache');
22 $two_page_cache_user = $TwoSettings->get_settings('two_page_cache_user');
23 $two_serve_gzip = $TwoSettings->get_settings('two_serve_gzip');
24 $two_empty_encoding_serve_gzip = $TwoSettings->get_settings('two_empty_encoding_serve_gzip');
25 $two_enable_plugin_autoupdate = $TwoSettings->get_settings('two_enable_plugin_autoupdate');
26 $two_minify_html = $TwoSettings->get_settings('two_minify_html');
27 $two_page_cache_life_time = $TwoSettings->get_settings('two_page_cache_life_time');
28 $two_disable_jetpack_optimization = $TwoSettings->get_settings('two_disable_jetpack_optimization');
29 $two_include_inline_css = $TwoSettings->get_settings('two_include_inline_css');
30 $two_include_inline_js = $TwoSettings->get_settings('two_include_inline_js');
31 $two_use_extended_exception_list_js = $TwoSettings->get_settings('two_use_extended_exception_list_js');
32 $two_dequeue_jquery_migrate = $TwoSettings->get_settings('two_dequeue_jquery_migrate');
33 $two_delayed_js_execution_list = $TwoSettings->get_settings('two_delayed_js_execution_list');
34 $two_exclude_delay_js = $TwoSettings->get_settings('two_exclude_delay_js');
35 $two_delay_custom_js_new = $TwoSettings->get_settings('two_delay_custom_js_new');
36 $two_delay_js_execution = $TwoSettings->get_settings('two_delay_js_execution');
37 $two_delay_all_js_execution = $TwoSettings->get_settings('two_delay_all_js_execution');
38 $two_timeout_js_load = $TwoSettings->get_settings('two_timeout_js_load');
39 $two_load_excluded_js_via_worker = $TwoSettings->get_settings('two_load_excluded_js_via_worker');
40 $two_load_excluded_js_normally = $TwoSettings->get_settings('two_load_excluded_js_normally');
41 $two_events_after_load = $TwoSettings->get_settings('two_events_after_load');
42 $two_delayed_js_load_libs_first = $TwoSettings->get_settings('two_delayed_js_load_libs_first');
43 $two_exclude_js = $TwoSettings->get_settings('two_exclude_js');
44 $two_exclude_css = $TwoSettings->get_settings('two_exclude_css');
45 $two_async_css = $TwoSettings->get_settings('two_async_css');
46 $two_async_all = $TwoSettings->get_settings('two_async_all');
47 $two_disable_wp_dashicons = $TwoSettings->get_settings('two_disable_wp_dashicons');
48 $two_add_overflow_to_page = $TwoSettings->get_settings('two_add_overflow_to_page');
49 $two_disable_css = $TwoSettings->get_settings('two_disable_css');
50 $two_generate_ccss_on_load = $TwoSettings->get_settings('two_generate_ccss_on_load');
51 $two_fonts_to_preload = $TwoSettings->get_settings('two_fonts_to_preload');
52 $two_fonts_to_preconnect = $TwoSettings->get_settings('two_fonts_to_preconnect');
53 $two_disabled_speed_optimizer_pages = $TwoSettings->get_settings('two_disabled_speed_optimizer_pages');
54 $two_disabled_delay_all_js_pages = $TwoSettings->get_settings('two_disabled_delay_all_js_pages');
55 $two_exclude_lazyload = $TwoSettings->get_settings('two_exclude_lazyload');
56 $two_do_not_optimize_images = $TwoSettings->get_settings('two_do_not_optimize_images');
57 $two_enable_use_srcset = $TwoSettings->get_settings('two_enable_use_srcset');
58 $two_enable_nginx_webp_delivery = $TwoSettings->get_settings('two_enable_nginx_webp_delivery');
59 $two_enable_htaccess_webp_delivery = $TwoSettings->get_settings('two_enable_htaccess_webp_delivery');
60 $two_enable_picture_webp_delivery = $TwoSettings->get_settings('two_enable_picture_webp_delivery');
61 $two_disable_nginx_webp_delivery_option = !defined('IOWD_PREFIX') ? ' disabled' : '';
62 $two_exclude_images_for_optimize = $TwoSettings->get_settings('two_exclude_images_for_optimize');
63 $two_async_font = $TwoSettings->get_settings('two_async_font');
64 $two_merge_google_font_faces = $TwoSettings->get_settings('two_merge_google_font_faces');
65 $two_load_fonts_via_webfont = $TwoSettings->get_settings('two_load_fonts_via_webfont');
66 $two_serve_optimized_bg_image = $TwoSettings->get_settings('two_serve_optimized_bg_image');
67 $two_files_cache = $TwoSettings->get_settings('two_files_cache');
68 $two_enable_htaccess_caching_headers = $TwoSettings->get_settings('two_enable_htaccess_caching_headers');
69 $two_test_mode = $TwoSettings->get_settings('two_test_mode');
70 $two_all_pages_are_optimizable = $TwoSettings->get_settings('two_all_pages_are_optimizable');
71 $two_optimize_archive_pages = $TwoSettings->get_settings('two_optimize_archive_pages');
72 $two_minify_js = $TwoSettings->get_settings('two_minify_js');
73 $two_minify_css = $TwoSettings->get_settings('two_minify_css');
74 $lazy_load_type = $TwoSettings->get_settings('lazy_load_type');
75
76 $two_async_page = $TwoSettings->get_settings('two_async_page');
77 $two_disable_page = $TwoSettings->get_settings('two_disable_page');
78
79 $two_change_minify = $TwoSettings->get_settings('two_change_minify');
80
81 $two_aggregate_js = $TwoSettings->get_settings('two_aggregate_js');
82 $two_aggregate_css = $TwoSettings->get_settings('two_aggregate_css');
83 $two_delay_js_exclusions = $TwoSettings->get_settings('two_delay_js_exclusions');
84 $cloudflare_cache_status = $TwoSettings->get_settings('cloudflare_cache_status');
85 $two_non_optimizable_speed_optimizer_pages = $TwoSettings->get_settings('two_non_optimizable_speed_optimizer_pages');
86 $two_disconnect_nonce = wp_create_nonce('two_disconnect_nonce');
87
88 OptimizerUtils::two_critical_status();
89
90 $table_data = '';
91
92 if (isset($two_async_page) && is_array($two_async_page) && $two_async_all !== 'on') {
93 foreach ($two_async_page as $key => $val) {
94 if (!empty($val)) {
95 $two_async_page_css = explode(',', $val);
96 $two_async_page_css = array_filter($two_async_page_css);
97
98 foreach ($two_async_page_css as $name) {
99 $table_data .= "<tr>
100 <td class='two_css_name'>" . $name . "</td>
101 <td class='two_url'>" . $key . "</td>
102 <td class='two_load_type'>Async</td>
103 <td>
104 <span data-task='edit' class='two_edit_element dashicons dashicons-edit'></span>
105 <span data-task='duplicate' class='two_duplicate_element dashicons dashicons-admin-page'></span>
106 <span class='two_delete_element dashicons dashicons-trash'></span>
107 </td>
108 </tr>";
109 }
110 }
111 }
112 }
113
114 if (isset($two_disable_page) && is_array($two_disable_page)) {
115 foreach ($two_disable_page as $key => $val) {
116 if (!empty($val)) {
117 $page_disable_page_css = explode(',', $val);
118 $page_disable_page_css = array_filter($page_disable_page_css);
119
120 foreach ($page_disable_page_css as $name) {
121 $table_data .= "<tr>
122 <td class='two_css_name'>" . $name . "</td>
123 <td class='two_url'>" . $key . "</td>
124 <td class='two_load_type'>Disabled</td>
125 <td>
126 <span data-task='edit' class='two_edit_element dashicons dashicons-edit-large '></span>
127 <span data-task='duplicate' class='two_duplicate_element dashicons dashicons-admin-page'></span>
128 <span class='two_delete_element dashicons dashicons-trash'></span>
129 </td>
130 </tr>";
131 }
132 }
133 }
134 }
135
136 $exclude_lazyload = '';
137
138 if ($two_lazyload == false && $two_bg_lazyload == false && $two_iframe_lazyload == false && $two_video_lazyload == false) {
139 $exclude_lazyload = 'display:none;';
140 }
141 $exclude_images_for_optimize = '';
142
143 if ($two_do_not_optimize_images == true) {
144 $exclude_images_for_optimize = 'display:none;';
145 }
146 $add_noscript_style = '';
147
148 if ($two_lazyload == false) {
149 $add_noscript_style = 'display:none;';
150 }
151 $lazyload_check = ($two_lazyload == 'on') ? 'checked' : '';
152 $add_noscript_check = ($two_add_noscript == 'on') ? 'checked' : '';
153 $two_lazyload_slider_images_check = ($two_lazyload_slider_images == 'on') ? 'checked' : '';
154 $two_serve_optimized_bg_image = ($two_serve_optimized_bg_image == 'on') ? 'checked' : '';
155 $two_files_cache = ($two_files_cache == 'on') ? 'checked' : '';
156 $two_enable_htaccess_caching_headers = ($two_enable_htaccess_caching_headers == 'on') ? 'checked' : '';
157 $two_test_mode = ($two_test_mode == 'on') ? 'checked' : '';
158 $cloudflare_cache_status = ($cloudflare_cache_status == 'on') ? 'checked' : '';
159 $two_all_pages_are_optimizable = ($two_all_pages_are_optimizable == 'on') ? 'checked' : '';
160 $two_optimize_archive_pages = ($two_optimize_archive_pages == 'on') ? 'checked' : '';
161 $two_do_not_optimize_images = ($two_do_not_optimize_images == 'on') ? 'checked' : '';
162 $two_enable_use_srcset = ($two_enable_use_srcset == 'on') ? 'checked' : '';
163 $two_enable_nginx_webp_delivery = ($two_enable_nginx_webp_delivery == 'on') ? 'checked' : '';
164 $two_enable_htaccess_webp_delivery = ($two_enable_htaccess_webp_delivery == 'on') ? 'checked' : '';
165 $two_enable_picture_webp_delivery = ($two_enable_picture_webp_delivery == 'on') ? 'checked' : '';
166 $lazyload_bg_check = ($two_bg_lazyload == 'on') ? 'checked' : '';
167 $two_img_in_viewport_lazyload_check = ($two_img_in_viewport_lazyload == 'on') ? 'checked' : '';
168 $two_delay_js_execution_check = ($two_delay_js_execution == 'on') ? 'checked' : '';
169 $two_delay_all_js_execution_check = ($two_delay_all_js_execution == 'on') ? 'checked' : '';
170 $two_timeout_js_load_check = ($two_timeout_js_load == 'on') ? 'checked' : '';
171 $two_load_excluded_js_via_worker_check = ($two_load_excluded_js_via_worker == 'on') ? 'checked' : '';
172 $two_events_after_load_check = is_array($two_events_after_load) ? $two_events_after_load : [];
173 $two_delayed_js_load_libs_first = ($two_delayed_js_load_libs_first == 'on') ? 'checked' : '';
174 $lazyload_iframe_check = ($two_iframe_lazyload == 'on') ? 'checked' : '';
175 $delay_lazyload_iframe_check = ($two_delay_iframe_lazyload == 'on') ? 'checked' : '';
176 $two_elemrntor_video_iframe_check = ($two_elemrntor_video_iframe == 'on') ? 'checked' : '';
177 $two_remove_elementor_lazyload_check = ($two_remove_elementor_lazyload == 'on') ? 'checked' : '';
178 $lazyload_youtube_vimeo_iframe_check = ($two_youtube_vimeo_iframe_lazyload == 'on') ? 'checked' : '';
179 $lazyload_video_check = ($two_video_lazyload == 'on') ? 'checked' : '';
180 $aggregate_js_check = ($two_aggregate_js == 'on') ? 'checked' : '';
181 $aggregate_css_check = ($two_aggregate_css == 'on') ? 'checked' : '';
182 $two_gzip_check = ($two_gzip == 'on') ? 'checked' : '';
183 $two_page_cache_check = ($two_page_cache == 'on') ? 'checked' : '';
184 $two_page_cache_user_check = ($two_page_cache_user == 'on') ? 'checked' : '';
185 $two_serve_gzip_check = ($two_serve_gzip == 'on') ? 'checked' : '';
186 $two_empty_encoding_serve_gzip_check = ($two_empty_encoding_serve_gzip == 'on') ? 'checked' : '';
187 $two_enable_plugin_autoupdate_check = ($two_enable_plugin_autoupdate == 'on') ? 'checked' : '';
188 $two_minify_html_check = ($two_minify_html == 'on') ? 'checked' : '';
189 $two_disable_jetpack_optimization_check = ($two_disable_jetpack_optimization == 'on') ? 'checked' : '';
190 $two_generate_ccss_on_load_check = is_array($two_generate_ccss_on_load) ? $two_generate_ccss_on_load : [];
191 $two_include_inline_css = ($two_include_inline_css == 'on') ? 'checked' : '';
192 $two_include_inline_js_check = ($two_include_inline_js == 'on') ? 'checked' : '';
193 $two_use_extended_exception_list_js = ($two_use_extended_exception_list_js == 'on') ? 'checked' : '';
194 $two_dequeue_jquery_migrate = ($two_dequeue_jquery_migrate == 'on') ? 'checked' : '';
195 $two_minify_css = ($two_minify_css == 'on') ? 'checked' : '';
196 $two_disable_wp_dashicons = ($two_disable_wp_dashicons == 'on') ? 'checked' : '';
197 $two_minify_js = ($two_minify_js == 'on') ? 'checked' : '';
198 $two_async_font = ($two_async_font == 'on') ? 'checked' : '';
199 $two_merge_google_font_faces_check = ($two_merge_google_font_faces == 'on') ? 'checked' : '';
200 $two_load_fonts_via_webfont = ($two_load_fonts_via_webfont == 'on') ? 'checked' : '';
201 $two_flow_status = get_option('two_flow_status');
202 $valid_permalink_for_page_cache = $GLOBALS['wp_rewrite']->using_permalinks();
203
204 if ($two_change_minify === false) {
205 $two_change_minify = 'JSMin';
206 }
207
208 if ($lazy_load_type === false) {
209 $lazy_load_type = 'vanilla';
210 }
211
212 if ($two_async_all === 'on') {
213 $disable_async = 'display:none;';
214 $two_async_all = 'checked';
215 } else {
216 $disable_async = '';
217 $two_async_all = '';
218 }
219
220 $exclusion_data = ExcludeJsFromDelay::get_exclusion_data();
221
222 $connection_link = \TenWebOptimizer\OptimizerUtils::get_tenweb_connection_link();
223 $disconnect_link = $return_url = get_admin_url() . 'admin.php?page=two_settings_page&two_disconnect=1&nonce=' . $two_disconnect_nonce;
224
225 $show_page_cache_life_time = ($two_page_cache_check === 'checked' && $valid_permalink_for_page_cache) ? '' : 'display:none';
226 $show_bg_lazy_load = ($lazy_load_type === 'vanilla') ? '' : 'display:none';
227
228 ?>
229 <div class="two_settings_container" dir="ltr" xmlns="http://www.w3.org/1999/html">
230 <div class="two_settings wd-box-section">
231 <div class="wd-box-title">
232 <strong><?php _e(esc_html(TWO_SO_ORGANIZATION_NAME) . ' Booster', 'tenweb-speed-optimizer'); ?></strong> <small>v<?php echo esc_html(TENWEB_SO_VERSION); ?></small><br>
233 <strong><?php $twoMode = get_option('two_default_mode', OptimizerUtils::MODES['extreme']);
234 echo is_array($twoMode) && !empty($twoMode['mode']) ? esc_html(ucfirst($twoMode['mode'])) : 'No'; ?></strong> mode
235 </div>
236
237
238 <div class="two_tab_menus">
239 <span data-tab="general" class="two_tab_menu active">General</span>
240 <span data-tab="css" class="two_tab_menu">Css</span>
241 <span data-tab="js" class="two_tab_menu">Js</span>
242 <span data-tab="lazy" class="two_tab_menu">Lazy load</span>
243 <span data-tab="image" class="two_tab_menu">Images</span>
244 <span data-tab="page_css" class="two_tab_menu">Css in specific pages</span>
245 <span data-tab="critical_css" class="two_tab_menu">Critical Css</span>
246 <span data-tab="export_import" class="two_tab_menu">Export/import</span>
247 <span data-tab="two_logs" class="two_tab_menu">Logs</span>
248 <span data-tab="non_optimizable_pages" class="two_tab_menu">Non Optimizable Pages</span>
249 </div>
250 <form class="two_settings_form" action="" method="post">
251 <div class="two_settings_tab two_tab_general active">
252 <?php if (!\TenWebOptimizer\OptimizerUtils::check_if_hosted_website()) { ?>
253 <div class="two_settings_option">
254 <p><b style="font-size: 16px;">Connected to <?php echo esc_html(TWO_SO_ORGANIZATION_NAME); ?>:
255 <?php
256 if (\Tenweb_Authorization\Login::get_instance()->check_logged_in()) {
257 echo 'Yes';
258 } else {
259 echo 'No';
260 }
261 ?>
262 </b></p>
263 <a class="button" href="<?php echo esc_url($connection_link); ?>">Connect</a>
264 <a class="button" href="<?php echo esc_url($disconnect_link); ?>">Disconnect</a>
265 <?php if ($two_flow_status == '3' || $two_flow_status == '4') { ?>
266 <span data-flow_status="<?php echo esc_attr($two_flow_status); ?>" class="button two_finish_flow" href="<?php echo esc_url($disconnect_link); ?>">Finish flow</span>
267 <?php }?>
268 </div>
269 <?php } ?>
270 <div class="two_settings_option">
271 <input <?php echo esc_html($two_test_mode); ?> type="checkbox" name="two_test_mode"
272 id="two_test_mode">
273 <label for="two_test_mode"
274 class="wd-label"><?php _e('Enable test mode', 'tenweb-speed-optimizer'); ?></label>
275 </div>
276 <p class="description"><?php _e('Enable test mode to disable optimization for live site. Add ?twbooster=1 to urls to load optimized pages.', 'tenweb-speed-optimizer'); ?></p>
277
278
279 <div class="two_settings_option">
280 <input <?php echo esc_html($cloudflare_cache_status); ?> type="checkbox" name="cloudflare_cache_status"
281 id="cloudflare_cache_status">
282 <label for="cloudflare_cache_status"
283 class="wd-label"><?php _e('Cloudflare cache status', 'tenweb-speed-optimizer'); ?></label>
284 </div>
285
286
287
288 <div class="two_settings_option">
289 <input <?php echo esc_html($two_files_cache); ?> type="checkbox" name="two_files_cache"
290 id="two_files_cache">
291 <label for="two_files_cache"
292 class="wd-label"><?php _e('Cache generated static files', 'tenweb-speed-optimizer'); ?></label>
293 </div>
294 <p class="description"><?php _e('Enable this option to reuse generated static files for every request and speed up page loading speed', 'tenweb-speed-optimizer'); ?></p>
295
296 <?php if (!TENWEB_SO_HOSTED_ON_NGINX) { ?>
297
298 <div class="two_settings_option">
299 <input <?php echo esc_html($two_enable_htaccess_caching_headers); ?> type="checkbox" name="two_enable_htaccess_caching_headers"
300 id="two_enable_htaccess_caching_headers">
301 <label for="two_enable_htaccess_caching_headers"
302 class="wd-label"><?php _e('Write caching headers in .htaccess', 'tenweb-speed-optimizer'); ?></label>
303 </div>
304 <p class="description"><?php _e('Enable this option to write recommended caching headers in .htaccess file', 'tenweb-speed-optimizer'); ?></p>
305
306 <?php } ?>
307 <div class="two_settings_option">
308 <input <?php echo esc_html($two_page_cache_check); ?> type="checkbox" <?php echo (!$valid_permalink_for_page_cache) ? 'disabled' : ''; ?> name="two_page_cache" id="two_page_cache">
309 <label for="two_page_cache" class="wd-label"><?php _e('Enable page cache', 'tenweb-speed-optimizer'); ?></label>
310
311 <p class="description"><?php
312 if (!$valid_permalink_for_page_cache) {
313 echo "<span class='warning'>";
314 echo wp_kses_post(sprintf(
315 __('This option requires a custom permalink structure to work properly. %1$sGo to permalinks settings to change it.%2$s', 'tenweb-speed-optimizer'),
316 '<a href="' . esc_url(admin_url('options-permalink.php')) . '">',
317 '</a>'
318 ));
319 echo '</span> <br/>';
320 }
321 _e('Enable this option to reuse generated static html files for every request and speed up page loading speed.', 'tenweb-speed-optimizer');
322 ?></p>
323 </div>
324 <div class="two_settings_option" style="<?php echo esc_attr($show_page_cache_life_time); ?>">
325 <input <?php echo esc_html($two_page_cache_user_check); ?> type="checkbox" name="two_page_cache_user" id="two_page_cache_user">
326 <label for="two_page_cache_user" class="wd-label"><?php _e('Enable page cache for logged in users', 'tenweb-speed-optimizer'); ?></label>
327
328 <p class="description"><?php _e('Enable this option to reuse generated static html files for every request and speed up page loading speed.', 'tenweb-speed-optimizer'); ?></p>
329 </div>
330 <div class="two_settings_option" style="<?php echo esc_attr($show_page_cache_life_time); ?>">
331 <label for="two_page_cache_life_time" class="wd-label"><?php _e('Page cache life time', 'tenweb-speed-optimizer'); ?></label>
332 <input type="number" name="two_page_cache_life_time" id="two_page_cache_life_time" value="<?php echo esc_attr($two_page_cache_life_time); ?>">
333 <p class="description"><?php _e('Page cache life time in seconds. The default value is 7 days.', 'tenweb-speed-optimizer'); ?></p>
334 </div>
335 <div class="two_settings_option">
336 <input <?php echo esc_html($two_enable_plugin_autoupdate_check); ?> type="checkbox" name="two_enable_plugin_autoupdate" id="two_enable_plugin_autoupdate">
337 <label for="two_enable_plugin_autoupdate" class="wd-label"><?php _e('Enable plugin autoupdate', 'tenweb-speed-optimizer'); ?></label>
338 <p class="description"><?php _e('When checked, Wordpress will autoupdate this plugin.', 'tenweb-speed-optimizer'); ?></p>
339 </div>
340 <div class="two_settings_option">
341 <input <?php echo esc_html($two_serve_gzip_check); ?> type="checkbox" name="two_serve_gzip" id="two_serve_gzip">
342 <label for="two_serve_gzip" class="wd-label"><?php _e('Serve compressed HTML', 'tenweb-speed-optimizer'); ?></label>
343 </div>
344 <div class="two_settings_option two_empty_encoding_serve_gzip">
345 <input <?php echo esc_html($two_empty_encoding_serve_gzip_check); ?> type="checkbox" name="two_empty_encoding_serve_gzip" id="two_empty_encoding_serve_gzip">
346 <label for="two_empty_encoding_serve_gzip" class="wd-label"><?php _e('Serve compressed HTML in any case', 'tenweb-speed-optimizer'); ?></label>
347 <p class="description"><?php _e('Serve compressed HTML when no "Accept-Encoding" header is provided', 'tenweb-speed-optimizer'); ?></p>
348 </div>
349 <div class="two_settings_option">
350 <input <?php echo esc_html($two_minify_html_check); ?> type="checkbox" name="two_minify_html"
351 id="two_minify_html">
352 <label for="two_minify_html"
353 class="wd-label"><?php _e('Minify HTML', 'tenweb-speed-optimizer'); ?></label>
354 </div>
355 <p class="description"><?php _e('Enable this option to serve minified HTML.', 'tenweb-speed-optimizer'); ?></p>
356 <div class="two_settings_option">
357 <input <?php echo esc_html($two_all_pages_are_optimizable); ?> type="checkbox" name="two_all_pages_are_optimizable"
358 id="two_all_pages_are_optimizable">
359 <label for="two_all_pages_are_optimizable"
360 class="wd-label"><?php _e('Run Optimizer on every page', 'tenweb-speed-optimizer'); ?></label>
361 </div>
362 <p class="description"><?php _e('Enable this option to run optimizer on every page, except excluded.', 'tenweb-speed-optimizer'); ?></p>
363 <div class="two_settings_option">
364 <input <?php echo esc_html($two_optimize_archive_pages); ?> type="checkbox" name="two_optimize_archive_pages"
365 id="two_optimize_archive_pages">
366 <label for="two_optimize_archive_pages"
367 class="wd-label"><?php _e('Run Optimizer on archive pages', 'tenweb-speed-optimizer'); ?></label>
368 </div>
369 <p class="description"><?php _e('Enable this option to run Optimizer on archive pages.', 'tenweb-speed-optimizer'); ?></p>
370
371 <div class="two_settings_option">
372 <input <?php echo esc_html($two_async_font); ?> type="checkbox" name="two_async_font" id="two_async_font">
373 <label for="two_async_font" class="wd-label"><?php _e('Font Swap', 'tenweb-speed-optimizer'); ?></label>
374 </div>
375 <p class="description"><?php _e('Displays data with generic font while your font style is being fetched.', 'tenweb-speed-optimizer'); ?></p>
376 <div class="two_settings_option">
377 <input <?php echo esc_html($two_merge_google_font_faces_check); ?> type="checkbox" name="two_merge_google_font_faces" id="two_merge_google_font_faces">
378 <label for="two_merge_google_font_faces" class="wd-label"><?php _e('Merge google font faces', 'tenweb-speed-optimizer'); ?></label>
379 </div>
380 <p class="description"><?php _e('Merge Google font faces before connecting', 'tenweb-speed-optimizer'); ?></p>
381 <div class="two_settings_option">
382 <input <?php echo esc_html($two_load_fonts_via_webfont); ?> type="checkbox" name="two_load_fonts_via_webfont"
383 id="two_load_fonts_via_webfont">
384 <label for="two_load_fonts_via_webfont"
385 class="wd-label"><?php _e('Use WebFont', 'tenweb-speed-optimizer'); ?></label>
386 </div>
387 <p class="description"><?php _e('Load fonts with WebFont.', 'tenweb-speed-optimizer'); ?></p>
388 <?php
389 /** this option is not working properly so it is disabled */
390 /* @noinspection SuspiciousBinaryOperationInspection */
391 if (!TENWEB_SO_HOSTED_ON_10WEB && false) {
392 ?>
393 <div class="two_settings_option">
394 <input <?php echo esc_html($two_gzip_check); ?> type="checkbox" name="two_gzip" id="gzip_css_js">
395 <label for="gzip_css_js" class="wd-label"><?php _e('Gzip CSS and JS', 'tenweb-speed-optimizer'); ?></label>
396 </div>
397 <p class="description"><?php _e('Compress components with gzip to save time and bandwith.', 'tenweb-speed-optimizer'); ?></p>
398 <?php
399 }
400 ?>
401 <?php
402 if (defined('JETPACK__VERSION')) {
403 ?>
404 <div class="two_settings_option">
405 <input <?php echo esc_html($two_disable_jetpack_optimization_check); ?> type="checkbox" name="two_disable_jetpack_optimization" id="disable_jetpack_optimization">
406 <label for="disable_jetpack_optimization" class="wd-label"><?php _e('Disable Jetpack optimization', 'tenweb-speed-optimizer'); ?></label>
407 </div>
408 <p class="description"><?php _e('This option will disable Performance & speed options of Jetpack plugin.', 'tenweb-speed-optimizer'); ?></p>
409 <?php
410 }
411 ?>
412 <div class="two_settings_option two_generate_ccss_on_load">
413 <label for="two_generate_ccss_on_load" class="wd-label"><?php _e('Generate CCSS on load', 'tenweb-speed-optimizer'); ?></label>
414 <select name="two_generate_ccss_on_load" id="two_generate_ccss_on_load" multiple="multiple" placeholder="Choose page types" data-allow-clear="1">
415 <option <?php echo (in_array('page', $two_generate_ccss_on_load_check)) ? 'selected' : ''; ?> value="page">Pages</option>
416 <option <?php echo (in_array('post', $two_generate_ccss_on_load_check)) ? 'selected' : ''; ?> value="post">Posts</option>
417 <option <?php echo (in_array('taxonomy', $two_generate_ccss_on_load_check)) ? 'selected' : ''; ?> value="taxonomy">Taxonomies</option>
418 </select>
419 <p class="description"><?php _e('Post Types where CCSS will be generated on first load in incognito.', 'tenweb-speed-optimizer'); ?></p>
420 </div>
421 <div class="two_settings_option">
422 <label for="two_fonts_to_preload"
423 class="wd-label"><?php _e('Links that Need to be Preloaded', 'tenweb-speed-optimizer'); ?></label>
424 <textarea style="width: 100%" rows="6" name="two_fonts_to_preload"
425 id="two_fonts_to_preload"><?php echo isset($two_fonts_to_preload) ? esc_textarea($two_fonts_to_preload) : ''; ?></textarea>
426 <p class="description"><?php _e('List of links that you can preload to increase site speed', 'tenweb-speed-optimizer'); ?></p>
427 </div>
428 <div class="two_settings_option">
429 <label for="two_fonts_to_preconnect"
430 class="wd-label"><?php _e('Links that Need to be Preconnected', 'tenweb-speed-optimizer'); ?></label>
431 <textarea style="width: 100%" rows="6" name="two_fonts_to_preconnect"
432 id="two_fonts_to_preconnect"><?php echo isset($two_fonts_to_preconnect) ? esc_textarea($two_fonts_to_preconnect) : ''; ?></textarea>
433 <p class="description"><?php _e('List of links that you can preconnect to increase site speed', 'tenweb-speed-optimizer'); ?></p>
434 </div>
435 <div class="two_settings_option">
436 <label for="two_disabled_speed_optimizer_pages"
437 class="wd-label"><?php _e('Pages Where ' . esc_html(TWO_SO_ORGANIZATION_NAME) . ' Booster is Disabled', 'tenweb-speed-optimizer'); ?></label>
438 <textarea style="width: 100%" rows="6" name="two_disabled_speed_optimizer_pages"
439 id="two_disabled_speed_optimizer_pages"><?php echo isset($two_disabled_speed_optimizer_pages) ? esc_textarea($two_disabled_speed_optimizer_pages) : ''; ?></textarea>
440 <p class="description">
441 <?php _e('Paths of web pages where ' . esc_html(TWO_SO_ORGANIZATION_NAME) . ' Booster will not work. For making all pages optimizable set two_all_pages_are_optimizable option to true.', 'tenweb-speed-optimizer'); ?><br />
442 "^/[^.]+$" use this expression to exclude all pages except the homepage (w/o quotes)<br />
443 "^/$" use this expression to exclude homepage (w/o quotes)<br />
444 "^((?!red|green|blue).)*$" use this expression to exclude every string that not contains red, green or blue words (w/o quotes)<br />
445 add any subdirectory before the slash in expression (e.g. /wordpress/) if the site is in subdirectory.
446 </p>
447 </div>
448 <div class="two_settings_option">
449 <select name="two_change_minify" id="two_change_minify">
450 <option <?php echo ($two_change_minify === 'JSMin') ? 'selected' : ''; ?> value="JSMin">JSMin</option>
451 <option <?php echo ($two_change_minify === 'Minify') ? 'selected' : ''; ?> value="Minify">Minify</option>
452 </select>
453 <label for="lazy_load_type" class="wd-label"><?php _e('Minify library type', 'tenweb-speed-optimizer'); ?></label>
454 </div>
455 </div>
456 <div class="two_settings_tab two_tab_css">
457 <div class="two_settings_option">
458 <input <?php echo esc_html($aggregate_css_check); ?> type="checkbox" name="two_aggregate_css"
459 id="enable_css_aggregate">
460 <label for="enable_css_aggregate"
461 class="wd-label"><?php _e('Aggregate CSS files', 'tenweb-speed-optimizer'); ?></label>
462 <p class="description"><?php _e('Enable this option to aggregate CSS files', 'tenweb-speed-optimizer'); ?></p>
463 </div>
464 <div class="two_settings_option two_include_inline_css" <?php if ($two_aggregate_css !== 'on') {
465 echo 'style="display:none"';
466 } ?>>
467 <input <?php echo esc_html($two_include_inline_css); ?> type="checkbox" name="two_include_inline_css"
468 id="two_include_inline_css">
469 <label for="two_include_inline_css"
470 class="wd-label"><?php _e('Include inline CSS', 'tenweb-speed-optimizer'); ?></label>
471 <p class="description"><?php _e('Enable this checkbox to compress the internal CSS of your web pages.', 'tenweb-speed-optimizer'); ?></p>
472 </div>
473 <div class="two_settings_option">
474 <input <?php echo esc_html($two_minify_css); ?> type="checkbox" name="two_minify_css"
475 id="two_minify_css">
476 <label for="two_minify_css"
477 class="wd-label"><?php _e('Minify CSS files', 'tenweb-speed-optimizer'); ?></label>
478 <p class="description"><?php _e('Enable this checkbox to minify CSS files', 'tenweb-speed-optimizer'); ?></p>
479 </div>
480 <div class="two_settings_option">
481 <label for="two_exclude_css"
482 class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_exclude_css']['title']), 'tenweb-speed-optimizer'); ?></label>
483 <textarea style="width: 100%" name="two_exclude_css"
484 id="two_exclude_css"><?php echo isset($two_exclude_css) ? esc_textarea($two_exclude_css) : ''; ?></textarea>
485 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_exclude_css']['description']), 'tenweb-speed-optimizer'); ?></p>
486 </div>
487 <div class="two_settings_option">
488 <input <?php echo esc_html($two_async_all); ?> type="checkbox" name="two_async_all" id="two_async_all">
489 <label for="two_async_all" class="wd-label"><?php _e('Async All CSS', 'tenweb-speed-optimizer'); ?></label>
490 <p class="description"><?php _e('Enable this checkbox to async all css files.', 'tenweb-speed-optimizer'); ?></p>
491 </div>
492 <div class="two_settings_option">
493 <input <?php echo esc_html($two_disable_wp_dashicons); ?> type="checkbox" name="two_disable_wp_dashicons" id="two_disable_wp_dashicons">
494 <label for="two_disable_wp_dashicons" class="wd-label"><?php _e('Disable dashicons', 'tenweb-speed-optimizer'); ?></label>
495 <p class="description"><?php _e('Enable this checkbox to disable dashicons.css .', 'tenweb-speed-optimizer'); ?></p>
496 </div>
497 <div class="two_settings_option">
498 <select name="two_add_overflow_to_page" id="two_add_overflow_to_page">
499 <option <?php echo ($two_add_overflow_to_page === 'off') ? 'selected' : ''; ?> value="off">Disabled</option>
500 <option <?php echo ($two_add_overflow_to_page === 'body') ? 'selected' : ''; ?> value="body">On body</option>
501 <option <?php echo ($two_add_overflow_to_page === 'html') ? 'selected' : ''; ?> value="html">On HTML</option>
502 <option <?php echo ($two_add_overflow_to_page === 'body, html') ? 'selected' : ''; ?> value="body, html">On body and HTML</option>
503 </select>
504 <label for="two_add_overflow_to_page" class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_add_overflow_to_page']['title']), 'tenweb-speed-optimizer'); ?></label>
505 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_add_overflow_to_page']['description']), 'tenweb-speed-optimizer'); ?></p>
506 </div>
507 <div class="two_settings_option two_async_css" style="<?php echo esc_attr($disable_async); ?>">
508 <label for="two_async_css" class="wd-label"><?php _e('Async CSS Files', 'tenweb-speed-optimizer'); ?></label>
509 <textarea style="width: 100%" rows="6" name="two_async_css"
510 id="two_async_css"><?php echo isset($two_async_css) ? esc_textarea($two_async_css) : ''; ?></textarea>
511 <p class="description"><?php _e('Mention the handles of the CSS files to load after the main site content is loaded. This is helpful when there are CSS files that can slow down the website.', 'tenweb-speed-optimizer'); ?></p>
512 </div>
513 <div class="two_settings_option">
514 <label for="two_disable_css"
515 class="wd-label"><?php _e('Disable CSS Files', 'tenweb-speed-optimizer'); ?></label>
516 <textarea style="width: 100%" rows="6" name="two_disable_css"
517 id="two_disable_css"><?php echo isset($two_disable_css) ? esc_textarea($two_disable_css) : ''; ?></textarea>
518 <p class="description"><?php _e('Disabled CSS Files Use this option to specify the CSS files that are not used and should be disabled from all pages of your website.', 'tenweb-speed-optimizer'); ?></p>
519 </div>
520 </div>
521 <div class="two_settings_tab two_tab_js">
522 <div class="two_settings_option two_delay_all_js_execution">
523 <input <?php echo esc_html($two_delay_all_js_execution_check); ?> type="checkbox" name="two_delay_all_js_execution"
524 id="two_delay_all_js_execution">
525 <label for="two_delay_all_js_execution"
526 class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_delay_all_js_execution']['title']), 'tenweb-speed-optimizer'); ?></label>
527 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_delay_all_js_execution']['description']), 'tenweb-speed-optimizer'); ?></p>
528 </div>
529
530 <div class="two_settings_option two_timeout_js_load" <?php if ($two_delay_all_js_execution != 'on') {
531 echo 'style="display:none"';
532 } ?>>
533 <input <?php echo esc_html($two_timeout_js_load_check); ?> type="checkbox" name="two_timeout_js_load"
534 id="two_timeout_js_load">
535 <label for="two_timeout_js_load"
536 class="wd-label"><?php _e('Timeout to js load', 'tenweb-speed-optimizer'); ?></label>
537 <p class="description"><?php _e('timeout to js load', 'tenweb-speed-optimizer'); ?></p>
538 </div>
539 <div class="two_settings_option two_load_excluded_js_via_worker" <?php if ($two_delay_all_js_execution != 'on') {
540 echo 'style="display:none"';
541 } ?>>
542 <input <?php echo esc_html($two_load_excluded_js_via_worker_check); ?> type="checkbox" name="two_load_excluded_js_via_worker"
543 id="two_load_excluded_js_via_worker">
544 <label for="two_load_excluded_js_via_worker"
545 class="wd-label"><?php _e('Load excluded JS files via worker', 'tenweb-speed-optimizer'); ?></label>
546 <p class="description"><?php _e('Load excluded JS files via worker and connect them immediately.', 'tenweb-speed-optimizer'); ?></p>
547 </div>
548 <div class="two_settings_option two_load_excluded_js_normally" <?php if ($two_load_excluded_js_via_worker != 'on' || ($two_load_excluded_js_via_worker == 'on' && $two_delay_all_js_execution != 'on')) {
549 echo 'style="display:none"';
550 } ?>>
551 <label for="two_load_excluded_js_normally"
552 class="wd-label"><?php _e('Excluded JS files via worker load', 'tenweb-speed-optimizer'); ?></label>
553 <textarea style="width: 100%" name="two_load_excluded_js_normally"
554 id="two_load_excluded_js_normally"><?php echo isset($two_load_excluded_js_normally) ? esc_textarea($two_load_excluded_js_normally) : ''; ?></textarea>
555 <p class="description"><?php _e('Use this textbox to specify JavaScript files and exclude JS files via worker load.', 'tenweb-speed-optimizer'); ?></p>
556 </div>
557 <div class="two_settings_option two_events_after_load" <?php if ($two_delay_all_js_execution != 'on') {
558 echo 'style="display:none"';
559 } ?>>
560 <label for="two_events_after_load" class="wd-label"><?php _e('Events After Load', 'tenweb-speed-optimizer'); ?></label>
561 <select name="two_events_after_load" id="two_events_after_load" multiple="multiple" placeholder="Choose Event" data-allow-clear="1">
562 <option <?php echo (in_array('DOMContentLoaded', $two_events_after_load_check)) ? 'selected' : ''; ?> value="DOMContentLoaded">DOMContentLoaded</option>
563 <option <?php echo (in_array('Load', $two_events_after_load_check)) ? 'selected' : ''; ?> value="Load">Load</option>
564 <option <?php echo (in_array('Click', $two_events_after_load_check)) ? 'selected' : ''; ?> value="Click">Click</option>
565 </select>
566 <p class="description"><?php _e('Events which are fired after page load', 'tenweb-speed-optimizer'); ?></p>
567 </div>
568 <div class="two_settings_option two_plugins_to_exclude" <?php if ($two_delay_all_js_execution != 'on') {
569 echo 'style="display:none"';
570 } ?>>
571 <label for="two_delay_js_exclusions" class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_delay_js_exclusions']['title']), 'tenweb-speed-optimizer'); ?></label>
572 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_delay_js_exclusions']['description']), 'tenweb-speed-optimizer'); ?></p>
573 <select multiple="multiple" id="two_delay_js_exclusions" name="two_delay_js_exclusions">
574 <?php foreach ($exclusion_data as $key => $val) { ?>
575 <?php
576 $selected = '';
577
578 if (isset($val['type']) && ($val['type'] === 'script' || $val['type'] === 'plugin' || $val['type'] === 'theme')) {
579 $val['Name'] = $val['title'];
580
581 if ($val['type'] === 'theme') {
582 $val['Name'] .= ' (theme)';
583 }
584 } else {
585 $val['Name'] .= ' (folder)';
586 }
587
588 if (isset($two_delay_js_exclusions) && is_array($two_delay_js_exclusions)) {
589 if (in_array($key, $two_delay_js_exclusions)) {
590 $selected = 'selected';
591 }
592 }
593 ?>
594 <option <?php echo esc_html($selected); ?> value="<?php echo esc_attr($key); ?>"><?php echo esc_html($val['Name']); ?></option>
595 <?php }?>
596 </select>
597 </div>
598 <div class="two_settings_option two_disabled_delay_all_js_pages" <?php if ($two_delay_all_js_execution != 'on') {
599 echo 'style="display:none"';
600 } ?>>
601 <label for="two_disabled_delay_all_js_pages"
602 class="wd-label"><?php _e('Excluded delayed JS Pages', 'tenweb-speed-optimizer'); ?></label>
603 <textarea style="width: 100%" name="two_disabled_delay_all_js_pages"
604 id="two_disabled_delay_all_js_pages"><?php echo isset($two_disabled_delay_all_js_pages) ? esc_textarea($two_disabled_delay_all_js_pages) : ''; ?></textarea>
605 <p class="description">
606 <?php _e('Use this textbox to specify Pages and exclude them from the optimization.', 'tenweb-speed-optimizer'); ?><br />
607 "^/[^.]+$" use this expression to exclude all pages except the homepage (w/o quotes)<br />
608 "^/$" use this expression to exclude homepage (w/o quotes)<br />
609 "^((?!red|green|blue).)*$" use this expression to exclude every string that not contains red, green or blue words (w/o quotes)<br />
610 add any subdirectory before the slash in expression (e.g. /wordpress/) if the site is in subdirectory.
611 </p>
612 </div>
613
614 <div class="two_settings_option two_exclude_delay_js" <?php if ($two_delay_all_js_execution != 'on') {
615 echo 'style="display:none"';
616 } ?>>
617 <label for="two_exclude_delay_js"
618 class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_exclude_delay_js']['title']), 'tenweb-speed-optimizer'); ?></label>
619 <textarea style="width: 100%" name="two_exclude_delay_js"
620 id="two_exclude_delay_js"><?php echo isset($two_exclude_delay_js) ? esc_textarea($two_exclude_delay_js) : ''; ?></textarea>
621 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_exclude_delay_js']['description']), 'tenweb-speed-optimizer'); ?></p>
622 </div>
623
624 <div class="two_settings_option two_delay_custom_js_new" <?php if ($two_delay_all_js_execution != 'on') {
625 echo 'style="display:none"';
626 } ?>>
627 <label for="two_delay_custom_js_new"
628 class="wd-label"><?php _e('JS callback', 'tenweb-speed-optimizer'); ?></label>
629 <textarea style="width: 100%" name="two_delay_custom_js_new"
630 id="two_delay_custom_js_new"><?php echo isset($two_delay_custom_js_new) ? esc_textarea($two_delay_custom_js_new) : ''; ?></textarea>
631 <p class="description"><?php _e('JS callback that will get fired after event.', 'tenweb-speed-optimizer'); ?></p>
632 </div>
633
634
635
636
637
638 <div class="two_js_options" <?php if ($two_delay_all_js_execution == 'on') {
639 echo 'style="display:none"';
640 } ?>>
641 <div class="two_settings_option">
642 <input <?php echo esc_html($aggregate_js_check); ?> type="checkbox" name="two_aggregate_js"
643 id="enable_js_aggregate">
644 <label for="enable_js_aggregate"
645 class="wd-label"><?php _e('Aggregate JS files', 'tenweb-speed-optimizer'); ?></label>
646 <p class="description"><?php _e('Enable this option to aggregate JS files', 'tenweb-speed-optimizer'); ?></p>
647 </div>
648 <div class="two_settings_option two_include_inline_js" <?php if ($two_aggregate_js !== 'on') {
649 echo 'style="display:none"';
650 } ?>>
651 <input <?php echo esc_html($two_include_inline_js_check); ?> type="checkbox" name="two_include_inline_js"
652 id="two_include_inline_js">
653 <label for="two_include_inline_js"
654 class="wd-label"><?php _e('Include inline JS', 'tenweb-speed-optimizer'); ?></label>
655 <p class="description"><?php _e('Check this option to include the internal JS scripts of your web pages in the optimization.', 'tenweb-speed-optimizer'); ?></p>
656 </div>
657 <div class="two_settings_option two_use_extended_exception_list_js" <?php if ($two_include_inline_js !== 'on') {
658 echo 'style="display:none"';
659 } ?>>
660 <input <?php echo esc_html($two_use_extended_exception_list_js); ?> type="checkbox" name="two_use_extended_exception_list_js"
661 id="two_use_extended_exception_list_js">
662 <label for="two_use_extended_exception_list_js"
663 class="wd-label"><?php _e('Use extended exception list for inline script aggregation', 'tenweb-speed-optimizer'); ?></label>
664 <p class="description"><?php _e('Check this option to exclude more internal scripts from optimization.', 'tenweb-speed-optimizer'); ?></p>
665 </div>
666 <div class="two_settings_option">
667 <input <?php echo esc_html($two_dequeue_jquery_migrate); ?> type="checkbox" name="two_dequeue_jquery_migrate"
668 id="two_dequeue_jquery_migrate">
669 <label for="two_dequeue_jquery_migrate"
670 class="wd-label"><?php _e('Remove jQuery Migrate', 'tenweb-speed-optimizer'); ?></label>
671 <p class="description"><?php _e('Enable this checkbox to stop loading jquery-migrate.js file.', 'tenweb-speed-optimizer'); ?></p>
672 </div>
673 <div class="two_settings_option">
674 <input <?php echo esc_html($two_minify_js); ?> type="checkbox" name="two_minify_js"
675 id="two_minify_js">
676 <label for="two_minify_js"
677 class="wd-label"><?php _e('Minify JS files', 'tenweb-speed-optimizer'); ?></label>
678 <p class="description"><?php _e('Enable this checkbox to minify JS files', 'tenweb-speed-optimizer'); ?></p>
679 </div>
680
681 <div class="two_settings_option two_delay_js_execution">
682 <input <?php echo esc_html($two_delay_js_execution_check); ?> type="checkbox" name="two_delay_js_execution"
683 id="two_delay_js_execution">
684 <label for="two_delay_js_execution"
685 class="wd-label"><?php _e('Delay JS execution', 'tenweb-speed-optimizer'); ?></label>
686 <p class="description"><?php _e('Enable this option to delay javascript execution', 'tenweb-speed-optimizer'); ?></p>
687 </div>
688 <div class="two_settings_option two_delayed_js_load_libs_first" <?php if ($two_delay_js_execution !== 'on') {
689 echo 'style="display:none"';
690 } ?>>
691 <input <?php echo esc_html($two_delayed_js_load_libs_first); ?> type="checkbox" name="two_delayed_js_load_libs_first"
692 id="two_delayed_js_load_libs_first">
693 <label for="two_delayed_js_load_libs_first"
694 class="wd-label"><?php _e('Load delayed JS libraries first', 'tenweb-speed-optimizer'); ?></label>
695 <p class="description"><?php _e('Prioritize loading delayed scripts over inline scripts.', 'tenweb-speed-optimizer'); ?></p>
696 </div>
697 <div class="two_settings_option two_delayed_js_execution_list" <?php if ($two_delay_js_execution !== 'on') {
698 echo 'style="display:none"';
699 } ?>>
700 <label for="two_delayed_js_execution_list"
701 class="wd-label"><?php _e('Delay Scripts from Execution', 'tenweb-speed-optimizer'); ?></label>
702 <textarea style="width: 100%" name="two_delayed_js_execution_list"
703 id="two_delayed_js_execution_list"><?php echo isset($two_delayed_js_execution_list) ? esc_textarea($two_delayed_js_execution_list) : ''; ?></textarea>
704 <p class="description"><?php _e('Use this textbox to specify JavaScript files to be delayed.', 'tenweb-speed-optimizer'); ?></p>
705 </div>
706
707 <div class="two_settings_option">
708 <label for="two_exclude_js"
709 class="wd-label"><?php _e('Excluded JS Files', 'tenweb-speed-optimizer'); ?></label>
710 <textarea style="width: 100%" name="two_exclude_js"
711 id="two_exclude_js"><?php echo isset($two_exclude_js) ? esc_textarea($two_exclude_js) : ''; ?></textarea>
712 <p class="description"><?php _e('Use this textbox to specify JavaScript files and exclude them from the optimization.', 'tenweb-speed-optimizer'); ?></p>
713 </div>
714 </div>
715
716 </div>
717 <div class="two_settings_tab two_tab_lazy">
718 <div class="two_settings_option">
719 <select name="lazy_load_type" id="lazy_load_type">
720 <option <?php echo ($lazy_load_type === 'browser') ? 'selected' : ''; ?> value="browser">Browser</option>
721 <option <?php echo ($lazy_load_type === 'vanilla') ? 'selected' : ''; ?> value="vanilla">Vanilla</option>
722 </select>
723 <label for="lazy_load_type" class="wd-label"><?php _e('Lazy load type', 'tenweb-speed-optimizer'); ?></label>
724 </div>
725 <p class="description"><?php _e('Select lazy load type', 'tenweb-speed-optimizer'); ?></p>
726 <div class="two_settings_option">
727 <input <?php echo esc_html($lazyload_check); ?> type="checkbox" name="two_lazyload" id="enable_lazyload">
728 <label for="enable_lazyload"
729 class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_lazyload']['title']), 'tenweb-speed-optimizer'); ?></label>
730 </div>
731 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_lazyload']['description']), 'tenweb-speed-optimizer'); ?></p>
732 <div class="two_settings_option two_add_noscript" style='<?php echo esc_attr($add_noscript_style); ?>'>
733 <input <?php echo esc_html($add_noscript_check); ?> type="checkbox" name="two_add_noscript" id="enable_add_noscript">
734 <label for="enable_add_noscript"
735 class="wd-label"><?php _e('Add noscript tag to Lazy Load Images', 'tenweb-speed-optimizer'); ?></label>
736 <p class="description"><?php _e('Disable this option if you want to not add noscript tag to lazy load images.', 'tenweb-speed-optimizer'); ?></p>
737 </div>
738 <div class="two_settings_option">
739 <input <?php echo esc_html($two_lazyload_slider_images_check); ?> type="checkbox" name="two_lazyload_slider_images" id="two_lazyload_slider_images">
740 <label for="two_lazyload_slider_images"
741 class="wd-label"><?php _e('Lazy Load Slider Images', 'tenweb-speed-optimizer'); ?></label>
742 </div>
743 <p class="description"><?php _e('Enable this option to activate lazy loading for images in sliders. May cause UI breaks.', 'tenweb-speed-optimizer'); ?></p>
744 <div class="two_settings_option two_bg_lazyload_cont" style="<?php echo esc_attr($show_bg_lazy_load); ?>">
745 <input <?php echo esc_html($lazyload_bg_check); ?> type="checkbox" name="two_bg_lazyload" id="enable_bg_lazyload">
746 <label for="enable_bg_lazyload"
747 class="wd-label"><?php _e(esc_html($TwoSettings->settings_names['two_bg_lazyload']['title']), 'tenweb-speed-optimizer'); ?></label>
748 <p class="description"><?php _e(esc_html($TwoSettings->settings_names['two_bg_lazyload']['description']), 'tenweb-speed-optimizer'); ?></p>
749 </div>
750 <div class="two_settings_option two_img_in_viewport_lazyload_cont" style="<?php echo esc_attr($show_bg_lazy_load); ?>">
751 <input <?php echo esc_html($two_img_in_viewport_lazyload_check); ?> type="checkbox" name="two_img_in_viewport_lazyload" id="two_img_in_viewport_lazyload">
752 <label for="two_img_in_viewport_lazyload"
753 class="wd-label"><?php _e('Lazy Load for images that are not in the viewport', 'tenweb-speed-optimizer'); ?></label>
754 <p class="description"><?php _e('This option activates lazy load for images and excludes images in the viewport. To get images list in the viewport, generate critical CSS.', 'tenweb-speed-optimizer'); ?></p>
755 </div>
756 <div class="two_settings_option enable_youtube_vimeo_iframe_lazyload <?php echo ($lazy_load_type === 'browser') ? 'two_hidden' : ''; ?>">
757 <input <?php echo esc_html($lazyload_youtube_vimeo_iframe_check); ?> type="checkbox"
758 name="two_youtube_vimeo_iframe_lazyload"
759 id="enable_youtube_vimeo_iframe_lazyload">
760 <label for="enable_youtube_vimeo_iframe_lazyload"
761 class="wd-label"><?php _e('Replace Youtube, Vimeo Videos with Thumbnails', 'tenweb-speed-optimizer'); ?></label>
762 <p class="description"><?php _e('Enable this option to lazy load youtube, vimeo videos until you click the thumbnail.', 'tenweb-speed-optimizer'); ?></p>
763 </div>
764 <div class="two_settings_option">
765 <input <?php echo esc_html($lazyload_iframe_check); ?> type="checkbox" name="two_iframe_lazyload"
766 id="enable_iframe_lazyload">
767 <label for="enable_iframe_lazyload"
768 class="wd-label"><?php _e('Lazy Load for Iframes', 'tenweb-speed-optimizer'); ?></label>
769 <p class="description"><?php _e('Enable this option to activate lazy loading for iframes on your website pages.', 'tenweb-speed-optimizer'); ?></p>
770 </div>
771 <div class="two_settings_option two_delay_iframe_lazyload" <?php if ($two_iframe_lazyload != 'on') {
772 echo 'style="display:none"';
773 } ?>>
774 <input <?php echo esc_html($delay_lazyload_iframe_check); ?> type="checkbox" name="two_delay_iframe_lazyload"
775 id="enable_delay_iframe_lazyload">
776 <label for="enable_delay_iframe_lazyload"
777 class="wd-label"><?php _e('Delay Lazy Load for Iframes', 'tenweb-speed-optimizer'); ?></label>
778 <p class="description"><?php _e('Enable this option to activate delayed lazy loading for iframes on your website pages.', 'tenweb-speed-optimizer'); ?></p>
779 </div>
780
781
782 <div style="<?php echo ($two_iframe_lazyload == 'on') ? 'display:block;' : 'display:none;'; ?>" class="two_settings_option two_elemrntor_video_iframe">
783 <input <?php echo esc_html($two_elemrntor_video_iframe_check); ?> type="checkbox" name="two_elemrntor_video_iframe"
784 id="two_elemrntor_video_iframe">
785 <label for="two_elemrntor_video_iframe"
786 class="wd-label"><?php _e('Elementor youtube block to iframe', 'tenweb-speed-optimizer'); ?></label>
787 <p class="description"><?php _e('Enable this option for convert elementor youtube block to iframe.', 'tenweb-speed-optimizer'); ?></p>
788 </div>
789
790
791 <div class="two_settings_option two_remove_elementor_lazyload">
792 <input <?php echo esc_html($two_remove_elementor_lazyload_check); ?> type="checkbox" name="two_remove_elementor_lazyload"
793 id="two_remove_elementor_lazyload">
794 <label for="two_remove_elementor_lazyload"
795 class="wd-label"><?php _e('Remove Elementor default lazyload', 'tenweb-speed-optimizer'); ?></label>
796 <p class="description"><?php _e('Enable this option if you want to remove elementor default lazyload.', 'tenweb-speed-optimizer'); ?></p>
797 </div>
798
799
800 <div class="two_settings_option">
801 <input <?php echo esc_html($lazyload_video_check); ?> type="checkbox" name="two_video_lazyload"
802 id="enable_video_lazyload">
803 <label for="enable_video_lazyload"
804 class="wd-label"><?php _e('Lazy Load for Videos', 'tenweb-speed-optimizer'); ?></label>
805 <p class="description"><?php _e('Enable this option to activate lazy loading for videos on your website pages.', 'tenweb-speed-optimizer'); ?></p>
806 </div>
807 <div class="two_settings_option two_exclude_lazyload" style='<?php echo esc_attr($exclude_lazyload); ?>'>
808 <label for="two_exclude_lazyload"
809 class="wd-label"><?php _e('Exclude from Lazy Load Images/Videos/Iframes', 'tenweb-speed-optimizer'); ?></label>
810 <textarea style="width: 100%" rows="6" name="two_exclude_lazyload"
811 id="two_exclude_lazyload"><?php echo isset($two_exclude_lazyload) ? esc_textarea($two_exclude_lazyload) : ''; ?></textarea>
812 <p class="description"><?php _e('Exclude Lazy Load Images Enter the image names or paths that should be excluded from lazy loading.', 'tenweb-speed-optimizer'); ?></p>
813 </div>
814 </div>
815 <div class="two_settings_tab two_tab_image">
816 <div class="two_settings_option">
817 <input <?php echo esc_html($two_serve_optimized_bg_image); ?> type="checkbox" name="two_serve_optimized_bg_image"
818 id="two_serve_optimized_bg_image">
819 <label for="two_serve_optimized_bg_image"
820 class="wd-label"><?php _e('Implement Optimized Background Images', 'tenweb-speed-optimizer'); ?></label>
821 </div>
822 <p class="description"><?php _e('Enable this option to use small background images for mobile and tablet devices', 'tenweb-speed-optimizer'); ?></p>
823 <?php
824 if (function_exists('wp_filter_content_tags') || function_exists('wp_make_content_images_responsive')) {
825 ?>
826 <div class="two_settings_option">
827 <input <?php echo esc_html($two_enable_use_srcset); ?> type="checkbox" name="two_enable_use_srcset"
828 id="two_enable_use_srcset">
829 <label for="two_enable_use_srcset"
830 class="wd-label"><?php _e('Enable responsive images', 'tenweb-speed-optimizer'); ?></label>
831 </div>
832 <p class="description"><?php _e('Enable this option to use small images for mobile and tablet devices', 'tenweb-speed-optimizer'); ?></p>
833 <?php
834 } ?>
835 <div class="two_settings_option">
836 <input <?php echo esc_html($two_do_not_optimize_images); ?> type="checkbox" name="two_do_not_optimize_images"
837 id="do_not_optimize_images">
838 <label for="do_not_optimize_images"
839 class="wd-label"><?php _e('Do Not Optimize Images', 'tenweb-speed-optimizer'); ?></label>
840 </div>
841 <p class="description"><?php _e('Enable this option to disable pagspeed module image optimization on your website homepage.', 'tenweb-speed-optimizer'); ?></p>
842 <div class="two_settings_option two_exclude_images_for_optimize"
843 style='<?php echo esc_attr($exclude_images_for_optimize); ?>'>
844 <label for="two_exclude_images_for_optimize"
845 class="wd-label"><?php _e('Exclude Images from Optimization', 'tenweb-speed-optimizer'); ?></label>
846 <textarea style="width: 100%" rows="6" name="two_exclude_images_for_optimize"
847 id="two_exclude_images_for_optimize"><?php echo isset($two_exclude_images_for_optimize) ? esc_textarea($two_exclude_images_for_optimize) : ''; ?></textarea>
848 <p class="description"><?php _e('Exclude Images for optimization Enter the image names or paths that should be excluded from pagespeed module optimization process.', 'tenweb-speed-optimizer'); ?></p>
849 </div>
850
851 <?php
852 if (TENWEB_SO_HOSTED_ON_10WEB) {
853 ?>
854 <div class="two_settings_option">
855 <input <?php echo esc_html($two_enable_nginx_webp_delivery); ?> type="checkbox" name="two_enable_nginx_webp_delivery"
856 id="two_enable_nginx_webp_delivery">
857 <label for="two_enable_nginx_webp_delivery"
858 class="wd-label"><?php _e('Deliver WebP images if available', 'tenweb-speed-optimizer'); ?></label>
859 </div>
860 <?php
861 } else {
862 // NginX server
863 if (TENWEB_SO_HOSTED_ON_NGINX) {
864 ?>
865 <div class="notice notice-info">
866 <p><?php _e('Your site is hosted on Nginx server.', 'tenweb-speed-optimizer'); ?></p>
867 <p><?php _e('To enable WebP delivery you\'ll need to modify hosting configs', 'tenweb-speed-optimizer'); ?></p>
868 <p><?php _e('Add this block before the server directive:', 'tenweb-speed-optimizer'); ?></p>
869 <pre><code>map $http_accept $webp_suffix {
870 default "";
871 "~*webp" ".webp";
872 }</code></pre>
873 <p><?php _e('Add this block inside the server directive:', 'tenweb-speed-optimizer'); ?></p>
874 <pre><code>location ~* ^.+\.(png|jpe?g)$ {
875 add_header Vary Accept;
876 try_files $uri$webp_suffix $uri =404;
877 }</code></pre>
878 </div>
879 <?php
880 } else {
881 ?>
882 <div class="two_settings_option">
883 <input <?php echo esc_html($two_enable_htaccess_webp_delivery);
884 disabled(!TENWEB_SO_HTACCESS_WRITABLE); ?> type="checkbox" name="two_enable_htaccess_webp_delivery"
885 id="two_enable_htaccess_webp_delivery">
886 <label for="two_enable_htaccess_webp_delivery"
887 class="wd-label"><?php _e('Deliver WebP images if available using rewrite rules.', 'tenweb-speed-optimizer'); ?></label>
888 <?php
889 if (!TENWEB_SO_HTACCESS_WRITABLE) {
890 ?>
891 <p class="description"><?php _e('Your .htaccess file cannot be written. Please fix this and then return to this page to enable this option.', 'tenweb-speed-optimizer'); ?></p>
892 <?php
893 } ?>
894 </div>
895 <?php
896 }
897 $two_webp_delivery_working = OptimizerUtils::testWebPDelivery(); ?>
898 <div id="two_webp_delivery_working" class="notice notice-success<?php echo $two_webp_delivery_working ? '' : ' two_hidden'; ?>">
899 <p><?php _e('WebP images delivery is enabled on hosting.', 'tenweb-speed-optimizer'); ?></p>
900 </div>
901 <?php
902 ?>
903 <div class="two_settings_option two_enable_picture_webp_delivery<?php echo $two_webp_delivery_working ? ' two_hidden' : ''; ?>">
904 <input <?php echo esc_html($two_enable_picture_webp_delivery); ?> type="checkbox" name="two_enable_picture_webp_delivery"
905 id="two_enable_picture_webp_delivery">
906 <label for="two_enable_picture_webp_delivery"
907 class="wd-label"><?php _e('Deliver WebP images if available using &lt;picture&gt; tags.', 'tenweb-speed-optimizer'); ?></label>
908 <p class="description"><?php _e('Each &lt;img&gt; will be replaced with a &lt;picture&gt; tag. Some themes may break, so make sure to verify that everything seems fine.', 'tenweb-speed-optimizer'); ?></p>
909 </div>
910 <?php
911 }
912 ?>
913 <div class="two_settings_option two_create_webp_list">
914 <label for="two_create_webp_list"
915 class="wd-label"><?php _e('Image or page URLs to generate WebP', 'tenweb-speed-optimizer'); ?></label>
916 <textarea style="width: 100%" rows="6" id="two_create_webp_list"></textarea>
917 <p class="description"><?php _e('Enter image url or page url (one per line) to create WebP versions. Leave this empty to generate for all images. Enter only absolute urls from this site. Other urls will be ignored.', 'tenweb-speed-optimizer'); ?></p>
918 </div>
919 <div class="two_settings_option">
920 <div class="two_webp_success_message notice notice-success is-dismissible">
921 <p><?php _e('Request is successfully sent. It might take some time to complete it.', 'tenweb-speed-optimizer'); ?></p>
922 </div>
923 <div class="two_webp_error_message notice notice-error is-dismissible">
924 <p><?php _e('Something went wrong.', 'tenweb-speed-optimizer'); ?></p>
925 </div>
926 <div>
927 <button class="two_webp_action two_regenerate_webp button" data-action="regenerate_webp"><?php _e(TENWEB_SO_HOSTED_ON_10WEB ? 'Regenerate WebP Images' : 'Regenerate WebP Images for Homepage', 'tenweb-speed-optimizer'); ?></button>
928 <button style="margin-left: 5px;" class="two_webp_action two_delete_webp button" data-action="delete_webp"><?php _e('Delete WebP Images', 'tenweb-speed-optimizer'); ?></button>
929 </div>
930 </div>
931 </div>
932 <div class="two_settings_tab two_tab_non_optimizable_pages">
933 <div class="two_settings_option">
934 <label for="two_non_optimizable_speed_optimizer_pages"
935 class="wd-label"><?php _e('Non Optimizable Pages List', 'tenweb-speed-optimizer'); ?></label>
936 <textarea style="width: 100%" rows="6" name="two_non_optimizable_speed_optimizer_pages"
937 id="two_non_optimizable_speed_optimizer_pages"><?php echo isset($two_non_optimizable_speed_optimizer_pages) ? esc_textarea($two_non_optimizable_speed_optimizer_pages) : ''; ?></textarea>
938 <p class="description">
939 <?php _e('Pages with such url\'s are non Optimizable, or we are not recommend to opimize them', 'tenweb-speed-optimizer'); ?>
940 </p>
941 </div>
942 </div>
943 <div class="clear"></div>
944 </form>
945 <div class="two_settings_tab two_tab_page_css">
946 <div class="two_table_container">
947 <p class="two_page_css_table_desc description"><?php _e('Below is the list of CSS files which are disabled or load asynchronously on specific pages.', 'tenweb-speed-optimizer'); ?></p>
948 <table id="two_page_css_table" class="display" style="width:100%">
949 <thead>
950 <tr>
951 <th>Css name</th>
952 <th>Url</th>
953 <th>Type</th>
954 <th>Edit/Duplicate/Delete</th>
955 </tr>
956 </thead>
957 <tbody>
958 <?php echo wp_kses_post($table_data); ?>
959 </tbody>
960 <tfoot>
961 <tr>
962 <th>Css name</th>
963 <th>Url</th>
964 <th>Type</th>
965 <th>Edit/Duplicate/Delete</th>
966 </tr>
967 </tfoot>
968 </table>
969 </div>
970 </div>
971 <?php require_once TENWEB_SO_DIR . 'views/templates/two_critical_css.php'; ?>
972 <div class="two_settings_tab two_tab_export_import">
973 <div class="two_export_import">
974 <p class="two_export_import_desc description"><?php _e('Export import settings', 'tenweb-speed-optimizer'); ?></p>
975 <a href="/?two_export" download class="two_export button" >Export settings</a>
976 <form action="" method="post" enctype="multipart/form-data">
977 Select json file to upload:
978 <input type="file" name="two_import" id="two_import">
979 <input type="submit" class="button two_import_settings_button" name="two_import_settings" value="Upload json settings" name="submit">
980 </form>
981 </div>
982 </div>
983 <?php require_once TENWEB_SO_DIR . 'views/templates/two_logs.php'; ?>
984 <div class="two_settings_actions">
985 <div class="two_message two_success_message notice notice-success is-dismissible">
986 <p><?php _e('Success!', 'tenweb-speed-optimizer'); ?></p>
987 </div>
988 <div class="two_message two_error_message notice notice-error is-dismissible">
989 <p><?php _e('Something went wrong.', 'tenweb-speed-optimizer'); ?></p>
990 </div>
991 <div class="buttons_actions">
992 <div class="wd-left-side">
993 <button class="two_save_settings button button-primary">
994 <?php _e('Save settings', 'tenweb-speed-optimizer'); ?>
995 </button>
996 <span class="spinner"></span>
997 </div>
998 <div class="wd-left-side">
999 <button class="two_clear_cache button" data-from="settings_page"><?php _e('Clear Cache', 'tenweb-speed-optimizer'); ?></button>
1000 <button style="margin-left: 5px;" class="two_regenerate_critical button"><?php _e('Regenerate All Critical CSS', 'tenweb-speed-optimizer'); ?></button>
1001 </div>
1002 </div>
1003 </div>
1004 </div>
1005 </div>
1006