有没有什么方法可以让我只给他们的 wp user_ID 登录一个 Wordpress 用户?
我正在向用户发送电子邮件以确认某些内容,当他们单击给定的链接以访问该网站时,他们需要登录才能看到我将他们带到的页面,因此我必须让用户登录然后执行标头重定向。
我需要一个由 wordpress 提供的 php 函数,我可以在 php 中使用,你能否给我任何关于如何实现它的额外细节(如果有的话)
有没有什么方法可以让我只给他们的 wp user_ID 登录一个 Wordpress 用户?
我正在向用户发送电子邮件以确认某些内容,当他们单击给定的链接以访问该网站时,他们需要登录才能看到我将他们带到的页面,因此我必须让用户登录然后执行标头重定向。
我需要一个由 wordpress 提供的 php 函数,我可以在 php 中使用,你能否给我任何关于如何实现它的额外细节(如果有的话)
这里有一个自动记录用户的功能(未测试):
function auto_login() {
if (!is_user_logged_in()) {
//determine WordPress user account to impersonate
$user_login = 'guest';
//get user's 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);
}
}
您必须在 wp_login 挂钩中传递 2 个参数。参见Wp 法典
wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login, $user );
创建单独的表来存储您发送的所有链接和相应的临时身份验证代码,这可能仅在一段时间内有效,然后将该临时身份验证代码和电子邮件作为 url 参数传递 -
编写代码以根据临时身份验证代码验证用户,以便用户点击电子邮件后,您就可以重定向他。
这真是个糟糕的主意。考虑一下:您向用户 A 和 B 发送一封电子邮件,其中包含以下链接:
http://wordpressblog.exp/fromemail?user_id=A;
http://wordpressblog.exp/fromemail?user_id=B;
如果用户 B 用 A 的 user_id 替换他的用户 ID,那么他可以访问用户 A 的帐户。你最好构建一个哈希来记录用户