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