是否在wp_create_user之后设置用户?

时间:2011-08-05 作者:redconservatory

我有一个表单,可以使用以下方法创建新用户:

wp_create_user()
这是可行的,但在此之后,我想自动登录用户。

我尝试使用:

$creds = array();
$creds[\'user_login\'] = \'username\';
$creds[\'user_password\'] = \'password\';
$creds[\'remember\'] = true;
$user = wp_signon( $creds, false );
    if ( is_wp_error($user) ) {
       $msg =  $user->get_error_message();
       die($msg);
    } else {
        $output_form = true;
    }
但这会创建一条“headers ready sent”错误消息,因为它不在页面顶部。

在我创建用户后,是否有方法自动登录该用户?

2 个回复
最合适的回答,由SO网友:Chris_O 整理而成

下面是我编写的一个函数,它可以钩住重力表单创建用户表单,但它可以添加到wp_create_用户函数所附加的任何动作钩子中。

function my_auto_login( $user_id ) {
    wp_set_auth_cookie( $user_id, false, is_ssl() );
    wp_redirect( admin_url( \'profile.php\' ) );
    exit;
}
重要的部分是wp_set_auth_cookie. 这必须在用户是最好的(仅?)无需填写登录表单即可自动登录用户的方法。

SO网友:Chris Carson

你可能应该使用动作钩init 获取并处理注册表。在将任何内容发送到浏览器之前调用此挂钩。如果表单验证。。。

使用创建用户wp_create_user

  • 使用登录用户wp_signonwp_redirect 转到您选择的页面

  • 结束

    相关推荐

    query users by role

    我有一个查询用户和usermeta的自定义插件,但我现在需要从结果中筛选管理员。我的sql查询的一个非常简化的版本是:SELECT * FROM usermeta LEFT JOIN users ON users.ID = user_id WHERE meta_key = \'last_name\' AND user_role != \'admin\' ORDER BY meta_value ASC LIMIT 0, 25 user_role 不是字段,我看