PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.73
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.73
1.2.74 1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 All 174 releases
← All changes | includes/class-validation.php +26 -7 1.2.641.2.73 View file →
@@ -17,13 +17,13 @@
17 17 *
18 18 * @param array $data Submitted form data
19 19 * @param string $type Form type.
20 20 * @param array|bool $fields Fields applicable for validation.
21 + * @param string $extra_where Extra where query.
21 22 *
22 23 * @return array|mixed|WP_Error Validated form data.
23 24 */
24 - public function validate_fields($data, $type, $fields = false) {
25 -
25 + public function validate_fields( $data, $type, $fields = false, $extra_where = '' ) {
26 26 $errors = new WP_Error();
27 27
28 28 $errors = apply_filters('uwp_validate_fields_before', $errors, $data, $type);
29 29
@@ -44,9 +44,9 @@
44 44 $fields = get_register_validate_form_fields($form_id);
45 45 } elseif ($type == 'change') {
46 46 $fields = get_change_validate_form_fields();
47 47 } elseif ($type == 'account') {
48 - $fields = get_account_form_fields();
48 + $fields = get_account_form_fields( $extra_where );
49 49 } else {
50 50 $fields = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $table_name . " WHERE form_type = %s AND field_type != 'fieldset' AND field_type != 'file' AND is_active = '1' ORDER BY sort_order ASC", array($type)));
51 51 }
52 52 }
@@ -61,11 +61,11 @@
61 61
62 62 $enable_confirm_email_field = isset($email_extra['confirm_email']) ? $email_extra['confirm_email'] : '0';
63 63
64 64 $password_field = uwp_get_custom_field_info('password','account');
65 - $enable_password = isset($data['password']) && $password_field->is_active ? 1 : 0;
65 + $enable_password = isset($data['password']) && !empty($password_field) && $password_field->is_active ? 1 : 0;
66 66 $password_extra = array();
67 - if (isset($password_field->extra_fields) && $password_field->extra_fields != '') {
67 + if (!empty($password_field) && isset($password_field->extra_fields) && $password_field->extra_fields != '') {
68 68 $password_extra = unserialize($password_field->extra_fields);
69 69 }
70 70
71 71 $enable_confirm_password_field = isset($password_extra['confirm_password']) ? $password_extra['confirm_password'] : '0';
@@ -132,9 +132,13 @@
132 132 case 'uwp_register_email':
133 133 case 'uwp_forgot_email':
134 134 case 'email':
135 135 case 'confirm_email':
136 - $sanitized_value = sanitize_email($value);
136 + if ($type == 'forgot' && $field->htmlvar_name == 'email') {
137 + $sanitized_value = is_email($value) ? sanitize_email($value) : sanitize_user($value);
138 + } else {
139 + $sanitized_value = sanitize_email($value);
140 + }
137 141 $sanitized = true;
138 142 break;
139 143
140 144 }
@@ -185,8 +189,17 @@
185 189 case 'url':
186 190 $sanitized_value = sanitize_url( wp_unslash( $value ) );
187 191 break;
188 192
193 + case 'file':
194 + $sanitized_value = sanitize_text_field( $value );
195 +
196 + // Validate the file path.
197 + if ( $sanitized_value && validate_file( $sanitized_value ) !== 0 ) {
198 + $sanitized_value = '';
199 + }
200 + break;
201 +
189 202 default:
190 203 $sanitized_value = sanitize_text_field($value);
191 204 }
192 205 }
@@ -204,9 +217,15 @@
204 217 }
205 218 }
206 219 }
207 220
208 - if ($field->field_type == 'email' && !empty($sanitized_value) && !is_email($sanitized_value)) {
221 + if ($type == 'forgot' && $field->htmlvar_name == 'email') {
222 + if (!empty($sanitized_value) && !is_email($sanitized_value) && !validate_username($sanitized_value)) {
223 + $incorrect_username_or_email_error_msg = apply_filters('uwp_incorrect_username_or_email_error_msg', __('<strong>Error</strong>: Please enter a valid username or email address.', 'userswp'));
224 + $errors->add('invalid_username_or_email', $incorrect_username_or_email_error_msg);
225 + return $errors;
226 + }
227 + } elseif ($field->field_type == 'email' && !empty($sanitized_value) && !is_email($sanitized_value)) {
209 228 $incorrect_email_error_msg = apply_filters('uwp_incorrect_email_error_msg', __('<strong>Error</strong>: The email address isn&#8217;t correct.', 'userswp'));
210 229 $errors->add('invalid_email', $incorrect_email_error_msg);
211 230 return $errors;
212 231 }