7 January 2014

WordPress - Adding Custom Fields in Registration Form

Using following three steps, you can add your custom fields in WordPress Registration Form.

1). Add a hook to registration form to add a new form element,
add_filter( 'register_form', 'adding_custom_registration_fields', 9 );
function adding_custom_registration_fields( )
{
 //Add input box & label of your field.
 ?>
 <div class="form-row form-row-wide">
  <label for="your_field">Your Field <span class="required">*</span></label>
  <input type="text" class="input-text" name="your_field" id="your_field" value="<?php if (isset($_POST['your_field'])) echo esc_attr($_POST['your_field']); ?>"/>
 </div>
 <?php 
}


2). Validating registration form after submission using the filter registration_errors hook.
add_filter('registration_errors', 'registration_errors_validation', 10, 3);
function registration_errors_validation($reg_errors, $sanitized_user_login, $user_email)
{
 // extracting $_POST into separate variables
 extract($_POST);
 if($your_field == '') {
  $reg_errors->add( 'your_field_error', <strong>ERROR</strong>: Please, fill in all the required fields.' );
 }
 return $reg_errors;
}


3). Add below code to Updating user meta in database after successful registration.
add_action('user_register', 'adding_extra_reg_fields');
function adding_extra_reg_fields($user_id)
{
 // extracting $_POST into separate variables
 extract($_POST);
 update_user_meta($user_id, 'your_field_in_db', $your_field);
}


Have fun!

No comments:

Post a Comment