在外部数据库上创建用户

时间:2013-12-24 作者:user44318

我有wordpress网站和codecanyon的项目管理系统。这是link

我已经在项目管理系统中禁用了用户注册,只启用了登录。我需要从管理面板手动创建用户。我只允许用户通过wordpress注册。出于注册目的,我使用插件附带的woocommerce注册页面。

现在,我需要使用woocommerce或不使用woocommerce在wordpress中创建一个函数,这样当用户在wordpress上注册时,它将自动在我的项目管理数据库中创建一个帐户。因此,当用户登录wordpress时,用户也会登录到项目管理,而无需再次输入登录信息。以下是项目管理的用户表上的字段。

id(自动递增)、用户名、密码、电子邮件、用户级别(可在功能中设置)

如果需要,我可以为wordpress创建自定义注册页面。我找了很多,但没有找到这样的。我只找到了在wordpress上使用外部登录的方法,但没有找到如何在外部db上创建wordpress用户的方法。如有任何建议,将不胜感激。

1 个回复
SO网友:adelval

无论您如何创建新用户,它最终都会调用wp_insert_user, 运行操作的user_register 就在完成之前。因此,您可以执行以下操作:

add_action(\'user_register\',\'register_user_remotely\');

function register_user_remotely($user_id) {
   //add user to external database
   $url = ...; //url of file that will receive the $user->data in the $_POST variable
   $user = get_user_by(\'id\', $user_id);
   if (!is_wp_error($user)) {
      $response = wp_remote_post($url,array(\'body\' => $user->data));
      if (is_wp_error($response)) {
         ...
      } else { ... }
   }
}
这将发布来自wp_users 项目管理应用程序的表。正如user42826所指出的,然后必须使用其API在该端创建用户。

$user->data[\'user_pass\'] 包含用户的加密密码,但除非应用程序像Wordpress一样加密其密码,否则这是无用的。查看front end 对于您的应用程序,最好的选择可能是在应用程序中创建任意密码,并使其通过密码重置链接向用户发送邮件。

结束

相关推荐

从现有MySQL安装程序迁移到WordPress

我当前有一个具有以下架构的数据库:表:文章列:ID、标题、作者、内容表:作者列:ID、AuthorName、EmailAddress表:类别列:ID、CategoryName我有兴趣把这个转移到WordPress上。我实际上不需要保留authors或categories表,因为我们正在迁移中修改这些部分。但是,我确实需要保存articles表的某些行(或者所有行,如果更容易的话)。这包括保持作者ID与之链接。我愿意手动查询,以选择要移到新表的行,但我不确定应该在哪里执行此操作。因此,我的问题是:如何以最简