Problem with adding name and last name on registration
-
Hi there,
I’m using classipress theme and I addedd some extra field-s on user registration like name and lastname. My problem is that somethimes, name and last name are inserted into database, and somethimes not. I don’t get it what I’m doing wrong.On the template page it look’s like this
<label for="first_name"><?php _e('Ime:', 'APP_TD'); ?></label> <input tabindex="2" class="text" type="text" class="text required" name="first_name" id="first_name" value=<?php if (isset($_POST['first_name'])) echo esc_attr(stripslashes($_POST['first_name'])); ?>> <label for="last_name"><?php _e('Prezime:', 'APP_TD'); ?></label> <input tabindex="3" class="text" type="text" class="text required" name="last_name" id="last_name" value=<?php if (isset($_POST['last_name'])) echo esc_attr(stripslashes($_POST['last_name'])); ?>>
and in the function file of the theme I added this:
function at_validate_custom_fields( $login, $email, $errors ) { // fields to be validated $fields = array( 'first_name' => __( 'Ime:', 'APP_TD' ), 'last_name' => __( 'Prezime:', 'APP_TD' ), ); // check for empty required fields an display notice foreach ( $fields as $field => $value ) { if ( empty( $_POST['first_name'] ) ) { $errors->add('empty_fields', __('<strong>GRE?KA</strong>: Niste uneli ime.', 'APP_TD')); } if ( empty( $_POST['last_name'] ) ) { $errors->add('empty_fields', __('<strong>GRE?KA</strong>: Niste uneli prezime.', 'APP_TD')); } } // check for invalid names (letters and spaces) if ( ! empty( $_POST['first_name'] ) && !preg_match("/^[\p{L} ]+$/u", $_POST['first_name']) ) { $errors->add('invalid_name', __('<strong>GRE?KA</strong>: “', 'APP_TD').$fields['first_name'].__('” u polje za ime trebate upisati samo slova.', 'APP_TD')); } if ( ! empty( $_POST['last_name'] ) && !preg_match("/^[\p{L} ]+$/u", $_POST['last_name']) ) { $errors->add('invalid_name', __('<strong>GRE?KA</strong>: “', 'APP_TD').$fields['last_name'].__('” u polje za prezime trebate upisati samo slova.', 'APP_TD')); } // additional custom fields validations here } // validate custom fields add_action( 'register_post', 'at_validate_custom_fields', 10, 3 ); // register the extra fields as user metadata function at_register_custom_fields( $user_id, $password = "", $meta = array() ) { // custom fields $fields = array( 'first_name', 'last_name', ); // cleans and updates the custom fields foreach ( $fields as $field ) { $value = stripslashes( trim( $_POST[$field] ) ) ; if ( ! empty( $value ) ) { update_user_meta( $user_id, $field, $value ); } } } // save the custom fields to the database as soon as the user is registered on the database add_action( 'user_register', 'at_register_custom_fields' );
since I changeg defaulf displaying name
add_action('user_register', 'registration_save_displayname', 1000); function registration_save_displayname($user_id) { if ( isset( $_POST['first_name']) && isset( $_POST['last_name']) ){ $pretty_name = $_POST['first_name'] . ' '. $_POST['last_name']; wp_update_user( array ('ID' => $user_id, 'display_name'=> $pretty_name) ) ; } }
this is always saved in database, but name and lastname fields, not.
- The topic ‘Problem with adding name and last name on registration’ is closed to new replies.