我正在尝试向bp_core_activated_user添加一个函数,我想让它执行以下操作:
我对1和3都没有任何问题,但是由于第二步不起作用,所以它不会正确地执行#3。
这是我的代码示例
function auto_login_activation($user_id, $key, $user) {
$bp = buddypress();
$bp->activation_complete = true;
//now login and redirect
$user = get_user_by( 'id', $user_id );
if( $user ) {
wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
}
bp_core_redirect( bp_core_get_user_domain( $user_id ) .$bp->profile->slug .'/edit/' );
}
add_action( 'bp_core_activated_user', 'auto_login_activation', 0, 3 );
如果我禁用重定向,它会在我的屏幕上显示为已登录(将显示“注销”,并隐藏“登录和注册”)但是当我转到仅适用于登录用户的页面时,它表明我是退出。
我知道第1步正在运行,因为用户会在激活时收到自动欢迎电子邮件。第2步是它失败的地方,第3步,我在代码中的其他位置使用bp_core_redirect而没有问题 我一直在为此目的使用插件,但它也停止工作,基本上是相同的代码。
答案 0 :(得分:2)
您需要使用wp_login
动作挂钩:
do_action('wp_login','username','user_email');
wp_set_current_user('user_id');
wp_set_auth_cookie('user_id');
wp_redirect('url');