Как зарегистрировать пользователя в Wordpress, используя только свой user_id

Можно ли каким-либо образом зарегистрировать пользователя Wordpress в заданном только их wp user_ID?

Я отправляю электронные письма пользователям, чтобы подтвердить что-то, и когда они нажимают на данную ссылку, чтобы перейти на сайт, они должны войти в систему, чтобы просмотреть страницу, на которую я их привезу, поэтому я должен зарегистрировать пользователя в а затем выполните перенаправление заголовка.

Мне нужна функция php, предоставляемая wordpress, одна из которых я могу использовать в php, не могли бы вы также дать мне дополнительные сведения о том, как я могу ее реализовать (если есть)

Ответ 1

Здесь функция автоматической регистрации пользователя (не тестировалась):

function auto_login() {
    if (!is_user_logged_in()) {
        //determine WordPress user account to impersonate
        $user_login = 'guest';

       //get user ID
        $user = get_userdatabylogin($user_login);
        $user_id = $user->ID;

        //login
        wp_set_current_user($user_id, $user_login);
        wp_set_auth_cookie($user_id);
        do_action('wp_login', $user_login);
    }
}

Ответ 2

Вам нужно передать 2 параметра в wp_login hook. См. Wp codex

wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login, $user );

Ответ 3

Создайте отдельную таблицу для хранения всех отправленных вами ссылок и соответствующего кода проверки подлинности temp, который может быть действителен только в течение некоторого времени, а затем передать этот временный код и адрес электронной почты как параметр url -

Напишите код для проверки пользователя на основе кода temp auth, чтобы как только пользователь нажимал на электронную почту, вы можете перенаправить его.

Ответ 4

Это действительно плохой идеал. Учти это: Вы отправляете электронное письмо пользователю A и B, которое содержит следующую ссылку:

http://wordpressblog.exp/fromemail?user_id=A;
http://wordpressblog.exp/fromemail?user_id=B;

Если пользователь B заменяет свой идентификатор пользователя A user_id, он имеет доступ к учетной записи пользователя A. Youd лучше построить хэш для регистрации пользователя таким образом