PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.0.2
Admin and Site Enhancements (ASE) v3.0.2
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
255 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 // Enhance List Tables
45 if ( ! isset( $options['enhance_list_tables'] ) ) $options['enhance_list_tables'] = false;
46 $options['enhance_list_tables'] = ( 'on' == $options['enhance_list_tables'] ? true : false );
47
48 // Show Featured Image Column
49 if ( ! isset( $options['show_featured_image_column'] ) ) $options['show_featured_image_column'] = false;
50 $options['show_featured_image_column'] = ( 'on' == $options['show_featured_image_column'] ? true : false );
51
52 // Show Excerpt Column
53 if ( ! isset( $options['show_excerpt_column'] ) ) $options['show_excerpt_column'] = false;
54 $options['show_excerpt_column'] = ( 'on' == $options['show_excerpt_column'] ? true : false );
55
56 // Show ID Column
57 if ( ! isset( $options['show_id_column'] ) ) $options['show_id_column'] = false;
58 $options['show_id_column'] = ( 'on' == $options['show_id_column'] ? true : false );
59
60 // Hide Comments Column
61 if ( ! isset( $options['hide_comments_column'] ) ) $options['hide_comments_column'] = false;
62 $options['hide_comments_column'] = ( 'on' == $options['hide_comments_column'] ? true : false );
63
64 // Hide Post Tags Column
65 if ( ! isset( $options['hide_post_tags_column'] ) ) $options['hide_post_tags_column'] = false;
66 $options['hide_post_tags_column'] = ( 'on' == $options['hide_post_tags_column'] ? true : false );
67
68 // Show Custom Taxonomy Filters
69 if ( ! isset( $options['show_custom_taxonomy_filters'] ) ) $options['show_custom_taxonomy_filters'] = false;
70 $options['show_custom_taxonomy_filters'] = ( 'on' == $options['show_custom_taxonomy_filters'] ? true : false );
71
72 // ===== ADMIN INTERFACE =====
73
74 // Hide Admin Notices
75 if ( ! isset( $options['hide_admin_notices'] ) ) $options['hide_admin_notices'] = false;
76 $options['hide_admin_notices'] = ( 'on' == $options['hide_admin_notices'] ? true : false );
77
78 // Hide Admin Bar
79 if ( ! isset( $options['hide_admin_bar'] ) ) $options['hide_admin_bar'] = false;
80 $options['hide_admin_bar'] = ( 'on' == $options['hide_admin_bar'] ? true : false );
81
82 if ( is_array( $roles ) ) {
83 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
84 if ( ! isset( $options['hide_admin_bar_for'][$role_slug] ) ) $options['hide_admin_bar_for'][$role_slug] = false;
85 $options['hide_admin_bar_for'][$role_slug] = ( 'on' == $options['hide_admin_bar_for'][$role_slug] ? true : false );
86 }
87 }
88
89 // View Admin as Role
90 if ( ! isset( $options['view_admin_as_role'] ) ) $options['view_admin_as_role'] = false;
91 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
92
93 // Hide or Modify Elements
94
95 if ( ! isset( $options['hide_modify_elements'] ) ) $options['hide_modify_elements'] = false;
96 $options['hide_modify_elements'] = ( 'on' == $options['hide_modify_elements'] ? true : false );
97
98 if ( ! isset( $options['hide_ab_wp_logo_menu'] ) ) $options['hide_ab_wp_logo_menu'] = false;
99 $options['hide_ab_wp_logo_menu'] = ( 'on' == $options['hide_ab_wp_logo_menu'] ? true : false );
100
101 if ( ! isset( $options['hide_ab_customize_menu'] ) ) $options['hide_ab_customize_menu'] = false;
102 $options['hide_ab_customize_menu'] = ( 'on' == $options['hide_ab_customize_menu'] ? true : false );
103
104 if ( ! isset( $options['hide_ab_comments_menu'] ) ) $options['hide_ab_comments_menu'] = false;
105 $options['hide_ab_comments_menu'] = ( 'on' == $options['hide_ab_comments_menu'] ? true : false );
106
107 if ( ! isset( $options['hide_ab_updates_menu'] ) ) $options['hide_ab_updates_menu'] = false;
108 $options['hide_ab_updates_menu'] = ( 'on' == $options['hide_ab_updates_menu'] ? true : false );
109
110 if ( ! isset( $options['hide_ab_new_content_menu'] ) ) $options['hide_ab_new_content_menu'] = false;
111 $options['hide_ab_new_content_menu'] = ( 'on' == $options['hide_ab_new_content_menu'] ? true : false );
112
113 if ( ! isset( $options['hide_ab_howdy'] ) ) $options['hide_ab_howdy'] = false;
114 $options['hide_ab_howdy'] = ( 'on' == $options['hide_ab_howdy'] ? true : false );
115
116 // Customize Admin Menu
117
118 if ( ! isset( $options['customize_admin_menu'] ) ) $options['customize_admin_menu'] = false;
119 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
120
121 if ( ! isset( $options['custom_menu_order'] ) ) $options['custom_menu_order'] = '';
122 // The following fields are added on rendering of custom_menu_order field
123 if ( ! isset( $options['custom_menu_titles'] ) ) $options['custom_menu_titles'] = '';
124 if ( ! isset( $options['custom_menu_hidden'] ) ) $options['custom_menu_hidden'] = '';
125
126 // ===== DISABLE COMPONENTS ======
127
128 // Disable Gutenberg
129 if ( ! isset( $options['disable_gutenberg'] ) ) $options['disable_gutenberg'] = false;
130 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
131
132 if ( is_array( $asenha_gutenberg_post_types ) ) {
133 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
134 if ( ! isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) $options['disable_gutenberg_for'][$post_type_slug] = false;
135 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
136 }
137 }
138
139 if ( ! isset( $options['disable_gutenberg_frontend_styles'] ) ) $options['disable_gutenberg_frontend_styles'] = false;
140 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
141
142 // Disable Comments
143 if ( ! isset( $options['disable_comments'] ) ) $options['disable_comments'] = false;
144 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
145
146 if ( is_array( $asenha_public_post_types ) ) {
147 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
148 if ( ! isset( $options['disable_comments_for'][$post_type_slug] ) ) $options['disable_comments_for'][$post_type_slug] = false;
149 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
150 }
151 }
152
153 // Disable REST API
154 if ( ! isset( $options['disable_rest_api'] ) ) $options['disable_rest_api'] = false;
155 $options['disable_rest_api'] = ( 'on' == $options['disable_rest_api'] ? true : false );
156
157 // Disable Feeds
158 if ( ! isset( $options['disable_feeds'] ) ) $options['disable_feeds'] = false;
159 $options['disable_feeds'] = ( 'on' == $options['disable_feeds'] ? true : false );
160
161 // ===== SECURITY =====
162
163 // Change Login URL
164 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
165 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
166
167 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
168 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
169
170 // Limit Login Attempts
171 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
172 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
173
174 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
175 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
176
177 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
178 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
179
180 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
181 $options['login_attempts_log_table'] = '';
182
183 // Obfuscate Author Slugs
184 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
185 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
186
187 // ===== UTILITIES ======
188
189 // Redirect After Login
190 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
191 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
192
193 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
194 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
195
196 if ( is_array( $roles ) ) {
197 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
198 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
199 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
200 }
201 }
202
203 // Redirect After Logout
204 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
205 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
206
207 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
208 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
209
210 if ( is_array( $roles ) ) {
211 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
212 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
213 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
214 }
215 }
216
217 // Redirect 404 to Homepage
218 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
219 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
220
221 // Disable XML-RPC
222 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
223 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
224
225 // Enable Custom Admin CSS
226 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
227 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
228
229 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
230 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
231
232 // Enable Custom Frontend CSS
233 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
234 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
235
236 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
237 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
238
239 return $options;
240
241 }
242
243 /**
244 * Sanitize checkbox field. For reference purpose. Not currently in use.
245 *
246 * @since 1.0.0
247 */
248 function asenha_sanitize_checkbox_field( $value ) {
249
250 // 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)
251 return 'on' === $value ? true : false;
252
253 }
254
255 }