PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 4.7.3
Admin and Site Enhancements (ASE) v4.7.3
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
510 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 $wp_roles, $asenha_public_post_types, $asenha_gutenberg_post_types, $asenha_revisions_post_types;
21 $roles = $wp_roles->get_names();
22
23 // =================================================================
24 // CONTENT MANAGEMENT
25 // =================================================================
26
27 // Enable Page and Post Duplication
28 if ( ! isset( $options['enable_duplication'] ) ) $options['enable_duplication'] = false;
29 $options['enable_duplication'] = ( 'on' == $options['enable_duplication'] ? true : false );
30
31 // Enable Media Replacement
32 if ( ! isset( $options['enable_media_replacement'] ) ) $options['enable_media_replacement'] = false;
33 $options['enable_media_replacement'] = ( 'on' == $options['enable_media_replacement'] ? true : false );
34
35 // Enable SVG Upload
36 if ( ! isset( $options['enable_svg_upload'] ) ) $options['enable_svg_upload'] = false;
37 $options['enable_svg_upload'] = ( 'on' == $options['enable_svg_upload'] ? true : false );
38
39 if ( is_array( $roles ) ) {
40 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
41 if ( ! isset( $options['enable_svg_upload_for'][$role_slug] ) ) $options['enable_svg_upload_for'][$role_slug] = false;
42 $options['enable_svg_upload_for'][$role_slug] = ( 'on' == $options['enable_svg_upload_for'][$role_slug] ? true : false );
43 }
44 }
45
46 // Enable External Permalinks
47 if ( ! isset( $options['enable_external_permalinks'] ) ) $options['enable_external_permalinks'] = false;
48 $options['enable_external_permalinks'] = ( 'on' == $options['enable_external_permalinks'] ? true : false );
49
50 if ( is_array( $asenha_public_post_types ) ) {
51 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
52 if ( ! isset( $options['enable_external_permalinks_for'][$post_type_slug] ) ) $options['enable_external_permalinks_for'][$post_type_slug] = false;
53 $options['enable_external_permalinks_for'][$post_type_slug] = ( 'on' == $options['enable_external_permalinks_for'][$post_type_slug] ? true : false );
54 }
55 }
56
57 // Enable Auto-Publishing of Posts with Missed Schedules
58 if ( ! isset( $options['enable_missed_schedule_posts_auto_publish'] ) ) $options['enable_missed_schedule_posts_auto_publish'] = false;
59 $options['enable_missed_schedule_posts_auto_publish'] = ( 'on' == $options['enable_missed_schedule_posts_auto_publish'] ? true : false );
60
61 // Enhance List Tables
62 if ( ! isset( $options['enhance_list_tables'] ) ) $options['enhance_list_tables'] = false;
63 $options['enhance_list_tables'] = ( 'on' == $options['enhance_list_tables'] ? true : false );
64
65 // Show Featured Image Column
66 if ( ! isset( $options['show_featured_image_column'] ) ) $options['show_featured_image_column'] = false;
67 $options['show_featured_image_column'] = ( 'on' == $options['show_featured_image_column'] ? true : false );
68
69 // Show Excerpt Column
70 if ( ! isset( $options['show_excerpt_column'] ) ) $options['show_excerpt_column'] = false;
71 $options['show_excerpt_column'] = ( 'on' == $options['show_excerpt_column'] ? true : false );
72
73 // Show ID Column
74 if ( ! isset( $options['show_id_column'] ) ) $options['show_id_column'] = false;
75 $options['show_id_column'] = ( 'on' == $options['show_id_column'] ? true : false );
76
77 // Hide Comments Column
78 if ( ! isset( $options['hide_comments_column'] ) ) $options['hide_comments_column'] = false;
79 $options['hide_comments_column'] = ( 'on' == $options['hide_comments_column'] ? true : false );
80
81 // Hide Post Tags Column
82 if ( ! isset( $options['hide_post_tags_column'] ) ) $options['hide_post_tags_column'] = false;
83 $options['hide_post_tags_column'] = ( 'on' == $options['hide_post_tags_column'] ? true : false );
84
85 // Show Custom Taxonomy Filters
86 if ( ! isset( $options['show_custom_taxonomy_filters'] ) ) $options['show_custom_taxonomy_filters'] = false;
87 $options['show_custom_taxonomy_filters'] = ( 'on' == $options['show_custom_taxonomy_filters'] ? true : false );
88
89 // =================================================================
90 // ADMIN INTERFACE
91 // =================================================================
92
93 // Hide Admin Notices
94 if ( ! isset( $options['hide_admin_notices'] ) ) $options['hide_admin_notices'] = false;
95 $options['hide_admin_notices'] = ( 'on' == $options['hide_admin_notices'] ? true : false );
96
97 // Hide Admin Bar
98 if ( ! isset( $options['hide_admin_bar'] ) ) $options['hide_admin_bar'] = false;
99 $options['hide_admin_bar'] = ( 'on' == $options['hide_admin_bar'] ? true : false );
100
101 if ( is_array( $roles ) ) {
102 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
103 if ( ! isset( $options['hide_admin_bar_for'][$role_slug] ) ) $options['hide_admin_bar_for'][$role_slug] = false;
104 $options['hide_admin_bar_for'][$role_slug] = ( 'on' == $options['hide_admin_bar_for'][$role_slug] ? true : false );
105 }
106 }
107
108 // Disable Dashboard Widgets
109 if ( ! isset( $options['disable_dashboard_widgets'] ) ) $options['disable_dashboard_widgets'] = false;
110 $options['disable_dashboard_widgets'] = ( 'on' == $options['disable_dashboard_widgets'] ? true : false );
111
112 $extra_options = get_option( 'admin_site_enhancements_extra', array() );
113 $dashboard_widgets = $extra_options['dashboard_widgets'];
114
115 if ( is_array( $dashboard_widgets ) ) {
116 foreach ( $dashboard_widgets as $widget ) {
117 if ( ! isset( $options['disabled_dashboard_widgets'][$widget['id'].'__'.$widget['context'].'__'.$widget['priority']] ) ) $options['disabled_dashboard_widgets'][$widget['id'].'__'.$widget['context'].'__'.$widget['priority']] = false;
118 $options['disabled_dashboard_widgets'][$widget['id'].'__'.$widget['context'].'__'.$widget['priority']] = ( 'on' == $options['disabled_dashboard_widgets'][$widget['id'].'__'.$widget['context'].'__'.$widget['priority']] ? true : false );
119 }
120 }
121
122 // Hide or Modify Elements
123
124 if ( ! isset( $options['hide_modify_elements'] ) ) $options['hide_modify_elements'] = false;
125 $options['hide_modify_elements'] = ( 'on' == $options['hide_modify_elements'] ? true : false );
126
127 if ( ! isset( $options['hide_ab_wp_logo_menu'] ) ) $options['hide_ab_wp_logo_menu'] = false;
128 $options['hide_ab_wp_logo_menu'] = ( 'on' == $options['hide_ab_wp_logo_menu'] ? true : false );
129
130 if ( ! isset( $options['hide_ab_customize_menu'] ) ) $options['hide_ab_customize_menu'] = false;
131 $options['hide_ab_customize_menu'] = ( 'on' == $options['hide_ab_customize_menu'] ? true : false );
132
133 if ( ! isset( $options['hide_ab_comments_menu'] ) ) $options['hide_ab_comments_menu'] = false;
134 $options['hide_ab_comments_menu'] = ( 'on' == $options['hide_ab_comments_menu'] ? true : false );
135
136 if ( ! isset( $options['hide_ab_updates_menu'] ) ) $options['hide_ab_updates_menu'] = false;
137 $options['hide_ab_updates_menu'] = ( 'on' == $options['hide_ab_updates_menu'] ? true : false );
138
139 if ( ! isset( $options['hide_ab_new_content_menu'] ) ) $options['hide_ab_new_content_menu'] = false;
140 $options['hide_ab_new_content_menu'] = ( 'on' == $options['hide_ab_new_content_menu'] ? true : false );
141
142 if ( ! isset( $options['hide_ab_howdy'] ) ) $options['hide_ab_howdy'] = false;
143 $options['hide_ab_howdy'] = ( 'on' == $options['hide_ab_howdy'] ? true : false );
144
145 if ( ! isset( $options['hide_help_drawer'] ) ) $options['hide_help_drawer'] = false;
146 $options['hide_help_drawer'] = ( 'on' == $options['hide_help_drawer'] ? true : false );
147
148 // Customize Admin Menu
149
150 if ( ! isset( $options['customize_admin_menu'] ) ) $options['customize_admin_menu'] = false;
151 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
152
153 if ( ! isset( $options['custom_menu_order'] ) ) $options['custom_menu_order'] = '';
154 // The following fields are added on rendering of custom_menu_order field
155 if ( ! isset( $options['custom_menu_titles'] ) ) $options['custom_menu_titles'] = '';
156 if ( ! isset( $options['custom_menu_hidden'] ) ) $options['custom_menu_hidden'] = '';
157
158 // =================================================================
159 // LOG IN | LOG OUT
160 // =================================================================
161
162 // Change Login URL
163 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
164 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
165
166 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
167 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
168
169 // Enable Login Logout Menu
170 if ( ! isset( $options['enable_login_logout_menu'] ) ) $options['enable_login_logout_menu'] = false;
171 $options['enable_login_logout_menu'] = ( 'on' == $options['enable_login_logout_menu'] ? true : false );
172
173 // Redirect After Login
174 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
175 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
176
177 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
178 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
179
180 if ( is_array( $roles ) ) {
181 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
182 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
183 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
184 }
185 }
186
187 // Redirect After Logout
188 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
189 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
190
191 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
192 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
193
194 if ( is_array( $roles ) ) {
195 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
196 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
197 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
198 }
199 }
200
201 // Enable Last Login Column
202 if ( ! isset( $options['enable_last_login_column'] ) ) $options['enable_last_login_column'] = false;
203 $options['enable_last_login_column'] = ( 'on' == $options['enable_last_login_column'] ? true : false );
204
205 // =================================================================
206 // CUSTOM CODE
207 // =================================================================
208
209 // Enable Custom Admin CSS
210 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
211 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
212
213 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
214 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
215
216 // Enable Custom Frontend CSS
217 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
218 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
219
220 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
221 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
222
223 // Custom Body Class
224 if ( ! isset( $options['enable_custom_body_class'] ) ) $options['enable_custom_body_class'] = false;
225 $options['enable_custom_body_class'] = ( 'on' == $options['enable_custom_body_class'] ? true : false );
226
227 if ( is_array( $asenha_public_post_types ) ) {
228 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
229 if ( ! isset( $options['enable_custom_body_class_for'][$post_type_slug] ) ) $options['enable_custom_body_class_for'][$post_type_slug] = false;
230 $options['enable_custom_body_class_for'][$post_type_slug] = ( 'on' == $options['enable_custom_body_class_for'][$post_type_slug] ? true : false );
231 }
232 }
233
234 // Manage ads.txt and app-ads.txt
235 if ( ! isset( $options['manage_ads_appads_txt'] ) ) $options['manage_ads_appads_txt'] = false;
236 $options['manage_ads_appads_txt'] = ( 'on' == $options['manage_ads_appads_txt'] ? true : false );
237
238 if ( ! isset( $options['ads_txt_content'] ) ) $options['ads_txt_content'] = '';
239 $options['ads_txt_content'] = ( ! empty( $options['ads_txt_content'] ) ) ? $options['ads_txt_content'] : '';
240
241 if ( ! isset( $options['app_ads_txt_content'] ) ) $options['app_ads_txt_content'] = '';
242 $options['app_ads_txt_content'] = ( ! empty( $options['app_ads_txt_content'] ) ) ? $options['app_ads_txt_content'] : '';
243
244 // Manage robots.txt
245 if ( ! isset( $options['manage_robots_txt'] ) ) $options['manage_robots_txt'] = false;
246 $options['manage_robots_txt'] = ( 'on' == $options['manage_robots_txt'] ? true : false );
247
248 if ( ! isset( $options['robots_txt_content'] ) ) {
249 $options['robots_txt_content'] = '';
250 } else {
251 if ( ! empty( $options['robots_txt_content'] ) ) {
252 $options['robots_txt_content'] = $options['robots_txt_content'];
253 $is_robots_txt_real_file = is_file( ABSPATH . 'robots.txt' );
254 // rename real robots.txt file if it exists and Mange robots.txt is enabled
255 if ( $is_robots_txt_real_file && ( 'on' == $options['manage_robots_txt'] ) ) {
256 $robots_txt_backup_filename = 'robots_backup_' . date('Y_m_d__H_i', time()) . '.txt';
257 $extra_options = get_option( ASENHA_SLUG_U . '_extra', array() );
258 $extra_options['robots_txt_backup_file_name'] = $robots_txt_backup_filename;
259 update_option( ASENHA_SLUG_U. '_extra', $extra_options );
260 rename( ABSPATH . 'robots.txt', ABSPATH . $robots_txt_backup_filename );
261 } elseif ( 'on' != $options['manage_robots_txt'] ) {
262 $extra_options = get_option( ASENHA_SLUG_U. '_extra', array() );
263 if ( array_key_exists( 'robots_txt_backup_file_name', $extra_options ) ) {
264 if ( is_file( ABSPATH . $extra_options['robots_txt_backup_file_name'] ) ) {
265 rename( ABSPATH . $extra_options['robots_txt_backup_file_name'], ABSPATH . 'robots.txt' );
266 }
267 }
268 }
269 } else {
270 $options['robots_txt_content'] = '';
271 }
272 }
273
274 // Insert <head>, <body> and <footer> code
275 if ( ! isset( $options['insert_head_body_footer_code'] ) ) $options['insert_head_body_footer_code'] = false;
276 $options['insert_head_body_footer_code'] = ( 'on' == $options['insert_head_body_footer_code'] ? true : false );
277
278 if ( ! isset( $options['head_code_priority'] ) ) $options['head_code_priority'] = '';
279 $options['head_code_priority'] = ( isset( $options['head_code_priority'] ) ) ? $options['head_code_priority'] : 10;
280
281 if ( ! isset( $options['head_code'] ) ) $options['head_code'] = '';
282 $options['head_code'] = ( ! empty( $options['head_code'] ) ) ? $options['head_code'] : '';
283
284 if ( ! isset( $options['body_code_priority'] ) ) $options['body_code_priority'] = '';
285 $options['body_code_priority'] = ( isset( $options['body_code_priority'] ) ) ? $options['body_code_priority'] : 10;
286
287 if ( ! isset( $options['body_code'] ) ) $options['body_code'] = '';
288 $options['body_code'] = ( ! empty( $options['body_code'] ) ) ? $options['body_code'] : '';
289
290 if ( ! isset( $options['footer_code_priority'] ) ) $options['footer_code_priority'] = '';
291 $options['footer_code_priority'] = ( isset( $options['footer_code_priority'] ) ) ? $options['footer_code_priority'] : 10;
292
293 if ( ! isset( $options['footer_code'] ) ) $options['footer_code'] = '';
294 $options['footer_code'] = ( ! empty( $options['footer_code'] ) ) ? $options['footer_code'] : '';
295
296 // =================================================================
297 // DISABLE COMPONENTS
298 // =================================================================
299
300 // Disable Gutenberg
301 if ( ! isset( $options['disable_gutenberg'] ) ) $options['disable_gutenberg'] = false;
302 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
303
304 if ( is_array( $asenha_gutenberg_post_types ) ) {
305 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
306 if ( ! isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) $options['disable_gutenberg_for'][$post_type_slug] = false;
307 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
308 }
309 }
310
311 if ( ! isset( $options['disable_gutenberg_frontend_styles'] ) ) $options['disable_gutenberg_frontend_styles'] = false;
312 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
313
314 // Disable Comments
315 if ( ! isset( $options['disable_comments'] ) ) $options['disable_comments'] = false;
316 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
317
318 if ( is_array( $asenha_public_post_types ) ) {
319 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
320 if ( ! isset( $options['disable_comments_for'][$post_type_slug] ) ) $options['disable_comments_for'][$post_type_slug] = false;
321 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
322 }
323 }
324
325 // Disable REST API
326 if ( ! isset( $options['disable_rest_api'] ) ) $options['disable_rest_api'] = false;
327 $options['disable_rest_api'] = ( 'on' == $options['disable_rest_api'] ? true : false );
328
329 // Disable Feeds
330 if ( ! isset( $options['disable_feeds'] ) ) $options['disable_feeds'] = false;
331 $options['disable_feeds'] = ( 'on' == $options['disable_feeds'] ? true : false );
332
333 // Disable Auto Updates
334 if ( ! isset( $options['disable_all_updates'] ) ) $options['disable_all_updates'] = false;
335 $options['disable_all_updates'] = ( 'on' == $options['disable_all_updates'] ? true : false );
336
337 // Disable Smaller Components
338
339 if ( ! isset( $options['disable_smaller_components'] ) ) $options['disable_smaller_components'] = false;
340 $options['disable_smaller_components'] = ( 'on' == $options['disable_smaller_components'] ? true : false );
341
342 if ( ! isset( $options['disable_head_generator_tag'] ) ) $options['disable_head_generator_tag'] = false;
343 $options['disable_head_generator_tag'] = ( 'on' == $options['disable_head_generator_tag'] ? true : false );
344
345 if ( ! isset( $options['disable_head_wlwmanifest_tag'] ) ) $options['disable_head_wlwmanifest_tag'] = false;
346 $options['disable_head_wlwmanifest_tag'] = ( 'on' == $options['disable_head_wlwmanifest_tag'] ? true : false );
347
348 if ( ! isset( $options['disable_head_rsd_tag'] ) ) $options['disable_head_rsd_tag'] = false;
349 $options['disable_head_rsd_tag'] = ( 'on' == $options['disable_head_rsd_tag'] ? true : false );
350
351 if ( ! isset( $options['disable_head_shortlink_tag'] ) ) $options['disable_head_shortlink_tag'] = false;
352 $options['disable_head_shortlink_tag'] = ( 'on' == $options['disable_head_shortlink_tag'] ? true : false );
353
354 if ( ! isset( $options['disable_frontend_dashicons'] ) ) $options['disable_frontend_dashicons'] = false;
355 $options['disable_frontend_dashicons'] = ( 'on' == $options['disable_frontend_dashicons'] ? true : false );
356
357 if ( ! isset( $options['disable_emoji_support'] ) ) $options['disable_emoji_support'] = false;
358 $options['disable_emoji_support'] = ( 'on' == $options['disable_emoji_support'] ? true : false );
359
360 // =================================================================
361 // SECURITY
362 // =================================================================
363
364 // Limit Login Attempts
365 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
366 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
367
368 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
369 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
370
371 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
372 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
373
374 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
375 $options['login_attempts_log_table'] = '';
376
377 // Obfuscate Author Slugs
378 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
379 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
380
381 // Disable XML-RPC
382 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
383 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
384
385 // =================================================================
386 // OPTIMIZATIONS
387 // =================================================================
388
389 // Image Upload Control
390 if ( ! isset( $options['image_upload_control'] ) ) $options['image_upload_control'] = false;
391 $options['image_upload_control'] = ( 'on' == $options['image_upload_control'] ? true : false );
392
393 if ( ! isset( $options['image_max_width'] ) ) $options['image_max_width'] = 1920;
394 $options['image_max_width'] = ( ! empty( $options['image_max_width'] ) ) ? sanitize_text_field( $options['image_max_width'] ) : 1920;
395
396 if ( ! isset( $options['image_max_height'] ) ) $options['image_max_height'] = 1920;
397 $options['image_max_height'] = ( ! empty( $options['image_max_height'] ) ) ? sanitize_text_field( $options['image_max_height'] ) : 1920;
398
399 // Enable Revisions Control
400 if ( ! isset( $options['enable_revisions_control'] ) ) $options['enable_revisions_control'] = false;
401 $options['enable_revisions_control'] = ( 'on' == $options['enable_revisions_control'] ? true : false );
402
403 if ( ! isset( $options['revisions_max_number'] ) ) $options['revisions_max_number'] = 10;
404 $options['revisions_max_number'] = ( ! empty( $options['revisions_max_number'] ) ) ? sanitize_text_field( $options['revisions_max_number'] ) : 10;
405
406 if ( is_array( $asenha_revisions_post_types ) ) {
407 foreach ( $asenha_revisions_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
408 if ( ! isset( $options['enable_revisions_control_for'][$post_type_slug] ) ) $options['enable_revisions_control_for'][$post_type_slug] = false;
409 $options['enable_revisions_control_for'][$post_type_slug] = ( 'on' == $options['enable_revisions_control_for'][$post_type_slug] ? true : false );
410 }
411 }
412
413 // Enable Heartbeat Control
414 if ( ! isset( $options['enable_heartbeat_control'] ) ) $options['enable_heartbeat_control'] = false;
415 $options['enable_heartbeat_control'] = ( 'on' == $options['enable_heartbeat_control'] ? true : false );
416
417 if ( ! isset( $options['heartbeat_control_for_admin_pages'] ) ) $options['enable_heartbeat_control'] = 'default';
418 if ( ! isset( $options['heartbeat_control_for_post_edit'] ) ) $options['heartbeat_control_for_post_edit'] = 'default';
419 if ( ! isset( $options['heartbeat_control_for_frontend'] ) ) $options['heartbeat_control_for_frontend'] = 'default';
420
421 if ( ! isset( $options['heartbeat_interval_for_admin_pages'] ) ) $options['heartbeat_interval_for_admin_pages'] = 60;
422 $options['heartbeat_interval_for_admin_pages'] = ( ! empty( $options['heartbeat_interval_for_admin_pages'] ) ) ? sanitize_text_field( $options['heartbeat_interval_for_admin_pages'] ) : 60;
423
424 if ( ! isset( $options['heartbeat_interval_for_post_edit'] ) ) $options['heartbeat_interval_for_post_edit'] = 15;
425 $options['heartbeat_interval_for_post_edit'] = ( ! empty( $options['heartbeat_interval_for_post_edit'] ) ) ? sanitize_text_field( $options['heartbeat_interval_for_post_edit'] ) : 15;
426
427 if ( ! isset( $options['heartbeat_interval_for_frontend'] ) ) $options['heartbeat_interval_for_frontend'] = 60;
428 $options['heartbeat_interval_for_frontend'] = ( ! empty( $options['heartbeat_interval_for_frontend'] ) ) ? sanitize_text_field( $options['heartbeat_interval_for_frontend'] ) : 60;
429
430 // =================================================================
431 // UTILITIES
432 // =================================================================
433
434 // SMTP Email Delivery
435 if ( ! isset( $options['smtp_email_delivery'] ) ) $options['smtp_email_delivery'] = false;
436 $options['smtp_email_delivery'] = ( 'on' == $options['smtp_email_delivery'] ? true : false );
437
438 if ( ! isset( $options['smtp_host'] ) ) $options['smtp_host'] = '';
439 $options['smtp_host'] = ( ! empty( $options['smtp_host'] ) ) ? sanitize_text_field( $options['smtp_host'] ) : '';
440
441 if ( ! isset( $options['smtp_port'] ) ) $options['smtp_port'] = '';
442 $options['smtp_port'] = ( ! empty( $options['smtp_port'] ) ) ? $options['smtp_port'] : '';
443
444 if ( ! isset( $options['smtp_security'] ) ) $options['smtp_security'] = 'none';
445 $options['smtp_security'] = ( ! empty( $options['smtp_security'] ) ) ? $options['smtp_security'] : 'none';
446
447 if ( ! isset( $options['smtp_username'] ) ) $options['smtp_username'] = '';
448 $options['smtp_username'] = ( ! empty( $options['smtp_username'] ) ) ? sanitize_text_field( $options['smtp_username'] ) : '';
449
450 if ( ! isset( $options['smtp_password'] ) ) $options['smtp_password'] = base64_encode('');
451 $options['smtp_password'] = ( ! empty( $options['smtp_password'] ) ) ? base64_encode( $options['smtp_password'] ) : base64_encode('');
452
453 if ( ! isset( $options['smtp_default_from_name'] ) ) $options['smtp_default_from_name'] = '';
454 $options['smtp_default_from_name'] = ( ! empty( $options['smtp_default_from_name'] ) ) ? sanitize_text_field( $options['smtp_default_from_name'] ) : '';
455
456 if ( ! isset( $options['smtp_default_from_email'] ) ) $options['smtp_default_from_email'] = '';
457 $options['smtp_default_from_email'] = ( ! empty( $options['smtp_default_from_email'] ) ) ? sanitize_text_field( $options['smtp_default_from_email'] ) : '';
458
459 if ( ! isset( $options['smtp_default_from_description'] ) ) $options['smtp_default_from_description'] = '';
460
461 if ( ! isset( $options['smtp_debug'] ) ) $options['smtp_debug'] = false;
462 $options['smtp_debug'] = ( 'on' == $options['smtp_debug'] ? true : false );
463
464 // View Admin as Role
465 if ( ! isset( $options['view_admin_as_role'] ) ) $options['view_admin_as_role'] = false;
466 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
467
468 // Enable Password Protection
469 if ( ! isset( $options['enable_password_protection'] ) ) $options['enable_password_protection'] = false;
470 $options['enable_password_protection'] = ( 'on' == $options['enable_password_protection'] ? true : false );
471
472 if ( ! isset( $options['password_protection_password'] ) ) $options['password_protection_password'] = base64_encode('secret');
473 $options['password_protection_password'] = ( ! empty( $options['password_protection_password'] ) ) ? base64_encode( $options['password_protection_password'] ) : base64_encode('secret');
474
475 // Redirect 404 to Homepage
476 if ( ! isset( $options['maintenance_mode'] ) ) $options['maintenance_mode'] = false;
477 $options['maintenance_mode'] = ( 'on' == $options['maintenance_mode'] ? true : false );
478
479 if ( ! isset( $options['maintenance_page_heading'] ) ) $options['maintenance_page_heading'] = 'We\'ll be back soon.';
480 $options['maintenance_page_heading'] = ( ! empty( $options['maintenance_page_heading'] ) ) ? sanitize_text_field( $options['maintenance_page_heading'] ) : 'We\'ll be back soon.';
481
482 if ( ! isset( $options['maintenance_page_description'] ) ) $options['maintenance_page_description'] = 'This site is undergoing maintenance for an extended period today. Thanks for your patience.';
483 $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.';
484
485 if ( ! isset( $options['maintenance_page_background'] ) ) $options['maintenance_page_background'] = 'stripes';
486 $options['maintenance_page_background'] = ( ! empty( $options['maintenance_page_background'] ) ) ? $options['maintenance_page_background'] : 'stripes';
487
488 if ( ! isset( $options['maintenance_mode_description'] ) ) $options['maintenance_mode_description'] = '';
489
490 // Redirect 404 to Homepage
491 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
492 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
493
494 return $options;
495
496 }
497
498 /**
499 * Sanitize checkbox field. For reference purpose. Not currently in use.
500 *
501 * @since 1.0.0
502 */
503 function asenha_sanitize_checkbox_field( $value ) {
504
505 // 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)
506 return 'on' === $value ? true : false;
507
508 }
509
510 }