PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 2.8.2
Admin and Site Enhancements (ASE) v2.8.2
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-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
247 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 // ===== SECURITY =====
154
155 // Change Login URL
156 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
157 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
158
159 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
160 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
161
162 // Limit Login Attempts
163 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
164 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
165
166 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
167 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
168
169 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
170 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
171
172 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
173 $options['login_attempts_log_table'] = '';
174
175 // Obfuscate Author Slugs
176 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
177 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
178
179 // ===== UTILITIES ======
180
181 // Redirect After Login
182 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
183 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
184
185 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
186 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
187
188 if ( is_array( $roles ) ) {
189 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
190 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
191 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
192 }
193 }
194
195 // Redirect After Logout
196 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
197 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
198
199 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
200 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
201
202 if ( is_array( $roles ) ) {
203 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
204 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
205 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
206 }
207 }
208
209 // Redirect 404 to Homepage
210 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
211 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
212
213 // Disable XML-RPC
214 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
215 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
216
217 // Enable Custom Admin CSS
218 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
219 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
220
221 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
222 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
223
224 // Enable Custom Frontend CSS
225 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
226 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
227
228 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
229 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
230
231 return $options;
232
233 }
234
235 /**
236 * Sanitize checkbox field. For reference purpose. Not currently in use.
237 *
238 * @since 1.0.0
239 */
240 function asenha_sanitize_checkbox_field( $value ) {
241
242 // 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)
243 return 'on' === $value ? true : false;
244
245 }
246
247 }