2

假设我们有一个母网站。然后我们在第 3 方站点上有一个用户注册表单和一个用户注册系统,它处理整个注册过程,最后将在母站点的数据库中发送用户登录详细信息(mysql 插入,同样没有 user_register 功能)。由于有 2 个完全不同的浏览器会话,因此在注册期间或注册后不能对母站点进行任何操作。

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

问题:

最好的方法是什么,wp action/function to be hooked,一旦用户存储在母站点的数据库中,编写一个函数来更改用户 nicename 的东西aaa-bbb当然是自动的。

对于这种情况,是否有建议的功能/挂钩?

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

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 );
}
4

1 回答 1

0

措辞上的问题真的很难理解。如果我没看错,你有两个网站。站点一是人们注册的地方。当他们在站点一上完成注册时,会运行一些东西,通过执行直接 sql 插入,而不是使用任何本机 WP 函数,在站点二数据库中创建一个新用户。

如果是这种情况,为什么不在将用户登录名插入站点二数据库之前简单地操作它呢?你不能通过 WordPress 钩子来做到这一点 b/c 永远不会调用 WordPress。挂钩只是散布在 WordPress 代码中的回调函数。当发生某些事情时,比如创建了一个新用户,有一个钩子,您可以将其分配给一个函数——“给我发一封电子邮件”。如果 WordPress 不处理新用户的创建,那么钩子永远不会被调用。

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

于 2013-07-19T00:57:32.590 回答