使用wp_INSERT_USER时未填充名字和姓氏字段

时间:2014-03-04 作者:raddevon

我编写了一个插件,允许通过外部API对WordPress安装进行身份验证。当登录尝试通过外部身份验证时,除了没有为插件创建的新WordPress用户设置名字和姓氏外,其他一切都正常。

这里有一个非常奇怪的部分:一个可选的显示名称是来自外部API的名字和姓氏。

$userdata = array( \'user_email\' => $ext_user[\'email\'],
                                \'user_login\' => $ext_user[\'email\'],
                                \'first_name\' => $ext_user[\'firstName\'],
                                \'last_name\' => $ext_user[\'lastName\'],
                                \'role\' => $user_role
                                );
$new_user_id = wp_insert_user( $userdata ); 

$user = new WP_User ($new_user_id);
这就是我用来创建新用户的代码。我已经记录了这两个$ext_user[\'firstName\']$ext_user[\'lastName\'] 就在填充之前$userdata 数组,以确保这些值正确通过,并且正确通过。我不明白他们怎么会出现在显示名称字段中,但名字和姓氏字段是空的。有人能帮忙吗?

UPDATE: 此安装运行Cimy User Extra Fields插件。起初,我认为这可能是罪魁祸首,但我禁用了它,问题仍然存在。也许这仍然是问题所在,但我不知道如何确定。这个插件可以替换默认的名字和姓氏字段吗?

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

在wp\\u insert\\u user之后,您可以尝试运行update_user_meta( $new_user_id, "first_name", $ext_user[\'firstName\'] ) ;

SO网友:s_ha_dum

虽然这段代码会生成一个“undefinded variable”错误(看起来应该传递用户密码),但在我尝试时它仍然可以工作。然而,有一个number of filters in there that could be used to manipulate the data. 包括…在内pre_user_first_namepre_user_last_name. 由于这些字段是“元”字段,因此也可以通过update_user_meta(). 数据通过update_metadata() 哪一个allows selective filtering.

我只能假设这些过滤器中有一个或多个涉及到创建此问题。

结束

相关推荐

users and usermeta table

每个用户在usermeta表中也必须有条目,还是可选的?最近,我遇到了一个wordpress数据库,它在用户表中有数千个用户,但只有少数用户在usermeta表中有条目。我想知道在什么情况下会发生这种情况,因为这些条目看起来不像是手动从数据库中删除的。