PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 6.9.1
Admin and Site Enhancements (ASE) v6.9.1
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
760 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 $options_extra = get_option( ASENHA_SLUG_U . '_extra', array() );
29 if ( false === $options_extra ) {
30 add_option( ASENHA_SLUG_U . '_extra', array() );
31 }
32 // Content Duplication
33 if ( !isset( $options['enable_duplication'] ) ) {
34 $options['enable_duplication'] = false;
35 }
36 $options['enable_duplication'] = ( 'on' == $options['enable_duplication'] ? true : false );
37 if ( !isset( $options['duplication_redirect_destination'] ) ) {
38 $options['duplication_redirect_destination'] = 'edit';
39 }
40 // Content Order
41 if ( !isset( $options['content_order'] ) ) {
42 $options['content_order'] = false;
43 }
44 $options['content_order'] = ( 'on' == $options['content_order'] ? true : false );
45 if ( is_array( $asenha_public_post_types ) ) {
46 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
47 // e.g. $post_type_slug is post, $post_type_label is Posts
48
49 if ( post_type_supports( $post_type_slug, 'page-attributes' ) || is_post_type_hierarchical( $post_type_slug ) ) {
50 if ( !isset( $options['content_order_for'][$post_type_slug] ) ) {
51 $options['content_order_for'][$post_type_slug] = false;
52 }
53 $options['content_order_for'][$post_type_slug] = ( 'on' == $options['content_order_for'][$post_type_slug] ? true : false );
54 }
55
56 }
57 }
58 // Enable Media Replacement
59 if ( !isset( $options['enable_media_replacement'] ) ) {
60 $options['enable_media_replacement'] = false;
61 }
62 $options['enable_media_replacement'] = ( 'on' == $options['enable_media_replacement'] ? true : false );
63 // Media Library Infinite Scrolling
64 if ( !isset( $options['media_library_infinite_scrolling'] ) ) {
65 $options['media_library_infinite_scrolling'] = false;
66 }
67 $options['media_library_infinite_scrolling'] = ( 'on' == $options['media_library_infinite_scrolling'] ? true : false );
68 // Enable SVG Upload
69 if ( !isset( $options['enable_svg_upload'] ) ) {
70 $options['enable_svg_upload'] = false;
71 }
72 $options['enable_svg_upload'] = ( 'on' == $options['enable_svg_upload'] ? true : false );
73 if ( is_array( $roles ) ) {
74 foreach ( $roles as $role_slug => $role_label ) {
75 // e.g. $role_slug is administrator, $role_label is Administrator
76 if ( !isset( $options['enable_svg_upload_for'][$role_slug] ) ) {
77 $options['enable_svg_upload_for'][$role_slug] = false;
78 }
79 $options['enable_svg_upload_for'][$role_slug] = ( 'on' == $options['enable_svg_upload_for'][$role_slug] ? true : false );
80 }
81 }
82 // Enable External Permalinks
83 if ( !isset( $options['enable_external_permalinks'] ) ) {
84 $options['enable_external_permalinks'] = false;
85 }
86 $options['enable_external_permalinks'] = ( 'on' == $options['enable_external_permalinks'] ? true : false );
87 if ( is_array( $asenha_public_post_types ) ) {
88 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
89 // e.g. $post_type_slug is post, $post_type_label is Posts
90 if ( !isset( $options['enable_external_permalinks_for'][$post_type_slug] ) ) {
91 $options['enable_external_permalinks_for'][$post_type_slug] = false;
92 }
93 $options['enable_external_permalinks_for'][$post_type_slug] = ( 'on' == $options['enable_external_permalinks_for'][$post_type_slug] ? true : false );
94 }
95 }
96 // Open All External Links in New Tab
97 if ( !isset( $options['external_links_new_tab'] ) ) {
98 $options['external_links_new_tab'] = false;
99 }
100 $options['external_links_new_tab'] = ( 'on' == $options['external_links_new_tab'] ? true : false );
101 // Allow Custom Nav Menu Items to Open in New Tab
102 if ( !isset( $options['custom_nav_menu_items_new_tab'] ) ) {
103 $options['custom_nav_menu_items_new_tab'] = false;
104 }
105 $options['custom_nav_menu_items_new_tab'] = ( 'on' == $options['custom_nav_menu_items_new_tab'] ? true : false );
106 // Enable Auto-Publishing of Posts with Missed Schedules
107 if ( !isset( $options['enable_missed_schedule_posts_auto_publish'] ) ) {
108 $options['enable_missed_schedule_posts_auto_publish'] = false;
109 }
110 $options['enable_missed_schedule_posts_auto_publish'] = ( 'on' == $options['enable_missed_schedule_posts_auto_publish'] ? true : false );
111 // =================================================================
112 // ADMIN INTERFACE
113 // =================================================================
114 // Hide or Modify Elements / Clean Up Admin Bar
115 if ( !isset( $options['hide_modify_elements'] ) ) {
116 $options['hide_modify_elements'] = false;
117 }
118 $options['hide_modify_elements'] = ( 'on' == $options['hide_modify_elements'] ? true : false );
119 if ( !isset( $options['hide_ab_wp_logo_menu'] ) ) {
120 $options['hide_ab_wp_logo_menu'] = false;
121 }
122 $options['hide_ab_wp_logo_menu'] = ( 'on' == $options['hide_ab_wp_logo_menu'] ? true : false );
123 if ( !isset( $options['hide_ab_customize_menu'] ) ) {
124 $options['hide_ab_customize_menu'] = false;
125 }
126 $options['hide_ab_customize_menu'] = ( 'on' == $options['hide_ab_customize_menu'] ? true : false );
127 if ( !isset( $options['hide_ab_comments_menu'] ) ) {
128 $options['hide_ab_comments_menu'] = false;
129 }
130 $options['hide_ab_comments_menu'] = ( 'on' == $options['hide_ab_comments_menu'] ? true : false );
131 if ( !isset( $options['hide_ab_updates_menu'] ) ) {
132 $options['hide_ab_updates_menu'] = false;
133 }
134 $options['hide_ab_updates_menu'] = ( 'on' == $options['hide_ab_updates_menu'] ? true : false );
135 if ( !isset( $options['hide_ab_new_content_menu'] ) ) {
136 $options['hide_ab_new_content_menu'] = false;
137 }
138 $options['hide_ab_new_content_menu'] = ( 'on' == $options['hide_ab_new_content_menu'] ? true : false );
139 if ( !isset( $options['hide_ab_howdy'] ) ) {
140 $options['hide_ab_howdy'] = false;
141 }
142 $options['hide_ab_howdy'] = ( 'on' == $options['hide_ab_howdy'] ? true : false );
143 if ( !isset( $options['hide_help_drawer'] ) ) {
144 $options['hide_help_drawer'] = false;
145 }
146 $options['hide_help_drawer'] = ( 'on' == $options['hide_help_drawer'] ? true : false );
147 // Hide Admin Notices
148 if ( !isset( $options['hide_admin_notices'] ) ) {
149 $options['hide_admin_notices'] = false;
150 }
151 $options['hide_admin_notices'] = ( 'on' == $options['hide_admin_notices'] ? true : false );
152 // Disable Dashboard Widgets
153 if ( !isset( $options['disable_dashboard_widgets'] ) ) {
154 $options['disable_dashboard_widgets'] = false;
155 }
156 $options['disable_dashboard_widgets'] = ( 'on' == $options['disable_dashboard_widgets'] ? true : false );
157 $dashboard_widgets = $options_extra['dashboard_widgets'];
158 if ( is_array( $dashboard_widgets ) ) {
159 foreach ( $dashboard_widgets as $widget ) {
160 if ( !isset( $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] ) ) {
161 $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] = false;
162 }
163 $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] = ( 'on' == $options['disabled_dashboard_widgets'][$widget['id'] . '__' . $widget['context'] . '__' . $widget['priority']] ? true : false );
164 }
165 }
166 // Hide Admin Bar
167 if ( !isset( $options['hide_admin_bar'] ) ) {
168 $options['hide_admin_bar'] = false;
169 }
170 $options['hide_admin_bar'] = ( 'on' == $options['hide_admin_bar'] ? true : false );
171 if ( is_array( $roles ) ) {
172 foreach ( $roles as $role_slug => $role_label ) {
173 // e.g. $role_slug is administrator, $role_label is Administrator
174 // on the frontend
175 if ( !isset( $options['hide_admin_bar_for'][$role_slug] ) ) {
176 $options['hide_admin_bar_for'][$role_slug] = false;
177 }
178 $options['hide_admin_bar_for'][$role_slug] = ( 'on' == $options['hide_admin_bar_for'][$role_slug] ? true : false );
179 }
180 }
181 // Wider Admin Menu
182 if ( !isset( $options['wider_admin_menu'] ) ) {
183 $options['wider_admin_menu'] = false;
184 }
185 $options['wider_admin_menu'] = ( 'on' == $options['wider_admin_menu'] ? true : false );
186 if ( !isset( $options['admin_menu_width'] ) ) {
187 $options['admin_menu_width'] = 200;
188 }
189 $options['admin_menu_width'] = ( !empty($options['admin_menu_width']) ? sanitize_text_field( $options['admin_menu_width'] ) : 200 );
190 // Admin Menu Organizer
191 if ( !isset( $options['customize_admin_menu'] ) ) {
192 $options['customize_admin_menu'] = false;
193 }
194 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
195 if ( !isset( $options['custom_menu_order'] ) ) {
196 $options['custom_menu_order'] = '';
197 }
198 // The following fields are added on rendering of custom_menu_order field
199 if ( !isset( $options['custom_menu_titles'] ) ) {
200 $options['custom_menu_titles'] = '';
201 }
202 if ( !isset( $options['custom_menu_hidden'] ) ) {
203 $options['custom_menu_hidden'] = '';
204 }
205 // Enhance List Tables
206 if ( !isset( $options['enhance_list_tables'] ) ) {
207 $options['enhance_list_tables'] = false;
208 }
209 $options['enhance_list_tables'] = ( 'on' == $options['enhance_list_tables'] ? true : false );
210 // Show Featured Image Column
211 if ( !isset( $options['show_featured_image_column'] ) ) {
212 $options['show_featured_image_column'] = false;
213 }
214 $options['show_featured_image_column'] = ( 'on' == $options['show_featured_image_column'] ? true : false );
215 // Show Excerpt Column
216 if ( !isset( $options['show_excerpt_column'] ) ) {
217 $options['show_excerpt_column'] = false;
218 }
219 $options['show_excerpt_column'] = ( 'on' == $options['show_excerpt_column'] ? true : false );
220 // Show ID Column
221 if ( !isset( $options['show_id_column'] ) ) {
222 $options['show_id_column'] = false;
223 }
224 $options['show_id_column'] = ( 'on' == $options['show_id_column'] ? true : false );
225 // Show ID in Action Row
226 if ( !isset( $options['show_id_in_action_row'] ) ) {
227 $options['show_id_in_action_row'] = false;
228 }
229 $options['show_id_in_action_row'] = ( 'on' == $options['show_id_in_action_row'] ? true : false );
230 // Show Custom Taxonomy Filters
231 if ( !isset( $options['show_custom_taxonomy_filters'] ) ) {
232 $options['show_custom_taxonomy_filters'] = false;
233 }
234 $options['show_custom_taxonomy_filters'] = ( 'on' == $options['show_custom_taxonomy_filters'] ? true : false );
235 // Hide Comments Column
236 if ( !isset( $options['hide_comments_column'] ) ) {
237 $options['hide_comments_column'] = false;
238 }
239 $options['hide_comments_column'] = ( 'on' == $options['hide_comments_column'] ? true : false );
240 // Hide Post Tags Column
241 if ( !isset( $options['hide_post_tags_column'] ) ) {
242 $options['hide_post_tags_column'] = false;
243 }
244 $options['hide_post_tags_column'] = ( 'on' == $options['hide_post_tags_column'] ? true : false );
245 // Display Active Plugins First
246 if ( !isset( $options['display_active_plugins_first'] ) ) {
247 $options['display_active_plugins_first'] = false;
248 }
249 $options['display_active_plugins_first'] = ( 'on' == $options['display_active_plugins_first'] ? true : false );
250 // Custom Admin Footer Text
251 if ( !isset( $options['custom_admin_footer_text'] ) ) {
252 $options['custom_admin_footer_text'] = false;
253 }
254 $options['custom_admin_footer_text'] = ( 'on' == $options['custom_admin_footer_text'] ? true : false );
255 if ( !isset( $options['custom_admin_footer_left'] ) ) {
256 $options['custom_admin_footer_left'] = '';
257 }
258 $options['custom_admin_footer_left'] = ( !empty($options['custom_admin_footer_left']) ? wp_kses_post( $options['custom_admin_footer_left'] ) : '' );
259 if ( !isset( $options['custom_admin_footer_right'] ) ) {
260 $options['custom_admin_footer_right'] = '';
261 }
262 $options['custom_admin_footer_right'] = ( !empty($options['custom_admin_footer_right']) ? wp_kses_post( $options['custom_admin_footer_right'] ) : '' );
263 // =================================================================
264 // LOG IN | LOG OUT
265 // =================================================================
266 // Change Login URL
267 if ( !isset( $options['change_login_url'] ) ) {
268 $options['change_login_url'] = false;
269 }
270 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
271 if ( !isset( $options['custom_login_slug'] ) ) {
272 $options['custom_login_slug'] = 'backend';
273 }
274 $options['custom_login_slug'] = ( !empty($options['custom_login_slug']) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend' );
275 // Login ID Type
276 if ( !isset( $options['login_id_type_restriction'] ) ) {
277 $options['login_id_type_restriction'] = false;
278 }
279 $options['login_id_type_restriction'] = ( 'on' == $options['login_id_type_restriction'] ? true : false );
280 if ( !isset( $options['login_id_type'] ) ) {
281 $options['login_id_type'] = 'username';
282 }
283 $options['login_id_type'] = ( !empty($options['login_id_type']) ? sanitize_text_field( $options['login_id_type'] ) : 'username' );
284 // Use Site Identity on the Login Page
285 if ( !isset( $options['site_identity_on_login'] ) ) {
286 $options['site_identity_on_login'] = false;
287 }
288 $options['site_identity_on_login'] = ( 'on' == $options['site_identity_on_login'] ? true : false );
289 // Enable Login Logout Menu
290 if ( !isset( $options['enable_login_logout_menu'] ) ) {
291 $options['enable_login_logout_menu'] = false;
292 }
293 $options['enable_login_logout_menu'] = ( 'on' == $options['enable_login_logout_menu'] ? true : false );
294 // Redirect After Login
295 if ( !isset( $options['redirect_after_login'] ) ) {
296 $options['redirect_after_login'] = false;
297 }
298 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
299 if ( !isset( $options['redirect_after_login_to_slug'] ) ) {
300 $options['redirect_after_login_to_slug'] = '';
301 }
302 $options['redirect_after_login_to_slug'] = ( !empty($options['redirect_after_login_to_slug']) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '' );
303 if ( is_array( $roles ) ) {
304 foreach ( $roles as $role_slug => $role_label ) {
305 // e.g. $role_slug is administrator, $role_label is Administrator
306 if ( !isset( $options['redirect_after_login_for'][$role_slug] ) ) {
307 $options['redirect_after_login_for'][$role_slug] = false;
308 }
309 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
310 }
311 }
312 // Redirect After Logout
313 if ( !isset( $options['redirect_after_logout'] ) ) {
314 $options['redirect_after_logout'] = false;
315 }
316 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
317 if ( !isset( $options['redirect_after_logout_to_slug'] ) ) {
318 $options['redirect_after_logout_to_slug'] = '';
319 }
320 $options['redirect_after_logout_to_slug'] = ( !empty($options['redirect_after_logout_to_slug']) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '' );
321 if ( is_array( $roles ) ) {
322 foreach ( $roles as $role_slug => $role_label ) {
323 // e.g. $role_slug is administrator, $role_label is Administrator
324 if ( !isset( $options['redirect_after_logout_for'][$role_slug] ) ) {
325 $options['redirect_after_logout_for'][$role_slug] = false;
326 }
327 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
328 }
329 }
330 // Enable Last Login Column
331 if ( !isset( $options['enable_last_login_column'] ) ) {
332 $options['enable_last_login_column'] = false;
333 }
334 $options['enable_last_login_column'] = ( 'on' == $options['enable_last_login_column'] ? true : false );
335 // Enable Custom Admin CSS
336 if ( !isset( $options['enable_custom_admin_css'] ) ) {
337 $options['enable_custom_admin_css'] = false;
338 }
339 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
340 if ( !isset( $options['custom_admin_css'] ) ) {
341 $options['custom_admin_css'] = '';
342 }
343 $options['custom_admin_css'] = ( !empty($options['custom_admin_css']) ? $options['custom_admin_css'] : '' );
344 // Enable Custom Frontend CSS
345 if ( !isset( $options['enable_custom_frontend_css'] ) ) {
346 $options['enable_custom_frontend_css'] = false;
347 }
348 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
349 if ( !isset( $options['custom_frontend_css'] ) ) {
350 $options['custom_frontend_css'] = '';
351 }
352 $options['custom_frontend_css'] = ( !empty($options['custom_frontend_css']) ? $options['custom_frontend_css'] : '' );
353 // Custom Body Class
354 if ( !isset( $options['enable_custom_body_class'] ) ) {
355 $options['enable_custom_body_class'] = false;
356 }
357 $options['enable_custom_body_class'] = ( 'on' == $options['enable_custom_body_class'] ? true : false );
358 if ( is_array( $asenha_public_post_types ) ) {
359 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
360 // e.g. $post_type_slug is post, $post_type_label is Posts
361 if ( !isset( $options['enable_custom_body_class_for'][$post_type_slug] ) ) {
362 $options['enable_custom_body_class_for'][$post_type_slug] = false;
363 }
364 $options['enable_custom_body_class_for'][$post_type_slug] = ( 'on' == $options['enable_custom_body_class_for'][$post_type_slug] ? true : false );
365 }
366 }
367 // Manage ads.txt and app-ads.txt
368 if ( !isset( $options['manage_ads_appads_txt'] ) ) {
369 $options['manage_ads_appads_txt'] = false;
370 }
371 $options['manage_ads_appads_txt'] = ( 'on' == $options['manage_ads_appads_txt'] ? true : false );
372 if ( !isset( $options['ads_txt_content'] ) ) {
373 $options['ads_txt_content'] = '';
374 }
375 $options['ads_txt_content'] = ( !empty($options['ads_txt_content']) ? $options['ads_txt_content'] : '' );
376 if ( !isset( $options['app_ads_txt_content'] ) ) {
377 $options['app_ads_txt_content'] = '';
378 }
379 $options['app_ads_txt_content'] = ( !empty($options['app_ads_txt_content']) ? $options['app_ads_txt_content'] : '' );
380 // Manage robots.txt
381 if ( !isset( $options['manage_robots_txt'] ) ) {
382 $options['manage_robots_txt'] = false;
383 }
384 $options['manage_robots_txt'] = ( 'on' == $options['manage_robots_txt'] ? true : false );
385
386 if ( !isset( $options['robots_txt_content'] ) ) {
387 $options['robots_txt_content'] = '';
388 } else {
389
390 if ( !empty($options['robots_txt_content']) ) {
391 $options['robots_txt_content'] = $options['robots_txt_content'];
392 $is_robots_txt_real_file = is_file( ABSPATH . 'robots.txt' );
393 // rename real robots.txt file if it exists and Mange robots.txt is enabled
394
395 if ( $is_robots_txt_real_file && 'on' == $options['manage_robots_txt'] ) {
396 $robots_txt_backup_filename = 'robots_backup_' . date( 'Y_m_d__H_i', time() ) . '.txt';
397 $options_extra = get_option( ASENHA_SLUG_U . '_extra', array() );
398 $options_extra['robots_txt_backup_file_name'] = $robots_txt_backup_filename;
399 update_option( ASENHA_SLUG_U . '_extra', $options_extra );
400 rename( ABSPATH . 'robots.txt', ABSPATH . $robots_txt_backup_filename );
401 } elseif ( 'on' != $options['manage_robots_txt'] ) {
402 $options_extra = get_option( ASENHA_SLUG_U . '_extra', array() );
403 if ( array_key_exists( 'robots_txt_backup_file_name', $options_extra ) ) {
404 if ( is_file( ABSPATH . $options_extra['robots_txt_backup_file_name'] ) ) {
405 rename( ABSPATH . $options_extra['robots_txt_backup_file_name'], ABSPATH . 'robots.txt' );
406 }
407 }
408 }
409
410 } else {
411 $options['robots_txt_content'] = '';
412 }
413
414 }
415
416 // Insert <head>, <body> and <footer> code
417 if ( !isset( $options['insert_head_body_footer_code'] ) ) {
418 $options['insert_head_body_footer_code'] = false;
419 }
420 $options['insert_head_body_footer_code'] = ( 'on' == $options['insert_head_body_footer_code'] ? true : false );
421 if ( !isset( $options['head_code_priority'] ) ) {
422 $options['head_code_priority'] = '';
423 }
424 $options['head_code_priority'] = ( isset( $options['head_code_priority'] ) ? $options['head_code_priority'] : 10 );
425 if ( !isset( $options['head_code'] ) ) {
426 $options['head_code'] = '';
427 }
428 $options['head_code'] = ( !empty($options['head_code']) ? $options['head_code'] : '' );
429 if ( !isset( $options['body_code_priority'] ) ) {
430 $options['body_code_priority'] = '';
431 }
432 $options['body_code_priority'] = ( isset( $options['body_code_priority'] ) ? $options['body_code_priority'] : 10 );
433 if ( !isset( $options['body_code'] ) ) {
434 $options['body_code'] = '';
435 }
436 $options['body_code'] = ( !empty($options['body_code']) ? $options['body_code'] : '' );
437 if ( !isset( $options['footer_code_priority'] ) ) {
438 $options['footer_code_priority'] = '';
439 }
440 $options['footer_code_priority'] = ( isset( $options['footer_code_priority'] ) ? $options['footer_code_priority'] : 10 );
441 if ( !isset( $options['footer_code'] ) ) {
442 $options['footer_code'] = '';
443 }
444 $options['footer_code'] = ( !empty($options['footer_code']) ? $options['footer_code'] : '' );
445 // =================================================================
446 // DISABLE COMPONENTS
447 // =================================================================
448 // Disable Gutenberg
449 if ( !isset( $options['disable_gutenberg'] ) ) {
450 $options['disable_gutenberg'] = false;
451 }
452 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
453 if ( is_array( $asenha_gutenberg_post_types ) ) {
454 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) {
455 // e.g. $post_type_slug is post,
456 if ( !isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) {
457 $options['disable_gutenberg_for'][$post_type_slug] = false;
458 }
459 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
460 }
461 }
462 if ( !isset( $options['disable_gutenberg_frontend_styles'] ) ) {
463 $options['disable_gutenberg_frontend_styles'] = false;
464 }
465 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
466 // Disable Block-Based Widgets Screen
467 if ( !isset( $options['disable_block_widgets'] ) ) {
468 $options['disable_block_widgets'] = false;
469 }
470 $options['disable_block_widgets'] = ( 'on' == $options['disable_block_widgets'] ? true : false );
471 // Disable Comments
472 if ( !isset( $options['disable_comments'] ) ) {
473 $options['disable_comments'] = false;
474 }
475 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
476 if ( is_array( $asenha_public_post_types ) ) {
477 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) {
478 // e.g. $post_type_slug is post, $post_type_label is Posts
479 if ( !isset( $options['disable_comments_for'][$post_type_slug] ) ) {
480 $options['disable_comments_for'][$post_type_slug] = false;
481 }
482 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
483 }
484 }
485 // Disable REST API
486 if ( !isset( $options['disable_rest_api'] ) ) {
487 $options['disable_rest_api'] = false;
488 }
489 $options['disable_rest_api'] = ( 'on' == $options['disable_rest_api'] ? true : false );
490 // Disable Feeds
491 if ( !isset( $options['disable_feeds'] ) ) {
492 $options['disable_feeds'] = false;
493 }
494 $options['disable_feeds'] = ( 'on' == $options['disable_feeds'] ? true : false );
495 // Disable Auto Updates
496 if ( !isset( $options['disable_all_updates'] ) ) {
497 $options['disable_all_updates'] = false;
498 }
499 $options['disable_all_updates'] = ( 'on' == $options['disable_all_updates'] ? true : false );
500 // Disable Smaller Components
501 if ( !isset( $options['disable_smaller_components'] ) ) {
502 $options['disable_smaller_components'] = false;
503 }
504 $options['disable_smaller_components'] = ( 'on' == $options['disable_smaller_components'] ? true : false );
505 if ( !isset( $options['disable_head_generator_tag'] ) ) {
506 $options['disable_head_generator_tag'] = false;
507 }
508 $options['disable_head_generator_tag'] = ( 'on' == $options['disable_head_generator_tag'] ? true : false );
509 if ( !isset( $options['disable_resource_version_number'] ) ) {
510 $options['disable_resource_version_number'] = false;
511 }
512 $options['disable_resource_version_number'] = ( 'on' == $options['disable_resource_version_number'] ? true : false );
513 if ( !isset( $options['disable_head_wlwmanifest_tag'] ) ) {
514 $options['disable_head_wlwmanifest_tag'] = false;
515 }
516 $options['disable_head_wlwmanifest_tag'] = ( 'on' == $options['disable_head_wlwmanifest_tag'] ? true : false );
517 if ( !isset( $options['disable_head_rsd_tag'] ) ) {
518 $options['disable_head_rsd_tag'] = false;
519 }
520 $options['disable_head_rsd_tag'] = ( 'on' == $options['disable_head_rsd_tag'] ? true : false );
521 if ( !isset( $options['disable_head_shortlink_tag'] ) ) {
522 $options['disable_head_shortlink_tag'] = false;
523 }
524 $options['disable_head_shortlink_tag'] = ( 'on' == $options['disable_head_shortlink_tag'] ? true : false );
525 if ( !isset( $options['disable_frontend_dashicons'] ) ) {
526 $options['disable_frontend_dashicons'] = false;
527 }
528 $options['disable_frontend_dashicons'] = ( 'on' == $options['disable_frontend_dashicons'] ? true : false );
529 if ( !isset( $options['disable_emoji_support'] ) ) {
530 $options['disable_emoji_support'] = false;
531 }
532 $options['disable_emoji_support'] = ( 'on' == $options['disable_emoji_support'] ? true : false );
533 if ( !isset( $options['disable_jquery_migrate'] ) ) {
534 $options['disable_jquery_migrate'] = false;
535 }
536 $options['disable_jquery_migrate'] = ( 'on' == $options['disable_jquery_migrate'] ? true : false );
537 // =================================================================
538 // SECURITY
539 // =================================================================
540 // Limit Login Attempts
541 if ( !isset( $options['limit_login_attempts'] ) ) {
542 $options['limit_login_attempts'] = false;
543 }
544 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
545 if ( !isset( $options['login_fails_allowed'] ) ) {
546 $options['login_fails_allowed'] = 3;
547 }
548 $options['login_fails_allowed'] = ( !empty($options['login_fails_allowed']) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3 );
549 if ( !isset( $options['login_lockout_maxcount'] ) ) {
550 $options['login_lockout_maxcount'] = 3;
551 }
552 $options['login_lockout_maxcount'] = ( !empty($options['login_lockout_maxcount']) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3 );
553 if ( !isset( $options['login_attempts_log_table'] ) ) {
554 $options['login_attempts_log_table'] = '';
555 }
556 $options['login_attempts_log_table'] = '';
557 // Obfuscate Author Slugs
558 if ( !isset( $options['obfuscate_author_slugs'] ) ) {
559 $options['obfuscate_author_slugs'] = false;
560 }
561 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
562 // Obfuscate Email Address
563 if ( !isset( $options['obfuscate_email_address'] ) ) {
564 $options['obfuscate_email_address'] = false;
565 }
566 $options['obfuscate_email_address'] = ( 'on' == $options['obfuscate_email_address'] ? true : false );
567 if ( !isset( $options['obfuscate_email_address_in_content'] ) ) {
568 $options['obfuscate_email_address_in_content'] = false;
569 }
570 $options['obfuscate_email_address_in_content'] = ( 'on' == $options['obfuscate_email_address_in_content'] ? true : false );
571 // Disable XML-RPC
572 if ( !isset( $options['disable_xmlrpc'] ) ) {
573 $options['disable_xmlrpc'] = false;
574 }
575 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
576 // =================================================================
577 // OPTIMIZATIONS
578 // =================================================================
579 // Image Upload Control
580 if ( !isset( $options['image_upload_control'] ) ) {
581 $options['image_upload_control'] = false;
582 }
583 $options['image_upload_control'] = ( 'on' == $options['image_upload_control'] ? true : false );
584 if ( !isset( $options['image_max_width'] ) ) {
585 $options['image_max_width'] = 1920;
586 }
587 $options['image_max_width'] = ( !empty($options['image_max_width']) ? sanitize_text_field( $options['image_max_width'] ) : 1920 );
588 if ( !isset( $options['image_max_height'] ) ) {
589 $options['image_max_height'] = 1920;
590 }
591 $options['image_max_height'] = ( !empty($options['image_max_height']) ? sanitize_text_field( $options['image_max_height'] ) : 1920 );
592 // Enable Revisions Control
593 if ( !isset( $options['enable_revisions_control'] ) ) {
594 $options['enable_revisions_control'] = false;
595 }
596 $options['enable_revisions_control'] = ( 'on' == $options['enable_revisions_control'] ? true : false );
597 if ( !isset( $options['revisions_max_number'] ) ) {
598 $options['revisions_max_number'] = 10;
599 }
600 $options['revisions_max_number'] = ( !empty($options['revisions_max_number']) ? sanitize_text_field( $options['revisions_max_number'] ) : 10 );
601 if ( is_array( $asenha_revisions_post_types ) ) {
602 foreach ( $asenha_revisions_post_types as $post_type_slug => $post_type_label ) {
603 // e.g. $post_type_slug is post,
604 if ( !isset( $options['enable_revisions_control_for'][$post_type_slug] ) ) {
605 $options['enable_revisions_control_for'][$post_type_slug] = false;
606 }
607 $options['enable_revisions_control_for'][$post_type_slug] = ( 'on' == $options['enable_revisions_control_for'][$post_type_slug] ? true : false );
608 }
609 }
610 // Enable Heartbeat Control
611 if ( !isset( $options['enable_heartbeat_control'] ) ) {
612 $options['enable_heartbeat_control'] = false;
613 }
614 $options['enable_heartbeat_control'] = ( 'on' == $options['enable_heartbeat_control'] ? true : false );
615 if ( !isset( $options['heartbeat_control_for_admin_pages'] ) ) {
616 $options['heartbeat_control_for_admin_pages'] = 'default';
617 }
618 if ( !isset( $options['heartbeat_control_for_post_edit'] ) ) {
619 $options['heartbeat_control_for_post_edit'] = 'default';
620 }
621 if ( !isset( $options['heartbeat_control_for_frontend'] ) ) {
622 $options['heartbeat_control_for_frontend'] = 'default';
623 }
624 if ( !isset( $options['heartbeat_interval_for_admin_pages'] ) ) {
625 $options['heartbeat_interval_for_admin_pages'] = 60;
626 }
627 $options['heartbeat_interval_for_admin_pages'] = ( !empty($options['heartbeat_interval_for_admin_pages']) ? sanitize_text_field( $options['heartbeat_interval_for_admin_pages'] ) : 60 );
628 if ( !isset( $options['heartbeat_interval_for_post_edit'] ) ) {
629 $options['heartbeat_interval_for_post_edit'] = 15;
630 }
631 $options['heartbeat_interval_for_post_edit'] = ( !empty($options['heartbeat_interval_for_post_edit']) ? sanitize_text_field( $options['heartbeat_interval_for_post_edit'] ) : 15 );
632 if ( !isset( $options['heartbeat_interval_for_frontend'] ) ) {
633 $options['heartbeat_interval_for_frontend'] = 60;
634 }
635 $options['heartbeat_interval_for_frontend'] = ( !empty($options['heartbeat_interval_for_frontend']) ? sanitize_text_field( $options['heartbeat_interval_for_frontend'] ) : 60 );
636 // =================================================================
637 // UTILITIES
638 // =================================================================
639 // SMTP Email Delivery
640 if ( !isset( $options['smtp_email_delivery'] ) ) {
641 $options['smtp_email_delivery'] = false;
642 }
643 $options['smtp_email_delivery'] = ( 'on' == $options['smtp_email_delivery'] ? true : false );
644 if ( !isset( $options['smtp_host'] ) ) {
645 $options['smtp_host'] = '';
646 }
647 $options['smtp_host'] = ( !empty($options['smtp_host']) ? sanitize_text_field( $options['smtp_host'] ) : '' );
648 if ( !isset( $options['smtp_port'] ) ) {
649 $options['smtp_port'] = '';
650 }
651 $options['smtp_port'] = ( !empty($options['smtp_port']) ? $options['smtp_port'] : '' );
652 if ( !isset( $options['smtp_security'] ) ) {
653 $options['smtp_security'] = 'none';
654 }
655 $options['smtp_security'] = ( !empty($options['smtp_security']) ? $options['smtp_security'] : 'none' );
656 if ( !isset( $options['smtp_username'] ) ) {
657 $options['smtp_username'] = '';
658 }
659 $options['smtp_username'] = ( !empty($options['smtp_username']) ? sanitize_text_field( $options['smtp_username'] ) : '' );
660 if ( !isset( $options['smtp_password'] ) ) {
661 $options['smtp_password'] = '';
662 }
663 $options['smtp_password'] = ( !empty($options['smtp_password']) ? $options['smtp_password'] : '' );
664 if ( !isset( $options['smtp_default_from_name'] ) ) {
665 $options['smtp_default_from_name'] = '';
666 }
667 $options['smtp_default_from_name'] = ( !empty($options['smtp_default_from_name']) ? sanitize_text_field( $options['smtp_default_from_name'] ) : '' );
668 if ( !isset( $options['smtp_default_from_email'] ) ) {
669 $options['smtp_default_from_email'] = '';
670 }
671 $options['smtp_default_from_email'] = ( !empty($options['smtp_default_from_email']) ? sanitize_text_field( $options['smtp_default_from_email'] ) : '' );
672 if ( !isset( $options['smtp_default_from_description'] ) ) {
673 $options['smtp_default_from_description'] = '';
674 }
675 if ( !isset( $options['smtp_force_from'] ) ) {
676 $options['smtp_force_from'] = false;
677 }
678 $options['smtp_force_from'] = ( 'on' == $options['smtp_force_from'] ? true : false );
679 if ( !isset( $options['smtp_bypass_ssl_verification'] ) ) {
680 $options['smtp_bypass_ssl_verification'] = false;
681 }
682 $options['smtp_bypass_ssl_verification'] = ( 'on' == $options['smtp_bypass_ssl_verification'] ? true : false );
683 if ( !isset( $options['smtp_debug'] ) ) {
684 $options['smtp_debug'] = false;
685 }
686 $options['smtp_debug'] = ( 'on' == $options['smtp_debug'] ? true : false );
687 // Multiple User Roles
688 if ( !isset( $options['multiple_user_roles'] ) ) {
689 $options['multiple_user_roles'] = false;
690 }
691 $options['multiple_user_roles'] = ( 'on' == $options['multiple_user_roles'] ? true : false );
692 // Image Sizes Panel
693 if ( !isset( $options['image_sizes_panel'] ) ) {
694 $options['image_sizes_panel'] = false;
695 }
696 $options['image_sizes_panel'] = ( 'on' == $options['image_sizes_panel'] ? true : false );
697 // View Admin as Role
698 if ( !isset( $options['view_admin_as_role'] ) ) {
699 $options['view_admin_as_role'] = false;
700 }
701 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
702 // Enable Password Protection
703 if ( !isset( $options['enable_password_protection'] ) ) {
704 $options['enable_password_protection'] = false;
705 }
706 $options['enable_password_protection'] = ( 'on' == $options['enable_password_protection'] ? true : false );
707 if ( !isset( $options['password_protection_password'] ) ) {
708 $options['password_protection_password'] = 'secret';
709 }
710 $options['password_protection_password'] = ( !empty($options['password_protection_password']) ? $options['password_protection_password'] : 'secret' );
711 // Maintenance Mode
712 if ( !isset( $options['maintenance_mode'] ) ) {
713 $options['maintenance_mode'] = false;
714 }
715 $options['maintenance_mode'] = ( 'on' == $options['maintenance_mode'] ? true : false );
716 if ( !isset( $options['maintenance_page_heading'] ) ) {
717 $options['maintenance_page_heading'] = 'We\'ll be back soon.';
718 }
719 $options['maintenance_page_heading'] = ( !empty($options['maintenance_page_heading']) ? sanitize_text_field( $options['maintenance_page_heading'] ) : 'We\'ll be back soon.' );
720 if ( !isset( $options['maintenance_page_description'] ) ) {
721 $options['maintenance_page_description'] = 'This site is undergoing maintenance for an extended period today. Thanks for your patience.';
722 }
723 $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.' );
724 if ( !isset( $options['maintenance_page_background'] ) ) {
725 $options['maintenance_page_background'] = 'stripes';
726 }
727 $options['maintenance_page_background'] = ( !empty($options['maintenance_page_background']) ? $options['maintenance_page_background'] : 'stripes' );
728 if ( !isset( $options['maintenance_mode_description'] ) ) {
729 $options['maintenance_mode_description'] = '';
730 }
731 // Redirect 404 to Homepage
732 if ( !isset( $options['redirect_404_to_homepage'] ) ) {
733 $options['redirect_404_to_homepage'] = false;
734 }
735 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
736 // Show System Summary in At a Glance Dashboard Widget
737 if ( !isset( $options['display_system_summary'] ) ) {
738 $options['display_system_summary'] = false;
739 }
740 $options['display_system_summary'] = ( 'on' == $options['display_system_summary'] ? true : false );
741 // Search Engines Visibility Status
742 if ( !isset( $options['search_engine_visibility_status'] ) ) {
743 $options['search_engine_visibility_status'] = false;
744 }
745 $options['search_engine_visibility_status'] = ( 'on' == $options['search_engine_visibility_status'] ? true : false );
746 return $options;
747 }
748
749 /**
750 * Sanitize checkbox field. For reference purpose. Not currently in use.
751 *
752 * @since 1.0.0
753 */
754 function asenha_sanitize_checkbox_field( $value )
755 {
756 // 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)
757 return ( 'on' === $value ? true : false );
758 }
759
760 }