PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.3.0
Admin and Site Enhancements (ASE) v3.3.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
291 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 // Redirect After Login
194 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
195 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
196
197 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
198 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
199
200 if ( is_array( $roles ) ) {
201 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
202 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
203 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
204 }
205 }
206
207 // Redirect After Logout
208 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
209 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
210
211 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
212 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
213
214 if ( is_array( $roles ) ) {
215 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
216 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
217 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
218 }
219 }
220
221 // Redirect 404 to Homepage
222 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
223 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
224
225 // Disable XML-RPC
226 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
227 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
228
229 // Enable Custom Admin CSS
230 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
231 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
232
233 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
234 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
235
236 // Enable Custom Frontend CSS
237 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
238 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
239
240 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
241 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
242
243 // Manage ads.txt and app-ads.txt
244 if ( ! isset( $options['manage_ads_appads_txt'] ) ) $options['manage_ads_appads_txt'] = false;
245 $options['manage_ads_appads_txt'] = ( 'on' == $options['manage_ads_appads_txt'] ? true : false );
246
247 if ( ! isset( $options['ads_txt_content'] ) ) $options['ads_txt_content'] = '';
248 $options['ads_txt_content'] = ( ! empty( $options['ads_txt_content'] ) ) ? $options['ads_txt_content'] : '';
249
250 if ( ! isset( $options['app_ads_txt_content'] ) ) $options['app_ads_txt_content'] = '';
251 $options['app_ads_txt_content'] = ( ! empty( $options['app_ads_txt_content'] ) ) ? $options['app_ads_txt_content'] : '';
252
253 // Insert <head>, <body> and <footer> code
254 if ( ! isset( $options['insert_head_body_footer_code'] ) ) $options['insert_head_body_footer_code'] = false;
255 $options['insert_head_body_footer_code'] = ( 'on' == $options['insert_head_body_footer_code'] ? true : false );
256
257 if ( ! isset( $options['head_code_priority'] ) ) $options['head_code_priority'] = '';
258 $options['head_code_priority'] = ( isset( $options['head_code_priority'] ) ) ? $options['head_code_priority'] : 10;
259
260 if ( ! isset( $options['head_code'] ) ) $options['head_code'] = '';
261 $options['head_code'] = ( ! empty( $options['head_code'] ) ) ? $options['head_code'] : '';
262
263 if ( ! isset( $options['body_code_priority'] ) ) $options['body_code_priority'] = '';
264 $options['body_code_priority'] = ( isset( $options['body_code_priority'] ) ) ? $options['body_code_priority'] : 10;
265
266 if ( ! isset( $options['body_code'] ) ) $options['body_code'] = '';
267 $options['body_code'] = ( ! empty( $options['body_code'] ) ) ? $options['body_code'] : '';
268
269 if ( ! isset( $options['footer_code_priority'] ) ) $options['footer_code_priority'] = '';
270 $options['footer_code_priority'] = ( isset( $options['footer_code_priority'] ) ) ? $options['footer_code_priority'] : 10;
271
272 if ( ! isset( $options['footer_code'] ) ) $options['footer_code'] = '';
273 $options['footer_code'] = ( ! empty( $options['footer_code'] ) ) ? $options['footer_code'] : '';
274
275 return $options;
276
277 }
278
279 /**
280 * Sanitize checkbox field. For reference purpose. Not currently in use.
281 *
282 * @since 1.0.0
283 */
284 function asenha_sanitize_checkbox_field( $value ) {
285
286 // 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)
287 return 'on' === $value ? true : false;
288
289 }
290
291 }