PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 6.3.2
Admin and Site Enhancements (ASE) v6.3.2
9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / classes / class-settings-sanitization.php
admin-site-enhancements / classes Last commit date
class-activation.php 2 years ago class-admin-interface.php 2 years ago class-common-methods.php 2 years ago class-content-management.php 2 years ago class-custom-code.php 2 years ago class-deactivation.php 2 years ago class-disable-components.php 2 years ago class-login-logout.php 2 years ago class-optimizations.php 2 years ago class-security.php 2 years ago class-settings-fields-render.php 2 years ago class-settings-sanitization.php 2 years ago class-settings-sections-fields.php 2 years ago class-utilities.php 2 years ago
class-settings-sanitization.php
717 lines
1 <?php
2
3 namespace ASENHA\Classes;
4
5 /**
6 * Class related to sanitization of settings fields for saving as options
7 *
8 * @since 2.2.0
9 */
10 class Settings_Sanitization
11 {
12 /**
13 * Sanitize options
14 *
15 * @since 1.0.0
16 */
17 function sanitize_for_options( $options )
18 {
19 // Call WordPress globals required for validating the fields
20 global
21 $wp_roles,
22 $asenha_public_post_types,
23 $asenha_gutenberg_post_types,
24 $asenha_revisions_post_types,
25 $active_plugin_slugs
26 ;
27 $roles = $wp_roles->get_names();
28 // Content Duplication
29 if ( !isset( $options['enable_duplication'] ) ) {
30 $options['enable_duplication'] = false;
31 }
32 $options['enable_duplication'] = ( 'on' == $options['enable_duplication'] ? true : false );
33 // Content Order
34 if ( !isset( $options['content_order'] ) ) {
35 $options['content_order'] = false;
36 }
37 $options['content_order'] = ( 'on' == $options['content_order'] ? true : false );
38 if ( is_array( $asenha_public_post_types ) ) {
39 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
40 // e.g. $post_type_slug is post, $post_type_label is Posts
41
42 if ( post_type_supports( $post_type_slug, 'page-attributes' ) || is_post_type_hierarchical( $post_type_slug ) ) {
43 if ( !isset( $options['content_order_for'][$post_type_slug] ) ) {
44 $options['content_order_for'][$post_type_slug] = false;
45 }
46 $options['content_order_for'][$post_type_slug] = ( 'on' == $options['content_order_for'][$post_type_slug] ? true : false );
47 }
48
49 }
50 }
51 // Enable Media Replacement
52 if ( !isset( $options['enable_media_replacement'] ) ) {
53 $options['enable_media_replacement'] = false;
54 }
55 $options['enable_media_replacement'] = ( 'on' == $options['enable_media_replacement'] ? true : false );
56 // Enable SVG Upload
57 if ( !isset( $options['enable_svg_upload'] ) ) {
58 $options['enable_svg_upload'] = false;
59 }
60 $options['enable_svg_upload'] = ( 'on' == $options['enable_svg_upload'] ? true : false );
61 if ( is_array( $roles ) ) {
62 foreach ( $roles as $role_slug => $role_label ) {
63 // e.g. $role_slug is administrator, $role_label is Administrator
64 if ( !isset( $options['enable_svg_upload_for'][$role_slug] ) ) {
65 $options['enable_svg_upload_for'][$role_slug] = false;
66 }
67 $options['enable_svg_upload_for'][$role_slug] = ( 'on' == $options['enable_svg_upload_for'][$role_slug] ? true : false );
68 }
69 }
70 // Enable External Permalinks
71 if ( !isset( $options['enable_external_permalinks'] ) ) {
72 $options['enable_external_permalinks'] = false;
73 }
74 $options['enable_external_permalinks'] = ( 'on' == $options['enable_external_permalinks'] ? true : false );
75 if ( is_array( $asenha_public_post_types ) ) {
76 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
77 // e.g. $post_type_slug is post, $post_type_label is Posts
78 if ( !isset( $options['enable_external_permalinks_for'][$post_type_slug] ) ) {
79 $options['enable_external_permalinks_for'][$post_type_slug] = false;
80 }
81 $options['enable_external_permalinks_for'][$post_type_slug] = ( 'on' == $options['enable_external_permalinks_for'][$post_type_slug] ? true : false );
82 }
83 }
84 // Open All External Links in New Tab
85 if ( !isset( $options['external_links_new_tab'] ) ) {
86 $options['external_links_new_tab'] = false;
87 }
88 $options['external_links_new_tab'] = ( 'on' == $options['external_links_new_tab'] ? true : false );
89 // Allow Custom Nav Menu Items to Open in New Tab
90 if ( !isset( $options['custom_nav_menu_items_new_tab'] ) ) {
91 $options['custom_nav_menu_items_new_tab'] = false;
92 }
93 $options['custom_nav_menu_items_new_tab'] = ( 'on' == $options['custom_nav_menu_items_new_tab'] ? true : false );
94 // Enable Auto-Publishing of Posts with Missed Schedules
95 if ( !isset( $options['enable_missed_schedule_posts_auto_publish'] ) ) {
96 $options['enable_missed_schedule_posts_auto_publish'] = false;
97 }
98 $options['enable_missed_schedule_posts_auto_publish'] = ( 'on' == $options['enable_missed_schedule_posts_auto_publish'] ? true : false );
99 // =================================================================
100 // ADMIN INTERFACE
101 // =================================================================
102 // Hide or Modify Elements / Clean Up Admin Bar
103 if ( !isset( $options['hide_modify_elements'] ) ) {
104 $options['hide_modify_elements'] = false;
105 }
106 $options['hide_modify_elements'] = ( 'on' == $options['hide_modify_elements'] ? true : false );
107 if ( !isset( $options['hide_ab_wp_logo_menu'] ) ) {
108 $options['hide_ab_wp_logo_menu'] = false;
109 }
110 $options['hide_ab_wp_logo_menu'] = ( 'on' == $options['hide_ab_wp_logo_menu'] ? true : false );
111 if ( !isset( $options['hide_ab_customize_menu'] ) ) {
112 $options['hide_ab_customize_menu'] = false;
113 }
114 $options['hide_ab_customize_menu'] = ( 'on' == $options['hide_ab_customize_menu'] ? true : false );
115 if ( !isset( $options['hide_ab_comments_menu'] ) ) {
116 $options['hide_ab_comments_menu'] = false;
117 }
118 $options['hide_ab_comments_menu'] = ( 'on' == $options['hide_ab_comments_menu'] ? true : false );
119 if ( !isset( $options['hide_ab_updates_menu'] ) ) {
120 $options['hide_ab_updates_menu'] = false;
121 }
122 $options['hide_ab_updates_menu'] = ( 'on' == $options['hide_ab_updates_menu'] ? true : false );
123 if ( !isset( $options['hide_ab_new_content_menu'] ) ) {
124 $options['hide_ab_new_content_menu'] = false;
125 }
126 $options['hide_ab_new_content_menu'] = ( 'on' == $options['hide_ab_new_content_menu'] ? true : false );
127 if ( !isset( $options['hide_ab_howdy'] ) ) {
128 $options['hide_ab_howdy'] = false;
129 }
130 $options['hide_ab_howdy'] = ( 'on' == $options['hide_ab_howdy'] ? true : false );
131 if ( !isset( $options['hide_help_drawer'] ) ) {
132 $options['hide_help_drawer'] = false;
133 }
134 $options['hide_help_drawer'] = ( 'on' == $options['hide_help_drawer'] ? true : false );
135 // Hide Admin Notices
136 if ( !isset( $options['hide_admin_notices'] ) ) {
137 $options['hide_admin_notices'] = false;
138 }
139 $options['hide_admin_notices'] = ( 'on' == $options['hide_admin_notices'] ? true : false );
140 // Disable Dashboard Widgets
141 if ( !isset( $options['disable_dashboard_widgets'] ) ) {
142 $options['disable_dashboard_widgets'] = false;
143 }
144 $options['disable_dashboard_widgets'] = ( 'on' == $options['disable_dashboard_widgets'] ? true : false );
145 $extra_options = get_option( 'admin_site_enhancements_extra', array() );
146 $dashboard_widgets = $extra_options['dashboard_widgets'];
147 if ( is_array( $dashboard_widgets ) ) {
148 foreach ( $dashboard_widgets as $widget ) {
149 if ( !isset( $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] ) ) {
150 $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] = false;
151 }
152 $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] = ( 'on' == $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] ? true : false );
153 }
154 }
155 // Hide Admin Bar
156 if ( !isset( $options['hide_admin_bar'] ) ) {
157 $options['hide_admin_bar'] = false;
158 }
159 $options['hide_admin_bar'] = ( 'on' == $options['hide_admin_bar'] ? true : false );
160 if ( is_array( $roles ) ) {
161 foreach ( $roles as $role_slug => $role_label ) {
162 // e.g. $role_slug is administrator, $role_label is Administrator
163 // on the frontend
164 if ( !isset( $options['hide_admin_bar_for'][$role_slug] ) ) {
165 $options['hide_admin_bar_for'][$role_slug] = false;
166 }
167 $options['hide_admin_bar_for'][$role_slug] = ( 'on' == $options['hide_admin_bar_for'][$role_slug] ? true : false );
168 }
169 }
170 // Wider Admin Menu
171 if ( !isset( $options['wider_admin_menu'] ) ) {
172 $options['wider_admin_menu'] = false;
173 }
174 $options['wider_admin_menu'] = ( 'on' == $options['wider_admin_menu'] ? true : false );
175 if ( !isset( $options['admin_menu_width'] ) ) {
176 $options['admin_menu_width'] = 200;
177 }
178 $options['admin_menu_width'] = ( !empty($options['admin_menu_width']) ? sanitize_text_field( $options['admin_menu_width'] ) : 200 );
179 // Admin Menu Organizer
180 if ( !isset( $options['customize_admin_menu'] ) ) {
181 $options['customize_admin_menu'] = false;
182 }
183 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
184 if ( !isset( $options['custom_menu_order'] ) ) {
185 $options['custom_menu_order'] = '';
186 }
187 // The following fields are added on rendering of custom_menu_order field
188 if ( !isset( $options['custom_menu_titles'] ) ) {
189 $options['custom_menu_titles'] = '';
190 }
191 if ( !isset( $options['custom_menu_hidden'] ) ) {
192 $options['custom_menu_hidden'] = '';
193 }
194 // Enhance List Tables
195 if ( !isset( $options['enhance_list_tables'] ) ) {
196 $options['enhance_list_tables'] = false;
197 }
198 $options['enhance_list_tables'] = ( 'on' == $options['enhance_list_tables'] ? true : false );
199 // Show Featured Image Column
200 if ( !isset( $options['show_featured_image_column'] ) ) {
201 $options['show_featured_image_column'] = false;
202 }
203 $options['show_featured_image_column'] = ( 'on' == $options['show_featured_image_column'] ? true : false );
204 // Show Excerpt Column
205 if ( !isset( $options['show_excerpt_column'] ) ) {
206 $options['show_excerpt_column'] = false;
207 }
208 $options['show_excerpt_column'] = ( 'on' == $options['show_excerpt_column'] ? true : false );
209 // Show ID Column
210 if ( !isset( $options['show_id_column'] ) ) {
211 $options['show_id_column'] = false;
212 }
213 $options['show_id_column'] = ( 'on' == $options['show_id_column'] ? true : false );
214 // Show ID in Action Row
215 if ( !isset( $options['show_id_in_action_row'] ) ) {
216 $options['show_id_in_action_row'] = false;
217 }
218 $options['show_id_in_action_row'] = ( 'on' == $options['show_id_in_action_row'] ? true : false );
219 // Show Custom Taxonomy Filters
220 if ( !isset( $options['show_custom_taxonomy_filters'] ) ) {
221 $options['show_custom_taxonomy_filters'] = false;
222 }
223 $options['show_custom_taxonomy_filters'] = ( 'on' == $options['show_custom_taxonomy_filters'] ? true : false );
224 // Hide Comments Column
225 if ( !isset( $options['hide_comments_column'] ) ) {
226 $options['hide_comments_column'] = false;
227 }
228 $options['hide_comments_column'] = ( 'on' == $options['hide_comments_column'] ? true : false );
229 // Hide Post Tags Column
230 if ( !isset( $options['hide_post_tags_column'] ) ) {
231 $options['hide_post_tags_column'] = false;
232 }
233 $options['hide_post_tags_column'] = ( 'on' == $options['hide_post_tags_column'] ? true : false );
234 // =================================================================
235 // LOG IN | LOG OUT
236 // =================================================================
237 // Change Login URL
238 if ( !isset( $options['change_login_url'] ) ) {
239 $options['change_login_url'] = false;
240 }
241 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
242 if ( !isset( $options['custom_login_slug'] ) ) {
243 $options['custom_login_slug'] = 'backend';
244 }
245 $options['custom_login_slug'] = ( !empty($options['custom_login_slug']) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend' );
246 // Use Site Identity on the Login Page
247 if ( !isset( $options['site_identity_on_login'] ) ) {
248 $options['site_identity_on_login'] = false;
249 }
250 $options['site_identity_on_login'] = ( 'on' == $options['site_identity_on_login'] ? true : false );
251 // Enable Login Logout Menu
252 if ( !isset( $options['enable_login_logout_menu'] ) ) {
253 $options['enable_login_logout_menu'] = false;
254 }
255 $options['enable_login_logout_menu'] = ( 'on' == $options['enable_login_logout_menu'] ? true : false );
256 // Redirect After Login
257 if ( !isset( $options['redirect_after_login'] ) ) {
258 $options['redirect_after_login'] = false;
259 }
260 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
261 if ( !isset( $options['redirect_after_login_to_slug'] ) ) {
262 $options['redirect_after_login_to_slug'] = '';
263 }
264 $options['redirect_after_login_to_slug'] = ( !empty($options['redirect_after_login_to_slug']) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '' );
265 if ( is_array( $roles ) ) {
266 foreach ( $roles as $role_slug => $role_label ) {
267 // e.g. $role_slug is administrator, $role_label is Administrator
268 if ( !isset( $options['redirect_after_login_for'][$role_slug] ) ) {
269 $options['redirect_after_login_for'][$role_slug] = false;
270 }
271 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
272 }
273 }
274 // Redirect After Logout
275 if ( !isset( $options['redirect_after_logout'] ) ) {
276 $options['redirect_after_logout'] = false;
277 }
278 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
279 if ( !isset( $options['redirect_after_logout_to_slug'] ) ) {
280 $options['redirect_after_logout_to_slug'] = '';
281 }
282 $options['redirect_after_logout_to_slug'] = ( !empty($options['redirect_after_logout_to_slug']) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '' );
283 if ( is_array( $roles ) ) {
284 foreach ( $roles as $role_slug => $role_label ) {
285 // e.g. $role_slug is administrator, $role_label is Administrator
286 if ( !isset( $options['redirect_after_logout_for'][$role_slug] ) ) {
287 $options['redirect_after_logout_for'][$role_slug] = false;
288 }
289 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
290 }
291 }
292 // Enable Last Login Column
293 if ( !isset( $options['enable_last_login_column'] ) ) {
294 $options['enable_last_login_column'] = false;
295 }
296 $options['enable_last_login_column'] = ( 'on' == $options['enable_last_login_column'] ? true : false );
297 // Enable Custom Admin CSS
298 if ( !isset( $options['enable_custom_admin_css'] ) ) {
299 $options['enable_custom_admin_css'] = false;
300 }
301 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
302 if ( !isset( $options['custom_admin_css'] ) ) {
303 $options['custom_admin_css'] = '';
304 }
305 $options['custom_admin_css'] = ( !empty($options['custom_admin_css']) ? $options['custom_admin_css'] : '' );
306 // Enable Custom Frontend CSS
307 if ( !isset( $options['enable_custom_frontend_css'] ) ) {
308 $options['enable_custom_frontend_css'] = false;
309 }
310 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
311 if ( !isset( $options['custom_frontend_css'] ) ) {
312 $options['custom_frontend_css'] = '';
313 }
314 $options['custom_frontend_css'] = ( !empty($options['custom_frontend_css']) ? $options['custom_frontend_css'] : '' );
315 // Custom Body Class
316 if ( !isset( $options['enable_custom_body_class'] ) ) {
317 $options['enable_custom_body_class'] = false;
318 }
319 $options['enable_custom_body_class'] = ( 'on' == $options['enable_custom_body_class'] ? true : false );
320 if ( is_array( $asenha_public_post_types ) ) {
321 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
322 // e.g. $post_type_slug is post, $post_type_label is Posts
323 if ( !isset( $options['enable_custom_body_class_for'][$post_type_slug] ) ) {
324 $options['enable_custom_body_class_for'][$post_type_slug] = false;
325 }
326 $options['enable_custom_body_class_for'][$post_type_slug] = ( 'on' == $options['enable_custom_body_class_for'][$post_type_slug] ? true : false );
327 }
328 }
329 // Manage ads.txt and app-ads.txt
330 if ( !isset( $options['manage_ads_appads_txt'] ) ) {
331 $options['manage_ads_appads_txt'] = false;
332 }
333 $options['manage_ads_appads_txt'] = ( 'on' == $options['manage_ads_appads_txt'] ? true : false );
334 if ( !isset( $options['ads_txt_content'] ) ) {
335 $options['ads_txt_content'] = '';
336 }
337 $options['ads_txt_content'] = ( !empty($options['ads_txt_content']) ? $options['ads_txt_content'] : '' );
338 if ( !isset( $options['app_ads_txt_content'] ) ) {
339 $options['app_ads_txt_content'] = '';
340 }
341 $options['app_ads_txt_content'] = ( !empty($options['app_ads_txt_content']) ? $options['app_ads_txt_content'] : '' );
342 // Manage robots.txt
343 if ( !isset( $options['manage_robots_txt'] ) ) {
344 $options['manage_robots_txt'] = false;
345 }
346 $options['manage_robots_txt'] = ( 'on' == $options['manage_robots_txt'] ? true : false );
347
348 if ( !isset( $options['robots_txt_content'] ) ) {
349 $options['robots_txt_content'] = '';
350 } else {
351
352 if ( !empty($options['robots_txt_content']) ) {
353 $options['robots_txt_content'] = $options['robots_txt_content'];
354 $is_robots_txt_real_file = is_file( ABSPATH . 'robots.txt' );
355 // rename real robots.txt file if it exists and Mange robots.txt is enabled
356
357 if ( $is_robots_txt_real_file && 'on' == $options['manage_robots_txt'] ) {
358 $robots_txt_backup_filename = 'robots_backup_' . date( 'Y_m_d__H_i', time() ) . '.txt';
359 $extra_options = get_option( ASENHA_SLUG_U . '_extra', array() );
360 $extra_options['robots_txt_backup_file_name'] = $robots_txt_backup_filename;
361 update_option( ASENHA_SLUG_U . '_extra', $extra_options );
362 rename( ABSPATH . 'robots.txt', ABSPATH . $robots_txt_backup_filename );
363 } elseif ( 'on' != $options['manage_robots_txt'] ) {
364 $extra_options = get_option( ASENHA_SLUG_U . '_extra', array() );
365 if ( array_key_exists( 'robots_txt_backup_file_name', $extra_options ) ) {
366 if ( is_file( ABSPATH . $extra_options['robots_txt_backup_file_name'] ) ) {
367 rename( ABSPATH . $extra_options['robots_txt_backup_file_name'], ABSPATH . 'robots.txt' );
368 }
369 }
370 }
371
372 } else {
373 $options['robots_txt_content'] = '';
374 }
375
376 }
377
378 // Insert <head>, <body> and <footer> code
379 if ( !isset( $options['insert_head_body_footer_code'] ) ) {
380 $options['insert_head_body_footer_code'] = false;
381 }
382 $options['insert_head_body_footer_code'] = ( 'on' == $options['insert_head_body_footer_code'] ? true : false );
383 if ( !isset( $options['head_code_priority'] ) ) {
384 $options['head_code_priority'] = '';
385 }
386 $options['head_code_priority'] = ( isset( $options['head_code_priority'] ) ? $options['head_code_priority'] : 10 );
387 if ( !isset( $options['head_code'] ) ) {
388 $options['head_code'] = '';
389 }
390 $options['head_code'] = ( !empty($options['head_code']) ? $options['head_code'] : '' );
391 if ( !isset( $options['body_code_priority'] ) ) {
392 $options['body_code_priority'] = '';
393 }
394 $options['body_code_priority'] = ( isset( $options['body_code_priority'] ) ? $options['body_code_priority'] : 10 );
395 if ( !isset( $options['body_code'] ) ) {
396 $options['body_code'] = '';
397 }
398 $options['body_code'] = ( !empty($options['body_code']) ? $options['body_code'] : '' );
399 if ( !isset( $options['footer_code_priority'] ) ) {
400 $options['footer_code_priority'] = '';
401 }
402 $options['footer_code_priority'] = ( isset( $options['footer_code_priority'] ) ? $options['footer_code_priority'] : 10 );
403 if ( !isset( $options['footer_code'] ) ) {
404 $options['footer_code'] = '';
405 }
406 $options['footer_code'] = ( !empty($options['footer_code']) ? $options['footer_code'] : '' );
407 // =================================================================
408 // DISABLE COMPONENTS
409 // =================================================================
410 // Disable Gutenberg
411 if ( !isset( $options['disable_gutenberg'] ) ) {
412 $options['disable_gutenberg'] = false;
413 }
414 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
415 if ( is_array( $asenha_gutenberg_post_types ) ) {
416 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) {
417 // e.g. $post_type_slug is post,
418 if ( !isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) {
419 $options['disable_gutenberg_for'][$post_type_slug] = false;
420 }
421 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
422 }
423 }
424 if ( !isset( $options['disable_gutenberg_frontend_styles'] ) ) {
425 $options['disable_gutenberg_frontend_styles'] = false;
426 }
427 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
428 // Disable Block-Based Widgets Screen
429 if ( !isset( $options['disable_block_widgets'] ) ) {
430 $options['disable_block_widgets'] = false;
431 }
432 $options['disable_block_widgets'] = ( 'on' == $options['disable_block_widgets'] ? true : false );
433 // Disable Comments
434 if ( !isset( $options['disable_comments'] ) ) {
435 $options['disable_comments'] = false;
436 }
437 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
438 if ( is_array( $asenha_public_post_types ) ) {
439 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
440 // e.g. $post_type_slug is post, $post_type_label is Posts
441 if ( !isset( $options['disable_comments_for'][$post_type_slug] ) ) {
442 $options['disable_comments_for'][$post_type_slug] = false;
443 }
444 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
445 }
446 }
447 // Disable REST API
448 if ( !isset( $options['disable_rest_api'] ) ) {
449 $options['disable_rest_api'] = false;
450 }
451 $options['disable_rest_api'] = ( 'on' == $options['disable_rest_api'] ? true : false );
452 // Disable Feeds
453 if ( !isset( $options['disable_feeds'] ) ) {
454 $options['disable_feeds'] = false;
455 }
456 $options['disable_feeds'] = ( 'on' == $options['disable_feeds'] ? true : false );
457 // Disable Auto Updates
458 if ( !isset( $options['disable_all_updates'] ) ) {
459 $options['disable_all_updates'] = false;
460 }
461 $options['disable_all_updates'] = ( 'on' == $options['disable_all_updates'] ? true : false );
462 // Disable Smaller Components
463 if ( !isset( $options['disable_smaller_components'] ) ) {
464 $options['disable_smaller_components'] = false;
465 }
466 $options['disable_smaller_components'] = ( 'on' == $options['disable_smaller_components'] ? true : false );
467 if ( !isset( $options['disable_head_generator_tag'] ) ) {
468 $options['disable_head_generator_tag'] = false;
469 }
470 $options['disable_head_generator_tag'] = ( 'on' == $options['disable_head_generator_tag'] ? true : false );
471 if ( !isset( $options['disable_resource_version_number'] ) ) {
472 $options['disable_resource_version_number'] = false;
473 }
474 $options['disable_resource_version_number'] = ( 'on' == $options['disable_resource_version_number'] ? true : false );
475 if ( !isset( $options['disable_head_wlwmanifest_tag'] ) ) {
476 $options['disable_head_wlwmanifest_tag'] = false;
477 }
478 $options['disable_head_wlwmanifest_tag'] = ( 'on' == $options['disable_head_wlwmanifest_tag'] ? true : false );
479 if ( !isset( $options['disable_head_rsd_tag'] ) ) {
480 $options['disable_head_rsd_tag'] = false;
481 }
482 $options['disable_head_rsd_tag'] = ( 'on' == $options['disable_head_rsd_tag'] ? true : false );
483 if ( !isset( $options['disable_head_shortlink_tag'] ) ) {
484 $options['disable_head_shortlink_tag'] = false;
485 }
486 $options['disable_head_shortlink_tag'] = ( 'on' == $options['disable_head_shortlink_tag'] ? true : false );
487 if ( !isset( $options['disable_frontend_dashicons'] ) ) {
488 $options['disable_frontend_dashicons'] = false;
489 }
490 $options['disable_frontend_dashicons'] = ( 'on' == $options['disable_frontend_dashicons'] ? true : false );
491 if ( !isset( $options['disable_emoji_support'] ) ) {
492 $options['disable_emoji_support'] = false;
493 }
494 $options['disable_emoji_support'] = ( 'on' == $options['disable_emoji_support'] ? true : false );
495 if ( !isset( $options['disable_jquery_migrate'] ) ) {
496 $options['disable_jquery_migrate'] = false;
497 }
498 $options['disable_jquery_migrate'] = ( 'on' == $options['disable_jquery_migrate'] ? true : false );
499 // =================================================================
500 // SECURITY
501 // =================================================================
502 // Limit Login Attempts
503 if ( !isset( $options['limit_login_attempts'] ) ) {
504 $options['limit_login_attempts'] = false;
505 }
506 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
507 if ( !isset( $options['login_fails_allowed'] ) ) {
508 $options['login_fails_allowed'] = 3;
509 }
510 $options['login_fails_allowed'] = ( !empty($options['login_fails_allowed']) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3 );
511 if ( !isset( $options['login_lockout_maxcount'] ) ) {
512 $options['login_lockout_maxcount'] = 3;
513 }
514 $options['login_lockout_maxcount'] = ( !empty($options['login_lockout_maxcount']) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3 );
515 if ( !isset( $options['login_attempts_log_table'] ) ) {
516 $options['login_attempts_log_table'] = '';
517 }
518 $options['login_attempts_log_table'] = '';
519 // Obfuscate Author Slugs
520 if ( !isset( $options['obfuscate_author_slugs'] ) ) {
521 $options['obfuscate_author_slugs'] = false;
522 }
523 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
524 // Obfuscate Email Address
525 if ( !isset( $options['obfuscate_email_address'] ) ) {
526 $options['obfuscate_email_address'] = false;
527 }
528 $options['obfuscate_email_address'] = ( 'on' == $options['obfuscate_email_address'] ? true : false );
529 if ( !isset( $options['obfuscate_email_address_in_content'] ) ) {
530 $options['obfuscate_email_address_in_content'] = false;
531 }
532 $options['obfuscate_email_address_in_content'] = ( 'on' == $options['obfuscate_email_address_in_content'] ? true : false );
533 // Disable XML-RPC
534 if ( !isset( $options['disable_xmlrpc'] ) ) {
535 $options['disable_xmlrpc'] = false;
536 }
537 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
538 // =================================================================
539 // OPTIMIZATIONS
540 // =================================================================
541 // Image Upload Control
542 if ( !isset( $options['image_upload_control'] ) ) {
543 $options['image_upload_control'] = false;
544 }
545 $options['image_upload_control'] = ( 'on' == $options['image_upload_control'] ? true : false );
546 if ( !isset( $options['image_max_width'] ) ) {
547 $options['image_max_width'] = 1920;
548 }
549 $options['image_max_width'] = ( !empty($options['image_max_width']) ? sanitize_text_field( $options['image_max_width'] ) : 1920 );
550 if ( !isset( $options['image_max_height'] ) ) {
551 $options['image_max_height'] = 1920;
552 }
553 $options['image_max_height'] = ( !empty($options['image_max_height']) ? sanitize_text_field( $options['image_max_height'] ) : 1920 );
554 // Enable Revisions Control
555 if ( !isset( $options['enable_revisions_control'] ) ) {
556 $options['enable_revisions_control'] = false;
557 }
558 $options['enable_revisions_control'] = ( 'on' == $options['enable_revisions_control'] ? true : false );
559 if ( !isset( $options['revisions_max_number'] ) ) {
560 $options['revisions_max_number'] = 10;
561 }
562 $options['revisions_max_number'] = ( !empty($options['revisions_max_number']) ? sanitize_text_field( $options['revisions_max_number'] ) : 10 );
563 if ( is_array( $asenha_revisions_post_types ) ) {
564 foreach ( $asenha_revisions_post_types as $post_type_slug => $post_type_label ) {
565 // e.g. $post_type_slug is post,
566 if ( !isset( $options['enable_revisions_control_for'][$post_type_slug] ) ) {
567 $options['enable_revisions_control_for'][$post_type_slug] = false;
568 }
569 $options['enable_revisions_control_for'][$post_type_slug] = ( 'on' == $options['enable_revisions_control_for'][$post_type_slug] ? true : false );
570 }
571 }
572 // Enable Heartbeat Control
573 if ( !isset( $options['enable_heartbeat_control'] ) ) {
574 $options['enable_heartbeat_control'] = false;
575 }
576 $options['enable_heartbeat_control'] = ( 'on' == $options['enable_heartbeat_control'] ? true : false );
577 if ( !isset( $options['heartbeat_control_for_admin_pages'] ) ) {
578 $options['heartbeat_control_for_admin_pages'] = 'default';
579 }
580 if ( !isset( $options['heartbeat_control_for_post_edit'] ) ) {
581 $options['heartbeat_control_for_post_edit'] = 'default';
582 }
583 if ( !isset( $options['heartbeat_control_for_frontend'] ) ) {
584 $options['heartbeat_control_for_frontend'] = 'default';
585 }
586 if ( !isset( $options['heartbeat_interval_for_admin_pages'] ) ) {
587 $options['heartbeat_interval_for_admin_pages'] = 60;
588 }
589 $options['heartbeat_interval_for_admin_pages'] = ( !empty($options['heartbeat_interval_for_admin_pages']) ? sanitize_text_field( $options['heartbeat_interval_for_admin_pages'] ) : 60 );
590 if ( !isset( $options['heartbeat_interval_for_post_edit'] ) ) {
591 $options['heartbeat_interval_for_post_edit'] = 15;
592 }
593 $options['heartbeat_interval_for_post_edit'] = ( !empty($options['heartbeat_interval_for_post_edit']) ? sanitize_text_field( $options['heartbeat_interval_for_post_edit'] ) : 15 );
594 if ( !isset( $options['heartbeat_interval_for_frontend'] ) ) {
595 $options['heartbeat_interval_for_frontend'] = 60;
596 }
597 $options['heartbeat_interval_for_frontend'] = ( !empty($options['heartbeat_interval_for_frontend']) ? sanitize_text_field( $options['heartbeat_interval_for_frontend'] ) : 60 );
598 // =================================================================
599 // UTILITIES
600 // =================================================================
601 // SMTP Email Delivery
602 if ( !isset( $options['smtp_email_delivery'] ) ) {
603 $options['smtp_email_delivery'] = false;
604 }
605 $options['smtp_email_delivery'] = ( 'on' == $options['smtp_email_delivery'] ? true : false );
606 if ( !isset( $options['smtp_host'] ) ) {
607 $options['smtp_host'] = '';
608 }
609 $options['smtp_host'] = ( !empty($options['smtp_host']) ? sanitize_text_field( $options['smtp_host'] ) : '' );
610 if ( !isset( $options['smtp_port'] ) ) {
611 $options['smtp_port'] = '';
612 }
613 $options['smtp_port'] = ( !empty($options['smtp_port']) ? $options['smtp_port'] : '' );
614 if ( !isset( $options['smtp_security'] ) ) {
615 $options['smtp_security'] = 'none';
616 }
617 $options['smtp_security'] = ( !empty($options['smtp_security']) ? $options['smtp_security'] : 'none' );
618 if ( !isset( $options['smtp_username'] ) ) {
619 $options['smtp_username'] = '';
620 }
621 $options['smtp_username'] = ( !empty($options['smtp_username']) ? sanitize_text_field( $options['smtp_username'] ) : '' );
622 if ( !isset( $options['smtp_password'] ) ) {
623 $options['smtp_password'] = '';
624 }
625 $options['smtp_password'] = ( !empty($options['smtp_password']) ? $options['smtp_password'] : '' );
626 if ( !isset( $options['smtp_default_from_name'] ) ) {
627 $options['smtp_default_from_name'] = '';
628 }
629 $options['smtp_default_from_name'] = ( !empty($options['smtp_default_from_name']) ? sanitize_text_field( $options['smtp_default_from_name'] ) : '' );
630 if ( !isset( $options['smtp_default_from_email'] ) ) {
631 $options['smtp_default_from_email'] = '';
632 }
633 $options['smtp_default_from_email'] = ( !empty($options['smtp_default_from_email']) ? sanitize_text_field( $options['smtp_default_from_email'] ) : '' );
634 if ( !isset( $options['smtp_default_from_description'] ) ) {
635 $options['smtp_default_from_description'] = '';
636 }
637 if ( !isset( $options['smtp_force_from'] ) ) {
638 $options['smtp_force_from'] = false;
639 }
640 $options['smtp_force_from'] = ( 'on' == $options['smtp_force_from'] ? true : false );
641 if ( !isset( $options['smtp_bypass_ssl_verification'] ) ) {
642 $options['smtp_bypass_ssl_verification'] = false;
643 }
644 $options['smtp_bypass_ssl_verification'] = ( 'on' == $options['smtp_bypass_ssl_verification'] ? true : false );
645 if ( !isset( $options['smtp_debug'] ) ) {
646 $options['smtp_debug'] = false;
647 }
648 $options['smtp_debug'] = ( 'on' == $options['smtp_debug'] ? true : false );
649 // Multiple User Roles
650 if ( !isset( $options['multiple_user_roles'] ) ) {
651 $options['multiple_user_roles'] = false;
652 }
653 $options['multiple_user_roles'] = ( 'on' == $options['multiple_user_roles'] ? true : false );
654 // Image Sizes Panel
655 if ( !isset( $options['image_sizes_panel'] ) ) {
656 $options['image_sizes_panel'] = false;
657 }
658 $options['image_sizes_panel'] = ( 'on' == $options['image_sizes_panel'] ? true : false );
659 // View Admin as Role
660 if ( !isset( $options['view_admin_as_role'] ) ) {
661 $options['view_admin_as_role'] = false;
662 }
663 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
664 // Enable Password Protection
665 if ( !isset( $options['enable_password_protection'] ) ) {
666 $options['enable_password_protection'] = false;
667 }
668 $options['enable_password_protection'] = ( 'on' == $options['enable_password_protection'] ? true : false );
669 if ( !isset( $options['password_protection_password'] ) ) {
670 $options['password_protection_password'] = 'secret';
671 }
672 $options['password_protection_password'] = ( !empty($options['password_protection_password']) ? $options['password_protection_password'] : 'secret' );
673 // Maintenance Mode
674 if ( !isset( $options['maintenance_mode'] ) ) {
675 $options['maintenance_mode'] = false;
676 }
677 $options['maintenance_mode'] = ( 'on' == $options['maintenance_mode'] ? true : false );
678 if ( !isset( $options['maintenance_page_heading'] ) ) {
679 $options['maintenance_page_heading'] = 'We\'ll be back soon.';
680 }
681 $options['maintenance_page_heading'] = ( !empty($options['maintenance_page_heading']) ? sanitize_text_field( $options['maintenance_page_heading'] ) : 'We\'ll be back soon.' );
682 if ( !isset( $options['maintenance_page_description'] ) ) {
683 $options['maintenance_page_description'] = 'This site is undergoing maintenance for an extended period today. Thanks for your patience.';
684 }
685 $options['maintenance_page_description'] = ( !empty($options['maintenance_page_description']) ? sanitize_text_field( $options['maintenance_page_description'] ) : 'This site is undergoing maintenance for an extended period today. Thanks for your patience.' );
686 if ( !isset( $options['maintenance_page_background'] ) ) {
687 $options['maintenance_page_background'] = 'stripes';
688 }
689 $options['maintenance_page_background'] = ( !empty($options['maintenance_page_background']) ? $options['maintenance_page_background'] : 'stripes' );
690 if ( !isset( $options['maintenance_mode_description'] ) ) {
691 $options['maintenance_mode_description'] = '';
692 }
693 // Redirect 404 to Homepage
694 if ( !isset( $options['redirect_404_to_homepage'] ) ) {
695 $options['redirect_404_to_homepage'] = false;
696 }
697 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
698 // Show System Summary in At a Glance Dashboard Widget
699 if ( !isset( $options['display_system_summary'] ) ) {
700 $options['display_system_summary'] = false;
701 }
702 $options['display_system_summary'] = ( 'on' == $options['display_system_summary'] ? true : false );
703 return $options;
704 }
705
706 /**
707 * Sanitize checkbox field. For reference purpose. Not currently in use.
708 *
709 * @since 1.0.0
710 */
711 function asenha_sanitize_checkbox_field( $value )
712 {
713 // A checked checkbox field will originally be saved as an 'on' value in the option. We transform that into true (shown as 1) or false (shown as empty value)
714 return ( 'on' === $value ? true : false );
715 }
716
717 }