Как зарегистрировать пользователя в 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 лучше построить хэш для регистрации пользователя таким образом