Create WP User
public function custom_create_user($user_name, $first_name, $last_name, $email_address, $user_role = 'subscriber')
{
$user_id = username_exists( $user_name );
if( $user_id != null )
{
throw New Exception('Username already exists!');
}
if ( email_exists($email_address) == true )
{
throw new Exception('E-mail already registered');
}
if ( $user_role == '' )
{
throw new Exception('Don't create users without roles');
}
// Generate the password and create the user
$password = wp_generate_password( 12, false );
$user_id = wp_create_user( $user_name, $password, $email_address );
// Update USER info
wp_update_user(
array(
'ID' => $user_id,
'nickname' => $email_address,
'first_name' => $first_name,
'last_name' => $last_name
)
);
// Set the role
$user = new WP_User( $user_id );
$user->set_role( $user_role );
// If need to add meta data
// Add user meta
// add_user_meta( $user_id, 'META_DATA_KEY', 'META_KEY_VALUE');
// Optional: Return user_id
// return array('user_id' => $user_id, 'user_name' => $user_name);
}