account - How to let new users login without email activation

admin2025-01-07  7

The idea is to get rid of mandatory new account activation through email As is: register new user -> exit without following to email verification link -> try to log in -> Site says something like:

"Your account has to be activated before you can login. You can resend email with verification link by clicking here."

Desired to be: register new user -> exit without following to email verification link -> try to log in -> Site let you in. At my account page (mysite/my-account/) there is suggestion to activate account or resend email with activation link

The idea is to get rid of mandatory new account activation through email As is: register new user -> exit without following to email verification link -> try to log in -> Site says something like:

"Your account has to be activated before you can login. You can resend email with verification link by clicking here."

Desired to be: register new user -> exit without following to email verification link -> try to log in -> Site let you in. At my account page (mysite.com/my-account/) there is suggestion to activate account or resend email with activation link

Share Improve this question asked Sep 16, 2020 at 14:39 0LEg0LEg 11 bronze badge
Add a comment  | 

2 Answers 2

Reset to default 0

You can use my WP Login Flow plugin to setup this up, or since it's open source use it as a reference for how to do it yourself.

https://github.com/tripflex/wp-login-flow

https://wordpress.org/plugins/wp-login-flow/

Specifically here's the register.php file: https://github.com/tripflex/wp-login-flow/blob/master/classes/register.php

Here is how you can do that:

Step 1: Modify User Registration Process

Add this code in your theme's functions.php to change the registration process:

(consider creating a child theme if you don't have one already, testing on your live theme is ok but in the end this code should live in a child theme so it does not get deleted when you update your theme.)

function wpb_custom_user_register($user_id) {
    // Set a custom user meta to indicate the account is not activated
    update_user_meta($user_id, 'has_to_be_activated', 0);
}
add_action('user_register', 'wpb_custom_user_register');

Step 2: Modify Login Behavior

Modify the login process to allow users to log in even if their account isn't activated:

function wpb_custom_user_login($user, $username, $password) {
    // Check if the user exists and password is correct
    $user = get_user_by('login', $username);
    if (!$user || !wp_check_password($password, $user->user_pass, $user->ID)) {
        return null; // or appropriate error handling
    }

    // Allow login without activation
    if (get_user_meta($user->ID, 'has_to_be_activated', true) == 0) {
        return $user;
    }

    return $user; // proceed with the normal login process
}
add_filter('authenticate', 'wpb_custom_user_login', 30, 3);

Important Notes: Theme Dependency: Remember, modifications in the functions.php file are theme-specific. If you change your theme, you'll lose these customizations.

Backup: Always backup your site before making changes to the functions.php file.

Child Theme: Consider using a child theme to avoid losing changes when the parent theme updates.

Security and Testing: Ensure that any changes you make are secure and thoroughly tested in a staging environment before applying them to your live site.

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1736265347a1039.html

最新回复(0)