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