web-dev-qa-db-fra.com

connexion automatique après l'enregistrement pour le plugin wp-members

J'ai essayé de me connecter automatiquement à wordpress après m'être enregistré avec un mot de passe lors de l'utilisation du plugin WP-Members .

Je n'ai pas de blog alors j'ai décidé de l'écrire ici, donc ça pourrait être utile pour quelqu'un. Je ne suis pas très bon en programmation de plugins wordpress. Et cela m'a pris du temps pour le trouver.

Bien sûr, cela fonctionne si vous ajoutez un champ personnalisé (nom_option = mot de passe) dans les paramètres du plugin.

Dans le fichier wp-members.register.php dans la fonction * wpmem_registration ($ toggle) * J'ai remplacé cette ligne:

return "success"; exit();

avec ce code de la fonction * wpmem_login () * dans le fichier wp-members-core.php :

    /** assemble login credentials */
    $creds = array();
    $creds['user_login']    = $username;
    $creds['user_password'] = $password;
    $creds['remember']      = true;


    /** wp_signon the user and get the $user object */
    $user = wp_signon( $creds, false );

    /** if no error, user is a valid signon. continue */
    if( ! is_wp_error( $user ) ) {

        /** set the auth cookie */
        wp_set_auth_cookie( $user->ID, true );


        /** determine where to put the user after login */
        $redirect_to = $_SERVER['PHP_SELF'];
        if( isset( $_POST['redirect_to'] ) ) {
            $redirect_to = $_POST['redirect_to'];
        }


        /** apply wpmem_login_redirect filter */
        $redirect_to = apply_filters( 'wpmem_login_redirect', $redirect_to );



        /** and do the redirect */
        wp_redirect( $redirect_to );

        /** wp_redirect requires us to exit() */
        exit();

    } else {

        return "loginfailed";
    }

Est-ce sécuritaire? Pourrait-il être fait d'une meilleure façon?

1
mdob

Je ne suis pas sûr de vous suivre correctement, mais vous ne devriez pas éditer les fichiers du plug-in principal, mais vous devriez plutôt utiliser les points d'ancrage et les filtres disponibles fournis par les membres WP et par exemple créer votre propre plugin ou plus simplement utiliser votre fichier functions.php pour modifier son comportement.

add_action( 'wpmem_register_redirect', 'my_reg_redirect' );

function my_reg_redirect()
{
    // NOTE: this is an action hook that uses wp_redirect
    // wp_redirect must end with exit();

    wp_redirect( 'http://example.com/my-page/' );

    exit();
}

Également tiré de ce lien ,

Supposons que vous ne voulez pas que les utilisateurs aient un accès instantané au site après une inscription réussie , mais que vous souhaitiez plutôt valider manuellement que vous avez un utilisateur légitime. Dans ce type de cas, WP-Members ™ vous permet de modérer les inscriptions, exigeant que l'utilisateur soit "activé" par un administrateur avant de pouvoir y accéder.

Il semble être une option dans le plugin lui-même pour des inscriptions modérées ou non modérées, le dernier des deux enregistrera automatiquement la connexion d'un utilisateur s'il réussit, tandis que le premier, s'il est activé, obligera l'utilisateur à activer son compte via e -mail ou qu'un administrateur approuve leur compte.

2
userabuser