PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 4.0.3
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v4.0.3
4.0.3 4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 341 releases
← All changes | front-end/default-fields/username/username.php +94 -68 2.0.3 → 4.0.3 View file →
@@ -1,68 +1,94 @@
1 -<?php
2 -/* handle field output */
3 -function wppb_username_handler( $output, $form_location, $field, $user_id, $field_check_errors, $request_data ){
4 - $item_title = apply_filters( 'wppb_'.$form_location.'_username_item_title', wppb_icl_t( 'plugin profile-builder-pro', 'default_field_'.$field['id'].'_title_translation', $field['field-title'] ) );
5 - $item_description = wppb_icl_t( 'plugin profile-builder-pro', 'default_field_'.$field['id'].'_description_translation', $field['description'] );
6 -
7 - $input_value = ( ( $form_location == 'edit_profile' ) ? get_the_author_meta( 'user_login', $user_id ) : '' );
8 -
9 - $input_value = ( ( trim( $input_value ) == '' ) ? $field['default-value'] : $input_value );
10 -
11 - $input_value = ( isset( $request_data['username'] ) ? trim( $request_data['username'] ) : $input_value );
12 -
13 - if ( $form_location != 'back_end' ){
14 - $error_mark = ( ( $field['required'] == 'Yes' ) ? '<span class="wppb-required" title="'.wppb_required_field_error($field["field-title"]).'">*</span>' : '' );
15 -
16 - if ( array_key_exists( $field['id'], $field_check_errors ) )
17 - $error_mark = '<img src="'.WPPB_PLUGIN_URL.'assets/images/pencil_delete.png" title="'.wppb_required_field_error($field["field-title"]).'"/>';
18 -
19 - $readonly = ( ( $form_location == 'edit_profile' ) ? ' disabled="disabled"' : '' );
20 -
21 - $output = '
22 - <label for="username">'.$item_title.$error_mark.'</label>
23 - <input class="text-input default_field_username" name="username" maxlength="'. apply_filters( 'wppb_maximum_character_length', 70 ) .'" type="text" id="username" value="'. esc_attr( $input_value ) .'"'.$readonly.'/>';
24 - if( !empty( $item_description ) )
25 - $output .= '<span class="wppb-description-delimiter">'.$item_description.'</span>';
26 - }
27 -
28 - return apply_filters( 'wppb_'.$form_location.'_username', $output, $form_location, $field, $user_id, $field_check_errors, $request_data );
29 -}
30 -add_filter( 'wppb_output_form_field_default-username', 'wppb_username_handler', 10, 6 );
31 -
32 -
33 -/* handle field validation */
34 -function wppb_check_username_value( $message, $field, $request_data, $form_location ){
35 - global $wpdb;
36 -
37 - if ( ( isset( $request_data['username'] ) && ( trim( $request_data['username'] ) == '' ) ) && ( $field['required'] == 'Yes' ) )
38 - return wppb_required_field_error($field["field-title"]);
39 -
40 - if( !empty( $request_data['username'] ) ){
41 - if( $form_location == 'register' )
42 - $search_by_user_login = get_users( 'search='.$request_data['username'] );
43 - if( !empty( $search_by_user_login ) ){
44 - return __( 'This username already exists.', 'profilebuilder' ) .'<br/>'. __( 'Please try a different one!', 'profilebuilder' );
45 - }
46 -
47 - $wppb_generalSettings = get_option('wppb_general_settings');
48 - if ( is_multisite() || ( !is_multisite() && $wppb_generalSettings['emailConfirmation'] == 'yes' ) ){
49 - $userSignup = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."signups WHERE user_login = %s", $request_data['username'] ) );
50 - if ( !empty( $userSignup ) ){
51 - return __( 'This username is already reserved to be used soon.', 'profilebuilder') .'<br/>'. __( 'Please try a different one!', 'profilebuilder' );
52 - }
53 - }
54 - }
55 -
56 - return $message;
57 -}
58 -add_filter( 'wppb_check_form_field_default-username', 'wppb_check_username_value', 10, 4 );
59 -
60 -
61 -/* handle field save */
62 -function wppb_userdata_add_username( $userdata, $global_request ){
63 - if ( isset( $global_request['username'] ) )
64 - $userdata['user_login'] = sanitize_user( trim( $global_request['username'] ) );
65 -
66 - return $userdata;
67 -}
68 -add_filter( 'wppb_build_userdata', 'wppb_userdata_add_username', 10, 2 );
1 +<?php
2 +if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3 +
4 +/* handle field output */
5 +function wppb_username_handler( $output, $form_location, $field, $user_id, $field_check_errors, $request_data ){
6 + $item_title = apply_filters( 'wppb_'.$form_location.'_username_item_title', wppb_icl_t( 'plugin profile-builder-pro', 'default_field_'.$field['id'].'_title_translation', $field['field-title'], true ) );
7 + $item_description = wppb_icl_t( 'plugin profile-builder-pro', 'default_field_'.$field['id'].'_description_translation', $field['description'], true );
8 +
9 + $input_value = ( ( $form_location == 'edit_profile' ) ? get_the_author_meta( 'user_login', $user_id ) : '' );
10 +
11 + $input_value = ( ( trim( $input_value ) == '' ) ? $field['default-value'] : $input_value );
12 +
13 + $input_value = ( isset( $request_data['username'] ) ? trim( $request_data['username'] ) : $input_value );
14 + $input_value = apply_filters( 'wppb_form_username_field_value', $input_value, $field, $form_location );
15 +
16 + if ( $form_location != 'back_end' ){
17 + $error_mark = ( ( $field['required'] == 'Yes' ) ? '<span class="wppb-required" title="'.wppb_required_field_error($field["field-title"]).'">*</span>' : '' );
18 +
19 + if ( array_key_exists( $field['id'], $field_check_errors ) )
20 + $error_mark = '<img src="'.WPPB_PLUGIN_URL.'assets/images/pencil_delete.png" title="'.wppb_required_field_error($field["field-title"]).'"/>';
21 +
22 + $readonly = ( ( $form_location == 'edit_profile' ) ? ' disabled="disabled"' : '' );
23 +
24 + $extra_attr = apply_filters( 'wppb_extra_attribute', '', $field, $form_location );
25 +
26 + $output = '
27 + <label for="username">'.$item_title.$error_mark.'</label>
28 + <input class="text-input default_field_username '. apply_filters( 'wppb_fields_extra_css_class', '', $field ) .'" name="username" maxlength="'. apply_filters( 'wppb_maximum_character_length', 60, $field ) .'" type="text" id="username" value="'. esc_attr( $input_value ) .'" '.$readonly.' '. $extra_attr .'/>';
29 + if( !empty( $item_description ) )
30 + $output .= '<span class="wppb-description-delimiter">'.$item_description.'</span>';
31 + }
32 +
33 + return apply_filters( 'wppb_'.$form_location.'_username', $output, $form_location, $field, $user_id, $field_check_errors, $request_data );
34 +}
35 +add_filter( 'wppb_output_form_field_default-username', 'wppb_username_handler', 10, 6 );
36 +
37 +
38 +/* handle field validation */
39 +function wppb_check_username_value( $message, $field, $request_data, $form_location ){
40 + global $wpdb;
41 +
42 + if( $field['required'] == 'Yes' ){
43 + if( ( isset( $request_data['username'] ) && ( trim( $request_data['username'] ) == '' ) ) || ( $form_location == 'register' && !isset( $request_data['username'] ) ) ){
44 + return wppb_required_field_error($field["field-title"]);
45 + }
46 +
47 + }
48 +
49 + if( !empty( $request_data['username'] ) ){
50 + if( $form_location == 'register' ) {
51 + if( username_exists($request_data['username'] ) ){
52 + return __('This username already exists.', 'profile-builder') . '<br/>' . __('Please try a different one!', 'profile-builder');
53 + }
54 + if (!validate_username($request_data['username'])) {
55 + return __('This username is invalid because it uses illegal characters.', 'profile-builder') . '<br/>' . __('Please enter a valid username.', 'profile-builder');
56 + }
57 + // WordPress core rejects usernames longer than 60 characters in wp_insert_user().
58 + if ( mb_strlen( sanitize_user( trim( $request_data['username'] ) ) ) > 60 ) {
59 + return __( 'This username is too long. It must be 60 characters or fewer.', 'profile-builder' );
60 + }
61 + }
62 +
63 + $wppb_generalSettings = get_option('wppb_general_settings');
64 + if ( isset($wppb_generalSettings['emailConfirmation']) && $wppb_generalSettings['emailConfirmation'] == 'yes' ){
65 +
66 + if( is_multisite() && $request_data['username'] != preg_replace( '/\s+/', '', $request_data['username'] ) ){
67 + return __( 'This username is invalid because it uses illegal characters.', 'profile-builder' ) .'<br/>'. __( 'Please enter a valid username.', 'profile-builder' );
68 + }
69 +
70 + // Only pending signup rows should reserve a username during Email Confirmation
71 + // - activated rows can remain in the signups table after confirmation, so they must not block a new registration
72 + // - this keeps the username reservation check aligned with the email reservation check, which also only considers pending signups
73 + $userSignup = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."signups WHERE user_login = %s AND active = 0", $request_data['username'] ) );
74 + if ( !empty( $userSignup ) ){
75 + return __( 'This username is already reserved to be used soon.', 'profile-builder') .'<br/>'. __( 'Please try a different one!', 'profile-builder' );
76 + }
77 + }
78 + }
79 +
80 + return $message;
81 +}
82 +add_filter( 'wppb_check_form_field_default-username', 'wppb_check_username_value', 10, 4 );
83 +
84 +
85 +/* handle field save */
86 +function wppb_userdata_add_username( $userdata, $global_request, $form_args ){
87 + if( wppb_field_exists_in_form( 'Default - Username', $form_args ) ) {
88 + if (isset($global_request['username']))
89 + $userdata['user_login'] = sanitize_user(trim($global_request['username']));
90 + }
91 +
92 + return $userdata;
93 +}
94 +add_filter( 'wppb_build_userdata', 'wppb_userdata_add_username', 10, 3 );