Enregistrement de l'utilisateur suivi d'une connexion automatique

13

J'utilise un plugin modifié pour mes besoins.

Ce que je veux, c'est après que l'utilisateur se soit enregistré pour pouvoir le connecter automatiquement et le retourner à la page en cours. Pour le moment, il leur envoie un email avec leur nom d'utilisateur et leur mot de passe. Ils doivent ensuite se connecter avec ces informations.

    
posée Robin I Knight 09.02.2011 - 19:24

4 réponses

9

Pour vous connecter à un utilisateur, vous pouvez utiliser:

            //Login the user
    $creds = array();
    $creds['user_login'] = $login;
    $creds['user_password'] = $password;
    if ( !empty( $remember ) ){ 
        $creds['remember'] = true;
    }
    $user = wp_signon( $creds, true );

mais ce n'est que lorsque vous avez le mot de passe et le login afin que vous puissiez créer votre propre formulaire de registre et le traiter et créer vous-même l'utilisateur

//Only after Everything has been validated, proceed with creating the user
        //Create the user
        $user_pass = wp_generate_password();
        $user = array(
            'user_login' => $username,
            'user_pass' => $user_pass,
            'first_name' => $firstname,
            'last_name' => $lastname,
            'user_email' => $email
        );
        $user_id = wp_insert_user( $user );

        /*Send e-mail to admin and new user - 
        You could create your own e-mail instead of using this function*/
        wp_new_user_notification( $user_id, $user_pass );

et nous avons à la fois un identifiant et un mot de passe pour vous permettre de vous connecter.

J'espère que cela vous aidera

    
réponse donnée Bainternet 09.02.2011 - 20:39
4

Il n’ya pas d’endroit idéal pour prendre part au processus d’enregistrement. Je pense qu’il est très judicieux d’ajouter un crochet d’action d’événement d’enregistrement d’utilisateur à son cœur. Mais je pense que vous pourrez peut-être faire semblant, en attendant. Une des dernières choses qui se produit lorsqu'un utilisateur s'enregistre avec succès est la création d'une option utilisateur nommée 'default_password_nag'. Nous pouvons créer une action pour surveiller cela et configurer l'utilisateur lorsqu'il est configuré.

add_action('update_user_metadata', 'my_auto_login', 10, 4);

function my_auto_login( $metaid, $userid, $key, $value ) {
    // We only care about the password nag event. Ignore anything else.
    if ( 'default_password_nag' !== $key  && true !== $value) {
        return;
    }

    // Set the current user variables, and give him a cookie. 
    wp_set_current_user( $userid );
    wp_set_auth_cookie( $userid );
}

Non testé, mais devrait fonctionner, en théorie.

Maintenant que nous avons une idée de ce qu'il faut faire, je pense que c'est une mauvaise idée, du point de vue de la sécurité. Les gens peuvent créer des comptes indésirables sans même avoir à se préoccuper de la configuration d'une liste déroulante d'e-mails indésirables. :)

    
réponse donnée Dougal Campbell 24.02.2011 - 23:06
0

Je viens tout juste de réussir à utiliser cette fonctionnalité à l'aide du hook utilisateur_register et du code suivant dans mon < em> functions.php :

// auto log in a user who has just signed up       
function auto_login_new_user( $user_id ) {
  wp_set_auth_cookie( $user_id, false, is_ssl() );
}
add_action( 'user_register', 'auto_login_new_user' );
    
réponse donnée jsims281 02.09.2011 - 12:15
0
function login_after_register($userlogin,$userpass){
    $credentials = array( 'user_login' =>  $userlogin, 'user_password' => $userpass, 'remember' => true );

    $secure_cookie = is_ssl();

    $secure_cookie = apply_filters('secure_signon_cookie', $secure_cookie, $credentials);
    add_filter('authenticate', 'wp_authenticate_cookie', 30, 3);

    $user = wp_authenticate($credentials['user_login'], $credentials['user_password']);
    wp_set_auth_cookie($user->ID, $credentials["remember"], $secure_cookie);
    do_action('wp_login', $user->user_login, $user);
}
    
réponse donnée ashraf mohammed 26.05.2013 - 23:52

Lire d'autres questions sur les étiquettes