PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 2.8.1
Admin and Site Enhancements (ASE) v2.8.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
245 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 if ( ! isset( $options['custom_menu_hidden'] ) ) $options['custom_menu_hidden'] = '';
123
124 // ===== DISABLE COMPONENTS ======
125
126 // Disable Gutenberg
127 if ( ! isset( $options['disable_gutenberg'] ) ) $options['disable_gutenberg'] = false;
128 $options['disable_gutenberg'] = ( 'on' == $options['disable_gutenberg'] ? true : false );
129
130 if ( is_array( $asenha_gutenberg_post_types ) ) {
131 foreach ( $asenha_gutenberg_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post,
132 if ( ! isset( $options['disable_gutenberg_for'][$post_type_slug] ) ) $options['disable_gutenberg_for'][$post_type_slug] = false;
133 $options['disable_gutenberg_for'][$post_type_slug] = ( 'on' == $options['disable_gutenberg_for'][$post_type_slug] ? true : false );
134 }
135 }
136
137 if ( ! isset( $options['disable_gutenberg_frontend_styles'] ) ) $options['disable_gutenberg_frontend_styles'] = false;
138 $options['disable_gutenberg_frontend_styles'] = ( 'on' == $options['disable_gutenberg_frontend_styles'] ? true : false );
139
140 // Disable Comments
141 if ( ! isset( $options['disable_comments'] ) ) $options['disable_comments'] = false;
142 $options['disable_comments'] = ( 'on' == $options['disable_comments'] ? true : false );
143
144 if ( is_array( $asenha_public_post_types ) ) {
145 foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts
146 if ( ! isset( $options['disable_comments_for'][$post_type_slug] ) ) $options['disable_comments_for'][$post_type_slug] = false;
147 $options['disable_comments_for'][$post_type_slug] = ( 'on' == $options['disable_comments_for'][$post_type_slug] ? true : false );
148 }
149 }
150
151 // ===== SECURITY =====
152
153 // Change Login URL
154 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
155 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
156
157 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
158 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
159
160 // Limit Login Attempts
161 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
162 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
163
164 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
165 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
166
167 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
168 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
169
170 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
171 $options['login_attempts_log_table'] = '';
172
173 // Obfuscate Author Slugs
174 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
175 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
176
177 // ===== UTILITIES ======
178
179 // Redirect After Login
180 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
181 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
182
183 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
184 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
185
186 if ( is_array( $roles ) ) {
187 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
188 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
189 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
190 }
191 }
192
193 // Redirect After Logout
194 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
195 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
196
197 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
198 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_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_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
203 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
204 }
205 }
206
207 // Redirect 404 to Homepage
208 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
209 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
210
211 // Disable XML-RPC
212 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
213 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
214
215 // Enable Custom Admin CSS
216 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
217 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
218
219 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
220 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
221
222 // Enable Custom Frontend CSS
223 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
224 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
225
226 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
227 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
228
229 return $options;
230
231 }
232
233 /**
234 * Sanitize checkbox field. For reference purpose. Not currently in use.
235 *
236 * @since 1.0.0
237 */
238 function asenha_sanitize_checkbox_field( $value ) {
239
240 // 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)
241 return 'on' === $value ? true : false;
242
243 }
244
245 }