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