I am using custom registration form
and users are registered when they sign up
.
Now, what I really want to do is users are redirected to their profile page
with auto_logged in
after registration
is complete. I searched for a few solutions on strong textstack overflow but none helped me.
Here's my registration snippet
Note: registration form is not included here
$err = '';
$success = '';
global $wpdb, $PasswordHash, $current_user, $user_ID;
if(isset($_POST['task']) && $_POST['task'] == 'register' ) {
$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
$pwd2 = $wpdb->escape(trim($_POST['pwd2']));
$first_name = $wpdb->escape(trim($_POST['first_name']));
$last_name = $wpdb->escape(trim($_POST['last_name']));
$email = $wpdb->escape(trim($_POST['email']));
$username = $wpdb->escape(trim($_POST['user_name']));
$user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $pwd1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => 'subscriber' ) );
if( is_wp_error($user_id) ) {
$err = 'Error on user creation.';
} else {
do_action('user_register', $user_id);
$success = 'You\'re successfully register';
}
}
Any help is appreciated. Thanks.
You are using a action "user_register" when successfully registration completed so using this hook to when user register complete then it will be auto login like this:
// It is login system same as wordpress and also global variable available like $current_user etc.
add_action('user_register', "auto_login_after_register");
function auto_login_after_register( $user_id ){
global $wpdb;
if( 'post' == strtolower($_SERVER['REQUEST_METHOD']) ){
$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
$username = $wpdb->escape(trim($_POST['user_name']));
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $pwd1;
$creds['remember'] = false;
$user = wp_signon( $creds, false );
if ( ! is_wp_error($user) ){
wp_redirect( admin_url('profile.php') );
exit;
}
}
}
Or put code without action
$user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $pwd1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => 'subscriber' ) );
if( is_wp_error($user_id) ) {
$err = 'Error on user creation.';
} else {
do_action('user_register', $user_id);
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $pwd1;
$creds['remember'] = false;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ){
$err = $user->get_error_message();
}else{
$login_redirect = apply_filters( 'login_redirect', admin_url('profile.php') );
wp_redirect( $login_redirect );
exit;
}
$success = 'You\'re successfully register';
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments