PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 4.3.0
Admin and Site Enhancements (ASE) v4.3.0
9.1.1 9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / classes / class-settings-sanitization.php
admin-site-enhancements / classes Last commit date
class-activation.php 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
428 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 // Customize Admin Menu
146
147 if ( ! isset( $options['customize_admin_menu'] ) ) $options['customize_admin_menu'] = false;
148 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
149
150 if ( ! isset( $options['custom_menu_order'] ) ) $options['custom_menu_order'] = '';
151 // The following fields are added on rendering of custom_menu_order field
152 if ( ! isset( $options['custom_menu_titles'] ) ) $options['custom_menu_titles'] = '';
153 if ( ! isset( $options['custom_menu_hidden'] ) ) $options['custom_menu_hidden'] = '';
154
155 // =================================================================
156 // LOG IN | LOG OUT
157 // =================================================================
158
159 // Change Login URL
160 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
161 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
162
163 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
164 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
165
166 // Enable Login Logout Menu
167 if ( ! isset( $options['enable_login_logout_menu'] ) ) $options['enable_login_logout_menu'] = false;
168 $options['enable_login_logout_menu'] = ( 'on' == $options['enable_login_logout_menu'] ? true : false );
169
170 // Redirect After Login
171 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
172 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
173
174 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
175 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
176
177 if ( is_array( $roles ) ) {
178 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
179 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
180 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
181 }
182 }
183
184 // Redirect After Logout
185 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
186 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
187
188 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
189 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
190
191 if ( is_array( $roles ) ) {
192 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
193 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
194 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
195 }
196 }
197
198 // Enable Last Login Column
199 if ( ! isset( $options['enable_last_login_column'] ) ) $options['enable_last_login_column'] = false;
200 $options['enable_last_login_column'] = ( 'on' == $options['enable_last_login_column'] ? true : false );
201
202 // =================================================================
203 // CUSTOM CODE
204 // =================================================================
205
206 // Enable Custom Admin CSS
207 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
208 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
209
210 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
211 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
212
213 // Enable Custom Frontend CSS
214 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
215 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
216
217 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
218 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
219
220 // Manage ads.txt and app-ads.txt
221 if ( ! isset( $options['manage_ads_appads_txt'] ) ) $options['manage_ads_appads_txt'] = false;
222 $options['manage_ads_appads_txt'] = ( 'on' == $options['manage_ads_appads_txt'] ? true : false );
223
224 if ( ! isset( $options['ads_txt_content'] ) ) $options['ads_txt_content'] = '';
225 $options['ads_txt_content'] = ( ! empty( $options['ads_txt_content'] ) ) ? $options['ads_txt_content'] : '';
226
227 if ( ! isset( $options['app_ads_txt_content'] ) ) $options['app_ads_txt_content'] = '';
228 $options['app_ads_txt_content'] = ( ! empty( $options['app_ads_txt_content'] ) ) ? $options['app_ads_txt_content'] : '';
229
230 // Manage robots.txt
231 if ( ! isset( $options['manage_robots_txt'] ) ) $options['manage_robots_txt'] = false;
232 $options['manage_robots_txt'] = ( 'on' == $options['manage_robots_txt'] ? true : false );
233
234 if ( ! isset( $options['robots_txt_content'] ) ) {
235 $options['robots_txt_content'] = '';
236 } else {
237 if ( ! empty( $options['robots_txt_content'] ) ) {
238 $options['robots_txt_content'] = $options['robots_txt_content'];
239 $is_robots_txt_real_file = is_file( ABSPATH . 'robots.txt' );
240 // rename real robots.txt file if it exists and Mange robots.txt is enabled
241 if ( $is_robots_txt_real_file && ( 'on' == $options['manage_robots_txt'] ) ) {
242 $robots_txt_backup_filename = 'robots_backup_' . date('Y_m_d__H_i', time()) . '.txt';
243 $extra_options = get_option( ASENHA_SLUG_U . '_extra', array() );
244 $extra_options['robots_txt_backup_file_name'] = $robots_txt_backup_filename;
245 update_option( ASENHA_SLUG_U. '_extra', $extra_options );
246 rename( ABSPATH . 'robots.txt', ABSPATH . $robots_txt_backup_filename );
247 } elseif ( 'on' != $options['manage_robots_txt'] ) {
248 $extra_options = get_option( ASENHA_SLUG_U. '_extra', array() );
249 if ( array_key_exists( 'robots_txt_backup_file_name', $extra_options ) ) {
250 if ( is_file( ABSPATH . $extra_options['robots_txt_backup_file_name'] ) ) {
251 rename( ABSPATH . $extra_options['robots_txt_backup_file_name'], ABSPATH . 'robots.txt' );
252 }
253 }
254 }
255 } else {
256 $options['robots_txt_content'] = '';
257 }
258 }
259
260 // Insert <head>, <body> and <footer> code
261 if ( ! isset( $options['insert_head_body_footer_code'] ) ) $options['insert_head_body_footer_code'] = false;
262 $options['insert_head_body_footer_code'] = ( 'on' == $options['insert_head_body_footer_code'] ? true : false );
263
264 if ( ! isset( $options['head_code_priority'] ) ) $options['head_code_priority'] = '';
265 $options['head_code_priority'] = ( isset( $options['head_code_priority'] ) ) ? $options['head_code_priority'] : 10;
266
267 if ( ! isset( $options['head_code'] ) ) $options['head_code'] = '';
268 $options['head_code'] = ( ! empty( $options['head_code'] ) ) ? $options['head_code'] : '';
269
270 if ( ! isset( $options['body_code_priority'] ) ) $options['body_code_priority'] = '';
271 $options['body_code_priority'] = ( isset( $options['body_code_priority'] ) ) ? $options['body_code_priority'] : 10;
272
273 if ( ! isset( $options['body_code'] ) ) $options['body_code'] = '';
274 $options['body_code'] = ( ! empty( $options['body_code'] ) ) ? $options['body_code'] : '';
275
276 if ( ! isset( $options['footer_code_priority'] ) ) $options['footer_code_priority'] = '';
277 $options['footer_code_priority'] = ( isset( $options['footer_code_priority'] ) ) ? $options['footer_code_priority'] : 10;
278
279 if ( ! isset( $options['footer_code'] ) ) $options['footer_code'] = '';
280 $options['footer_code'] = ( ! empty( $options['footer_code'] ) ) ? $options['footer_code'] : '';
281
282 // =================================================================
283 // DISABLE COMPONENTS
284 // =================================================================
285
286 // Disable Gutenberg
287 if ( ! isset( $options['disable_gutenberg'] ) ) $options['disable_gutenberg'] = false;
288 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
289
290 if ( is_array( $asenha_gutenberg_post_types ) ) {
291 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
292 if ( ! isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) $options['disable_gutenberg_for'][$post_type_slug] = false;
293 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
294 }
295 }
296
297 if ( ! isset( $options['disable_gutenberg_frontend_styles'] ) ) $options['disable_gutenberg_frontend_styles'] = false;
298 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
299
300 // Disable Comments
301 if ( ! isset( $options['disable_comments'] ) ) $options['disable_comments'] = false;
302 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
303
304 if ( is_array( $asenha_public_post_types ) ) {
305 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
306 if ( ! isset( $options['disable_comments_for'][$post_type_slug] ) ) $options['disable_comments_for'][$post_type_slug] = false;
307 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
308 }
309 }
310
311 // Disable REST API
312 if ( ! isset( $options['disable_rest_api'] ) ) $options['disable_rest_api'] = false;
313 $options['disable_rest_api'] = ( 'on' == $options['disable_rest_api'] ? true : false );
314
315 // Disable Feeds
316 if ( ! isset( $options['disable_feeds'] ) ) $options['disable_feeds'] = false;
317 $options['disable_feeds'] = ( 'on' == $options['disable_feeds'] ? true : false );
318
319 // Disable Auto Updates
320 if ( ! isset( $options['disable_all_updates'] ) ) $options['disable_all_updates'] = false;
321 $options['disable_all_updates'] = ( 'on' == $options['disable_all_updates'] ? true : false );
322
323 // =================================================================
324 // SECURITY
325 // =================================================================
326
327 // Limit Login Attempts
328 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
329 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
330
331 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
332 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
333
334 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
335 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
336
337 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
338 $options['login_attempts_log_table'] = '';
339
340 // Obfuscate Author Slugs
341 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
342 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
343
344 // Disable XML-RPC
345 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
346 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
347
348 // =================================================================
349 // OPTIMIZATIONS
350 // =================================================================
351
352 // Image Upload Control
353 if ( ! isset( $options['image_upload_control'] ) ) $options['image_upload_control'] = false;
354 $options['image_upload_control'] = ( 'on' == $options['image_upload_control'] ? true : false );
355
356 if ( ! isset( $options['image_max_width'] ) ) $options['image_max_width'] = 1920;
357 $options['image_max_width'] = ( ! empty( $options['image_max_width'] ) ) ? sanitize_text_field( $options['image_max_width'] ) : 1920;
358
359 if ( ! isset( $options['image_max_height'] ) ) $options['image_max_height'] = 1920;
360 $options['image_max_height'] = ( ! empty( $options['image_max_height'] ) ) ? sanitize_text_field( $options['image_max_height'] ) : 1920;
361
362 // Enable Revisions Control
363 if ( ! isset( $options['enable_revisions_control'] ) ) $options['enable_revisions_control'] = false;
364 $options['enable_revisions_control'] = ( 'on' == $options['enable_revisions_control'] ? true : false );
365
366 if ( ! isset( $options['revisions_max_number'] ) ) $options['revisions_max_number'] = 10;
367 $options['revisions_max_number'] = ( ! empty( $options['revisions_max_number'] ) ) ? sanitize_text_field( $options['revisions_max_number'] ) : 10;
368
369 if ( is_array( $asenha_revisions_post_types ) ) {
370 foreach ( $asenha_revisions_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
371 if ( ! isset( $options['enable_revisions_control_for'][$post_type_slug] ) ) $options['enable_revisions_control_for'][$post_type_slug] = false;
372 $options['enable_revisions_control_for'][$post_type_slug] = ( 'on' == $options['enable_revisions_control_for'][$post_type_slug] ? true : false );
373 }
374 }
375
376 // Enable Heartbeat Control
377 if ( ! isset( $options['enable_heartbeat_control'] ) ) $options['enable_heartbeat_control'] = false;
378 $options['enable_heartbeat_control'] = ( 'on' == $options['enable_heartbeat_control'] ? true : false );
379
380 if ( ! isset( $options['heartbeat_control_for_admin_pages'] ) ) $options['enable_heartbeat_control'] = 'default';
381 if ( ! isset( $options['heartbeat_control_for_post_edit'] ) ) $options['heartbeat_control_for_post_edit'] = 'default';
382 if ( ! isset( $options['heartbeat_control_for_frontend'] ) ) $options['heartbeat_control_for_frontend'] = 'default';
383
384 if ( ! isset( $options['heartbeat_interval_for_admin_pages'] ) ) $options['heartbeat_interval_for_admin_pages'] = 60;
385 $options['heartbeat_interval_for_admin_pages'] = ( ! empty( $options['heartbeat_interval_for_admin_pages'] ) ) ? sanitize_text_field( $options['heartbeat_interval_for_admin_pages'] ) : 60;
386
387 if ( ! isset( $options['heartbeat_interval_for_post_edit'] ) ) $options['heartbeat_interval_for_post_edit'] = 15;
388 $options['heartbeat_interval_for_post_edit'] = ( ! empty( $options['heartbeat_interval_for_post_edit'] ) ) ? sanitize_text_field( $options['heartbeat_interval_for_post_edit'] ) : 15;
389
390 if ( ! isset( $options['heartbeat_interval_for_frontend'] ) ) $options['heartbeat_interval_for_frontend'] = 60;
391 $options['heartbeat_interval_for_frontend'] = ( ! empty( $options['heartbeat_interval_for_frontend'] ) ) ? sanitize_text_field( $options['heartbeat_interval_for_frontend'] ) : 60;
392
393 // =================================================================
394 // UTILITIES
395 // =================================================================
396
397 // View Admin as Role
398 if ( ! isset( $options['view_admin_as_role'] ) ) $options['view_admin_as_role'] = false;
399 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
400
401 // Enable Password Protection
402 if ( ! isset( $options['enable_password_protection'] ) ) $options['enable_password_protection'] = false;
403 $options['enable_password_protection'] = ( 'on' == $options['enable_password_protection'] ? true : false );
404
405 if ( ! isset( $options['password_protection_password'] ) ) $options['password_protection_password'] = base64_encode('secret');
406 $options['password_protection_password'] = ( ! empty( $options['password_protection_password'] ) ) ? base64_encode( $options['password_protection_password'] ) : base64_encode('secret');
407
408 // Redirect 404 to Homepage
409 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
410 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
411
412 return $options;
413
414 }
415
416 /**
417 * Sanitize checkbox field. For reference purpose. Not currently in use.
418 *
419 * @since 1.0.0
420 */
421 function asenha_sanitize_checkbox_field( $value ) {
422
423 // 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)
424 return 'on' === $value ? true : false;
425
426 }
427
428 }