If you want to add an extra field on WordPress User profile, then we can do it using plugins or adding some code in “functions.php” . In this tutorial I using the second method. Each and every WordPress theme has a file called functions.php , we have to just open this file and paste the code given below
Code given below will create some extra field like contact, gender
//extra fields
add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );
function my_show_extra_profile_fields($user){
//$user_id=1;//sanitize_text_field($_GET['user_id']);
?> <h3>Contact No.</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Contact</label></th>
<td>
<input type="text" name="contact" id="contact" value="<?php echo esc_attr( get_the_author_meta( 'contact', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Contact No.</span>
</td>
</tr>
<tr>
<th><label for="twitter">Gender</label></th>
<td>
<select name="gender" id="gender" class="regular-text">
<option value="<?php echo esc_attr( get_the_author_meta( 'gender', $user->ID ) ); ?>"><?php echo esc_attr( get_the_author_meta( 'gender', $user->ID ) ); ?></option>
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
<span class="description">Please Select your Gender</span>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );
function my_save_extra_profile_fields($user_id) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
update_user_meta( $user_id, 'contact', $_POST['contact'] );
update_user_meta( $user_id, 'gender', $_POST['gender'] );
}
Screen shot for How to add a field on the WordPress Users profile

Now go to your profile page You will able to see contact and gender field.







