PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 2.5.0
Admin and Site Enhancements (ASE) v2.5.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
209 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;
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 // Enhance List Tables
34 if ( ! isset( $options['enhance_list_tables'] ) ) $options['enhance_list_tables'] = false;
35 $options['enhance_list_tables'] = ( 'on' == $options['enhance_list_tables'] ? true : false );
36
37 // Show Featured Image Column
38 if ( ! isset( $options['show_featured_image_column'] ) ) $options['show_featured_image_column'] = false;
39 $options['show_featured_image_column'] = ( 'on' == $options['show_featured_image_column'] ? true : false );
40
41 // Show Excerpt Column
42 if ( ! isset( $options['show_excerpt_column'] ) ) $options['show_excerpt_column'] = false;
43 $options['show_excerpt_column'] = ( 'on' == $options['show_excerpt_column'] ? true : false );
44
45 // Show ID Column
46 if ( ! isset( $options['show_id_column'] ) ) $options['show_id_column'] = false;
47 $options['show_id_column'] = ( 'on' == $options['show_id_column'] ? true : false );
48
49 // Hide Comments Column
50 if ( ! isset( $options['hide_comments_column'] ) ) $options['hide_comments_column'] = false;
51 $options['hide_comments_column'] = ( 'on' == $options['hide_comments_column'] ? true : false );
52
53 // Hide Post Tags Column
54 if ( ! isset( $options['hide_post_tags_column'] ) ) $options['hide_post_tags_column'] = false;
55 $options['hide_post_tags_column'] = ( 'on' == $options['hide_post_tags_column'] ? true : false );
56
57 // Show Custom Taxonomy Filters
58 if ( ! isset( $options['show_custom_taxonomy_filters'] ) ) $options['show_custom_taxonomy_filters'] = false;
59 $options['show_custom_taxonomy_filters'] = ( 'on' == $options['show_custom_taxonomy_filters'] ? true : false );
60
61 // ===== ADMIN INTERFACE =====
62
63 // Hide Admin Notices
64 if ( ! isset( $options['hide_admin_notices'] ) ) $options['hide_admin_notices'] = false;
65 $options['hide_admin_notices'] = ( 'on' == $options['hide_admin_notices'] ? true : false );
66
67 // Hide Admin Bar
68 if ( ! isset( $options['hide_admin_bar'] ) ) $options['hide_admin_bar'] = false;
69 $options['hide_admin_bar'] = ( 'on' == $options['hide_admin_bar'] ? true : false );
70
71 if ( is_array( $roles ) ) {
72 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
73 if ( ! isset( $options['hide_admin_bar_for'][$role_slug] ) ) $options['hide_admin_bar_for'][$role_slug] = false;
74 $options['hide_admin_bar_for'][$role_slug] = ( 'on' == $options['hide_admin_bar_for'][$role_slug] ? true : false );
75 }
76 }
77
78 // View Admin as Role
79 if ( ! isset( $options['view_admin_as_role'] ) ) $options['view_admin_as_role'] = false;
80 $options['view_admin_as_role'] = ( 'on' == $options['view_admin_as_role'] ? true : false );
81
82 // Hide or Modify Elements
83
84 if ( ! isset( $options['hide_modify_elements'] ) ) $options['hide_modify_elements'] = false;
85 $options['hide_modify_elements'] = ( 'on' == $options['hide_modify_elements'] ? true : false );
86
87 if ( ! isset( $options['hide_ab_wp_logo_menu'] ) ) $options['hide_ab_wp_logo_menu'] = false;
88 $options['hide_ab_wp_logo_menu'] = ( 'on' == $options['hide_ab_wp_logo_menu'] ? true : false );
89
90 if ( ! isset( $options['hide_ab_customize_menu'] ) ) $options['hide_ab_customize_menu'] = false;
91 $options['hide_ab_customize_menu'] = ( 'on' == $options['hide_ab_customize_menu'] ? true : false );
92
93 if ( ! isset( $options['hide_ab_comments_menu'] ) ) $options['hide_ab_comments_menu'] = false;
94 $options['hide_ab_comments_menu'] = ( 'on' == $options['hide_ab_comments_menu'] ? true : false );
95
96 if ( ! isset( $options['hide_ab_updates_menu'] ) ) $options['hide_ab_updates_menu'] = false;
97 $options['hide_ab_updates_menu'] = ( 'on' == $options['hide_ab_updates_menu'] ? true : false );
98
99 if ( ! isset( $options['hide_ab_new_content_menu'] ) ) $options['hide_ab_new_content_menu'] = false;
100 $options['hide_ab_new_content_menu'] = ( 'on' == $options['hide_ab_new_content_menu'] ? true : false );
101
102 if ( ! isset( $options['hide_ab_howdy'] ) ) $options['hide_ab_howdy'] = false;
103 $options['hide_ab_howdy'] = ( 'on' == $options['hide_ab_howdy'] ? true : false );
104
105 // Customize Admin Menu
106
107 if ( ! isset( $options['customize_admin_menu'] ) ) $options['customize_admin_menu'] = false;
108 $options['customize_admin_menu'] = ( 'on' == $options['customize_admin_menu'] ? true : false );
109
110 if ( ! isset( $options['custom_menu_order'] ) ) $options['custom_menu_order'] = '';
111 if ( ! isset( $options['custom_menu_hidden'] ) ) $options['custom_menu_hidden'] = '';
112
113 // ===== SECURITY =====
114
115 // Change Login URL
116 if ( ! isset( $options['change_login_url'] ) ) $options['change_login_url'] = false;
117 $options['change_login_url'] = ( 'on' == $options['change_login_url'] ? true : false );
118
119 if ( ! isset( $options['custom_login_slug'] ) ) $options['custom_login_slug'] = 'backend';
120 $options['custom_login_slug'] = ( ! empty( $options['custom_login_slug'] ) ) ? sanitize_text_field( $options['custom_login_slug'] ) : 'backend';
121
122 // Limit Login Attempts
123 if ( ! isset( $options['limit_login_attempts'] ) ) $options['limit_login_attempts'] = false;
124 $options['limit_login_attempts'] = ( 'on' == $options['limit_login_attempts'] ? true : false );
125
126 if ( ! isset( $options['login_fails_allowed'] ) ) $options['login_fails_allowed'] = 3;
127 $options['login_fails_allowed'] = ( ! empty( $options['login_fails_allowed'] ) ) ? sanitize_text_field( $options['login_fails_allowed'] ) : 3;
128
129 if ( ! isset( $options['login_lockout_maxcount'] ) ) $options['login_lockout_maxcount'] = 3;
130 $options['login_lockout_maxcount'] = ( ! empty( $options['login_lockout_maxcount'] ) ) ? sanitize_text_field( $options['login_lockout_maxcount'] ) : 3;
131
132 if ( ! isset( $options['login_attempts_log_table'] ) ) $options['login_attempts_log_table'] = '';
133 $options['login_attempts_log_table'] = '';
134
135 // Obfuscate Author Slugs
136 if ( ! isset( $options['obfuscate_author_slugs'] ) ) $options['obfuscate_author_slugs'] = false;
137 $options['obfuscate_author_slugs'] = ( 'on' == $options['obfuscate_author_slugs'] ? true : false );
138
139 // ===== UTILITIES ======
140
141 // Redirect After Login
142 if ( ! isset( $options['redirect_after_login'] ) ) $options['redirect_after_login'] = false;
143 $options['redirect_after_login'] = ( 'on' == $options['redirect_after_login'] ? true : false );
144
145 if ( ! isset( $options['redirect_after_login_to_slug'] ) ) $options['redirect_after_login_to_slug'] = '';
146 $options['redirect_after_login_to_slug'] = ( ! empty( $options['redirect_after_login_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_login_to_slug'] ) : '';
147
148 if ( is_array( $roles ) ) {
149 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
150 if ( ! isset( $options['redirect_after_login_for'][$role_slug] ) ) $options['redirect_after_login_for'][$role_slug] = false;
151 $options['redirect_after_login_for'][$role_slug] = ( 'on' == $options['redirect_after_login_for'][$role_slug] ? true : false );
152 }
153 }
154
155 // Redirect After Logout
156 if ( ! isset( $options['redirect_after_logout'] ) ) $options['redirect_after_logout'] = false;
157 $options['redirect_after_logout'] = ( 'on' == $options['redirect_after_logout'] ? true : false );
158
159 if ( ! isset( $options['redirect_after_logout_to_slug'] ) ) $options['redirect_after_logout_to_slug'] = '';
160 $options['redirect_after_logout_to_slug'] = ( ! empty( $options['redirect_after_logout_to_slug'] ) ) ? sanitize_text_field( $options['redirect_after_logout_to_slug'] ) : '';
161
162 if ( is_array( $roles ) ) {
163 foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator
164 if ( ! isset( $options['redirect_after_logout_for'][$role_slug] ) ) $options['redirect_after_logout_for'][$role_slug] = false;
165 $options['redirect_after_logout_for'][$role_slug] = ( 'on' == $options['redirect_after_logout_for'][$role_slug] ? true : false );
166 }
167 }
168
169 // Redirect 404 to Homepage
170 if ( ! isset( $options['redirect_404_to_homepage'] ) ) $options['redirect_404_to_homepage'] = false;
171 $options['redirect_404_to_homepage'] = ( 'on' == $options['redirect_404_to_homepage'] ? true : false );
172
173 // Disable XML-RPC
174 if ( ! isset( $options['disable_xmlrpc'] ) ) $options['disable_xmlrpc'] = false;
175 $options['disable_xmlrpc'] = ( 'on' == $options['disable_xmlrpc'] ? true : false );
176
177 // Enable Custom Admin CSS
178 if ( ! isset( $options['enable_custom_admin_css'] ) ) $options['enable_custom_admin_css'] = false;
179 $options['enable_custom_admin_css'] = ( 'on' == $options['enable_custom_admin_css'] ? true : false );
180
181 if ( ! isset( $options['custom_admin_css'] ) ) $options['custom_admin_css'] = '';
182 $options['custom_admin_css'] = ( ! empty( $options['custom_admin_css'] ) ) ? $options['custom_admin_css'] : '';
183
184 // Enable Custom Frontend CSS
185 if ( ! isset( $options['enable_custom_frontend_css'] ) ) $options['enable_custom_frontend_css'] = false;
186 $options['enable_custom_frontend_css'] = ( 'on' == $options['enable_custom_frontend_css'] ? true : false );
187
188 if ( ! isset( $options['custom_frontend_css'] ) ) $options['custom_frontend_css'] = '';
189 $options['custom_frontend_css'] = ( ! empty( $options['custom_frontend_css'] ) ) ? $options['custom_frontend_css'] : '';
190
191 // ===== DISABLE COMPONENTS ======
192
193 return $options;
194
195 }
196
197 /**
198 * Sanitize checkbox field. For reference purpose. Not currently in use.
199 *
200 * @since 1.0.0
201 */
202 function asenha_sanitize_checkbox_field( $value ) {
203
204 // 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)
205 return 'on' === $value ? true : false;
206
207 }
208
209 }