PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.6.1
Admin and Site Enhancements (ASE) v3.6.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-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
324 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;
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 Auto-Publishing of Posts with Missed Schedules
47 if ( ! isset( $options['enable_missed_schedule_posts_auto_publish'] ) ) $options['enable_missed_schedule_posts_auto_publish'] = false;
48 $options['enable_missed_schedule_posts_auto_publish'] = ( 'on' == $options['enable_missed_schedule_posts_auto_publish'] ? true : false );
49
50 // Enhance List Tables
51 if ( ! isset( $options['enhance_list_tables'] ) ) $options['enhance_list_tables'] = false;
52 $options['enhance_list_tables'] = ( 'on' == $options['enhance_list_tables'] ? true : false );
53
54 // Show Featured Image Column
55 if ( ! isset( $options['show_featured_image_column'] ) ) $options['show_featured_image_column'] = false;
56 $options['show_featured_image_column'] = ( 'on' == $options['show_featured_image_column'] ? true : false );
57
58 // Show Excerpt Column
59 if ( ! isset( $options['show_excerpt_column'] ) ) $options['show_excerpt_column'] = false;
60 $options['show_excerpt_column'] = ( 'on' == $options['show_excerpt_column'] ? true : false );
61
62 // Show ID Column
63 if ( ! isset( $options['show_id_column'] ) ) $options['show_id_column'] = false;
64 $options['show_id_column'] = ( 'on' == $options['show_id_column'] ? true : false );
65
66 // Hide Comments Column
67 if ( ! isset( $options['hide_comments_column'] ) ) $options['hide_comments_column'] = false;
68 $options['hide_comments_column'] = ( 'on' == $options['hide_comments_column'] ? true : false );
69
70 // Hide Post Tags Column
71 if ( ! isset( $options['hide_post_tags_column'] ) ) $options['hide_post_tags_column'] = false;
72 $options['hide_post_tags_column'] = ( 'on' == $options['hide_post_tags_column'] ? true : false );
73
74 // Show Custom Taxonomy Filters
75 if ( ! isset( $options['show_custom_taxonomy_filters'] ) ) $options['show_custom_taxonomy_filters'] = false;
76 $options['show_custom_taxonomy_filters'] = ( 'on' == $options['show_custom_taxonomy_filters'] ? true : false );
77
78 // =================================================================
79 // ADMIN INTERFACE
80 // =================================================================
81
82 // Hide Admin Notices
83 if ( ! isset( $options['hide_admin_notices'] ) ) $options['hide_admin_notices'] = false;
84 $options['hide_admin_notices'] = ( 'on' == $options['hide_admin_notices'] ? true : false );
85
86 // Hide Admin Bar
87 if ( ! isset( $options['hide_admin_bar'] ) ) $options['hide_admin_bar'] = false;
88 $options['hide_admin_bar'] = ( 'on' == $options['hide_admin_bar'] ? true : false );
89
90 if ( is_array( $roles ) ) {
91 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
92 if ( ! isset( $options['hide_admin_bar_for'][$role_slug] ) ) $options['hide_admin_bar_for'][$role_slug] = false;
93 $options['hide_admin_bar_for'][$role_slug] = ( 'on' == $options['hide_admin_bar_for'][$role_slug] ? true : false );
94 }
95 }
96
97 // View Admin as Role
98 if ( ! isset( $options['view_admin_as_role'] ) ) $options['view_admin_as_role'] = false;
99 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
100
101 // Hide or Modify Elements
102
103 if ( ! isset( $options['hide_modify_elements'] ) ) $options['hide_modify_elements'] = false;
104 $options['hide_modify_elements'] = ( 'on' == $options['hide_modify_elements'] ? true : false );
105
106 if ( ! isset( $options['hide_ab_wp_logo_menu'] ) ) $options['hide_ab_wp_logo_menu'] = false;
107 $options['hide_ab_wp_logo_menu'] = ( 'on' == $options['hide_ab_wp_logo_menu'] ? true : false );
108
109 if ( ! isset( $options['hide_ab_customize_menu'] ) ) $options['hide_ab_customize_menu'] = false;
110 $options['hide_ab_customize_menu'] = ( 'on' == $options['hide_ab_customize_menu'] ? true : false );
111
112 if ( ! isset( $options['hide_ab_comments_menu'] ) ) $options['hide_ab_comments_menu'] = false;
113 $options['hide_ab_comments_menu'] = ( 'on' == $options['hide_ab_comments_menu'] ? true : false );
114
115 if ( ! isset( $options['hide_ab_updates_menu'] ) ) $options['hide_ab_updates_menu'] = false;
116 $options['hide_ab_updates_menu'] = ( 'on' == $options['hide_ab_updates_menu'] ? true : false );
117
118 if ( ! isset( $options['hide_ab_new_content_menu'] ) ) $options['hide_ab_new_content_menu'] = false;
119 $options['hide_ab_new_content_menu'] = ( 'on' == $options['hide_ab_new_content_menu'] ? true : false );
120
121 if ( ! isset( $options['hide_ab_howdy'] ) ) $options['hide_ab_howdy'] = false;
122 $options['hide_ab_howdy'] = ( 'on' == $options['hide_ab_howdy'] ? true : false );
123
124 // Customize Admin Menu
125
126 if ( ! isset( $options['customize_admin_menu'] ) ) $options['customize_admin_menu'] = false;
127 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
128
129 if ( ! isset( $options['custom_menu_order'] ) ) $options['custom_menu_order'] = '';
130 // The following fields are added on rendering of custom_menu_order field
131 if ( ! isset( $options['custom_menu_titles'] ) ) $options['custom_menu_titles'] = '';
132 if ( ! isset( $options['custom_menu_hidden'] ) ) $options['custom_menu_hidden'] = '';
133
134 // =================================================================
135 // LOG IN | LOG OUT
136 // =================================================================
137
138 // Change Login URL
139 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
140 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
141
142 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
143 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
144
145 // Enable Login Logout Menu
146 if ( ! isset( $options['enable_login_logout_menu'] ) ) $options['enable_login_logout_menu'] = false;
147 $options['enable_login_logout_menu'] = ( 'on' == $options['enable_login_logout_menu'] ? true : false );
148
149 // Redirect After Login
150 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
151 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
152
153 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
154 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
155
156 if ( is_array( $roles ) ) {
157 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
158 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
159 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
160 }
161 }
162
163 // Redirect After Logout
164 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
165 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
166
167 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
168 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
169
170 if ( is_array( $roles ) ) {
171 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
172 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
173 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
174 }
175 }
176
177 // Enable Last Login Column
178 if ( ! isset( $options['enable_last_login_column'] ) ) $options['enable_last_login_column'] = false;
179 $options['enable_last_login_column'] = ( 'on' == $options['enable_last_login_column'] ? true : false );
180
181 // =================================================================
182 // CUSTOM CODE
183 // =================================================================
184
185 // Enable Custom Admin CSS
186 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
187 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
188
189 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
190 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
191
192 // Enable Custom Frontend CSS
193 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
194 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
195
196 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
197 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
198
199 // Manage ads.txt and app-ads.txt
200 if ( ! isset( $options['manage_ads_appads_txt'] ) ) $options['manage_ads_appads_txt'] = false;
201 $options['manage_ads_appads_txt'] = ( 'on' == $options['manage_ads_appads_txt'] ? true : false );
202
203 if ( ! isset( $options['ads_txt_content'] ) ) $options['ads_txt_content'] = '';
204 $options['ads_txt_content'] = ( ! empty( $options['ads_txt_content'] ) ) ? $options['ads_txt_content'] : '';
205
206 if ( ! isset( $options['app_ads_txt_content'] ) ) $options['app_ads_txt_content'] = '';
207 $options['app_ads_txt_content'] = ( ! empty( $options['app_ads_txt_content'] ) ) ? $options['app_ads_txt_content'] : '';
208
209 // Manage robots.txt
210 if ( ! isset( $options['manage_robots_txt'] ) ) $options['manage_robots_txt'] = false;
211 $options['manage_robots_txt'] = ( 'on' == $options['manage_robots_txt'] ? true : false );
212
213 if ( ! isset( $options['robots_txt_content'] ) ) $options['robots_txt_content'] = '';
214 $options['robots_txt_content'] = ( ! empty( $options['robots_txt_content'] ) ) ? $options['robots_txt_content'] : '';
215
216 // Insert <head>, <body> and <footer> code
217 if ( ! isset( $options['insert_head_body_footer_code'] ) ) $options['insert_head_body_footer_code'] = false;
218 $options['insert_head_body_footer_code'] = ( 'on' == $options['insert_head_body_footer_code'] ? true : false );
219
220 if ( ! isset( $options['head_code_priority'] ) ) $options['head_code_priority'] = '';
221 $options['head_code_priority'] = ( isset( $options['head_code_priority'] ) ) ? $options['head_code_priority'] : 10;
222
223 if ( ! isset( $options['head_code'] ) ) $options['head_code'] = '';
224 $options['head_code'] = ( ! empty( $options['head_code'] ) ) ? $options['head_code'] : '';
225
226 if ( ! isset( $options['body_code_priority'] ) ) $options['body_code_priority'] = '';
227 $options['body_code_priority'] = ( isset( $options['body_code_priority'] ) ) ? $options['body_code_priority'] : 10;
228
229 if ( ! isset( $options['body_code'] ) ) $options['body_code'] = '';
230 $options['body_code'] = ( ! empty( $options['body_code'] ) ) ? $options['body_code'] : '';
231
232 if ( ! isset( $options['footer_code_priority'] ) ) $options['footer_code_priority'] = '';
233 $options['footer_code_priority'] = ( isset( $options['footer_code_priority'] ) ) ? $options['footer_code_priority'] : 10;
234
235 if ( ! isset( $options['footer_code'] ) ) $options['footer_code'] = '';
236 $options['footer_code'] = ( ! empty( $options['footer_code'] ) ) ? $options['footer_code'] : '';
237
238 // =================================================================
239 // DISABLE COMPONENTS
240 // =================================================================
241
242 // Disable Gutenberg
243 if ( ! isset( $options['disable_gutenberg'] ) ) $options['disable_gutenberg'] = false;
244 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
245
246 if ( is_array( $asenha_gutenberg_post_types ) ) {
247 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
248 if ( ! isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) $options['disable_gutenberg_for'][$post_type_slug] = false;
249 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
250 }
251 }
252
253 if ( ! isset( $options['disable_gutenberg_frontend_styles'] ) ) $options['disable_gutenberg_frontend_styles'] = false;
254 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
255
256 // Disable Comments
257 if ( ! isset( $options['disable_comments'] ) ) $options['disable_comments'] = false;
258 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
259
260 if ( is_array( $asenha_public_post_types ) ) {
261 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
262 if ( ! isset( $options['disable_comments_for'][$post_type_slug] ) ) $options['disable_comments_for'][$post_type_slug] = false;
263 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
264 }
265 }
266
267 // Disable REST API
268 if ( ! isset( $options['disable_rest_api'] ) ) $options['disable_rest_api'] = false;
269 $options['disable_rest_api'] = ( 'on' == $options['disable_rest_api'] ? true : false );
270
271 // Disable Feeds
272 if ( ! isset( $options['disable_feeds'] ) ) $options['disable_feeds'] = false;
273 $options['disable_feeds'] = ( 'on' == $options['disable_feeds'] ? true : false );
274
275 // =================================================================
276 // SECURITY
277 // =================================================================
278
279 // Limit Login Attempts
280 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
281 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
282
283 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
284 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
285
286 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
287 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
288
289 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
290 $options['login_attempts_log_table'] = '';
291
292 // Obfuscate Author Slugs
293 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
294 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
295
296 // Disable XML-RPC
297 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
298 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
299
300 // =================================================================
301 // UTILITIES
302 // =================================================================
303
304 // Redirect 404 to Homepage
305 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
306 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
307
308 return $options;
309
310 }
311
312 /**
313 * Sanitize checkbox field. For reference purpose. Not currently in use.
314 *
315 * @since 1.0.0
316 */
317 function asenha_sanitize_checkbox_field( $value ) {
318
319 // 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)
320 return 'on' === $value ? true : false;
321
322 }
323
324 }