如何在使用核心php的WordPress中注册后自动登录

时间:2013-11-13 09:21:15

标签: wordpress

我几天来一直在尝试将刚注册的用户带到我的WordPress网站并自动登录,然后将其重定向到我选择的网址。默认情况下,WordPress会向您发送用户名和密码,然后您必须手动登录。这是一种彻底的痛苦。我怎么能克服这一点。我有自己的注册页面(核心php页面),成功地将用户添加到数据库中。但关键是,我应该避免用户再次登录。注册完成后,它应自动重定向到主页或个人资料页面。我是wordpress功能的新蜜蜂。如果有人(对wordpress的核心功能有所了解)至少建议了一种方法/解决方案,那将不胜感激。期待。感谢

3 个答案:

答案 0 :(得分:32)

  

//在注册后添加function.php进行自动登录并重定向到主页。修改此代码

function auto_login_new_user( $user_id ) {
    wp_set_current_user($user_id);
    wp_set_auth_cookie($user_id);
    $user = get_user_by( 'id', $user_id );
    do_action( 'wp_login', $user->user_login );//`[Codex Ref.][1]
    wp_redirect( home_url() ); // You can change home_url() to the specific URL,such as "wp_redirect( 'http://www.wpcoke.com' )";
    exit;
}
add_action( 'user_register', 'auto_login_new_user' );

答案 1 :(得分:7)

以下是基于WooCommerce如何创建新用户并将其登录:

$user_pass = esc_attr( $_POST['account_password'] );

$new_user_data = array(
    'user_login' => $_POST['account_username'],
    'user_pass'  => $user_pass,
    'user_email' => $_POST['account_email'],
    'role'       => 'subscriber'
);

$user_id = wp_insert_user( $new_user_data );

// Set the global user object
$current_user = get_user_by( 'id', $user_id );

// set the WP login cookie
$secure_cookie = is_ssl() ? true : false;
wp_set_auth_cookie( $user_id, true, $secure_cookie );

重定向使用wp_safe_redirect,例如

wp_safe_redirect( home_url( '/' ) );
exit;

答案 2 :(得分:-5)

感谢您的支持..我自己做了以下代码..感谢您的时间和支持:)

<i>$getdetails= mysql_fetch_array(mysql_query("SELECT * FROM `wp_users` WHERE `ID`='$user_id'"));
$username=$getdetails['user_login'];


$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;

    $user = wp_signon( $creds, false );
    if ( is_wp_error($user) ){
        echo $user->get_error_message();
    }else{
        wp_redirect( home_url() );
    }