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