Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 注册后更改用户名_Wordpress - Fatal编程技术网

Wordpress 注册后更改用户名

Wordpress 注册后更改用户名,wordpress,Wordpress,假设我们有一个母站点。然后,我们在第三方站点上有一个用户注册表和一个用户注册系统,该系统正在处理整个注册过程,最终将在母站点的数据库中发送用户登录详细信息(mysql插入,同样没有用户注册功能)。因为有两个完全不同的浏览器会话,所以在注册期间或注册之后,不能在母站点上挂接任何操作 因此,假设我们将用户存储在数据库中,并使用aaa@bbb.cc(奇怪,是的)并且有一个名字和用户名,看起来像aaa@bbb.cc 问题: 当用户存储在母站点的数据库中时,编写一个函数来自动更改用户名称,当然,类似于aa

假设我们有一个母站点。然后,我们在第三方站点上有一个用户注册表和一个用户注册系统,该系统正在处理整个注册过程,最终将在母站点的数据库中发送用户登录详细信息(mysql插入,同样没有用户注册功能)。因为有两个完全不同的浏览器会话,所以在注册期间或注册之后,不能在母站点上挂接任何操作

因此,假设我们将用户存储在数据库中,并使用
aaa@bbb.cc
(奇怪,是的)并且有一个名字和用户名,看起来像
aaa@bbb.cc

问题:

当用户存储在母站点的数据库中时,编写一个函数来自动更改用户名称,当然,类似于
aaa bbb
,那么最好的方法是什么呢

对于此类情况,是否建议使用功能/挂钩

下面的代码对我没有帮助,因为正如我上面所说的,我认为在处理第三方站点注册时无法触发用户注册操作:

add_action( 'user_register', 'myplugin_registration_save' );

function myplugin_registration_save( $user_id ) {
    $info = get_userdata( $user_id );
    $args = array(
        'ID'            => $user_id,
        'user_nicename' => $info->first_name . '-' . $info->last_name
    );
    wp_update_user( $args );
}

这个问题用词很难理解。如果我读对了,你有两个网站。网站一是人们注册的地方。当他们在Site One上完成注册时,会运行一些东西,通过直接sql插入,而不是使用任何本机WP函数,在Site II数据库中创建一个新用户

如果是这样的话,为什么不在将用户登录插入站点之前简单地操作它呢?你不能通过WordPress钩子来做这件事,因为WordPress永远不会被调用。钩子只是贯穿WordPress代码的回调函数。当一些事情发生时,比如一个新用户被创建时,你可以给一个钩子分配一个函数--“给我发送一封电子邮件”。如果WordPress没有处理新用户的创建,那么钩子就永远不会被调用


如果必须在插入数据后进行操作,则可能需要使用cron作业,该作业每X时间运行一次,在wp_users表中查找新记录。

Hi。谢谢你的回答。我无法访问站点1的代码。在用户已经插入数据库后,是否有其他解决方案代替cron作业来更改site2上的用户名?您需要一些东西来触发更改。插入用户后,必须在两个站点中的一个站点上运行某些操作,或者必须通过cron作业手动检查更改。这样想:如果我把一封信放进你的邮箱,你怎么知道它在那里?要么我告诉你是我放在那里的,要么你打开邮箱看看。这里也一样。必须说“嘿,添加了新用户”,这样才能运行代码。是的,符合逻辑,但如果只有一个简单的mysql插入,我该如何编写代码?我怎样才能检测到呢?在执行插入的代码中。例如,当插入完成时,您可以使用类似if(mysql_insert_id(){/**在此处执行某些操作以更改用户名*/};现在我考虑一下,您可能可以在插入触发器()后使用mysql来执行此操作。有关如何设置的示例: