如何以编程方式创建 WordPress 用户

已发表: 2021-10-23

您是否正在寻找其他方法来创建不涉及管理仪表板的用户? 如果是这样,这篇文章是给你的。 在本指南中,我们将向您展示如何以编程方式创建 WordPress 用户以及可在您的网站上使用的示例脚本。

如今,大多数网站都允许访问者创建帐户并成为注册用户以获得某些好处,例如独家交易和折扣。

当新用户注册时,该站点会收集有关个人资料的信息并为该用户分配角色。 这些角色允许您为每个用户设置不同的权限,例如访问一些受限制的内容、为每个角色显示特定的导航菜单、访问某些优惠等等。

WordPress 允许您管理不同类型的用户并提供完整的用户管理功能。 使用默认可用的多个角色,您可以创建、更新和删除用户,并为每个用户分配不同的权限。 这对某些网站很有用,但如果您想要一个更复杂的解决方案来管理不同类型的权限,您可能需要以编程方式创建 WordPress 用户。

让我们看看如何做到这一点。

如何以编程方式创建 WordPress 用户

要以编程方式创建用户,您可以利用一些 WordPress 内置功能。 在所有情况下,唯一需要的值是名称和密码。

创建用户后,WordPress 可以从其邮箱发送电子邮件以完成注册。 即使用户已经知道登录凭据,出于以下几个原因,发送用户注册电子邮件始终是一个好主意:

  • 您确保他们提供的电子邮件是正确的并且没有任何拼写错误
  • 用户可以在忘记用户名或密码时返回该电子邮件

创建用户时,您可以分配密码、名称和角色。 稍后,用户可以更改和更新任何这些详细信息以及他们个人资料中的所有信息。

现在我们对您可以做什么有了清晰的认识,让我们看一些示例脚本,它们将允许您以不同的方式创建用户。

注意:由于我们将编辑一些核心文件,因此在开始之前,我们建议您生成站点的完整备份。 此外,如果您还没有使用子主题插件,我们建议您创建子主题或使用子主题插件。

使用代码创建 WordPress 用户的示例脚本

在本节中,我们将向您展示几个可用于以编程方式在您的站点上创建用户的脚本。 您将找到脚本以及对代码每个部分的作用的说明。

创建单个用户

以编程方式创建 WordPress 用户非常简单,只需要一行代码。 唯一需要的值是名称和密码,您还可以使用wp_create_user()函数设置密码,如下所示:

 wp_create_user('johndoe', 'passwordgoeshere', '[电子邮件保护]' );

将这行代码粘贴到您的子主题的functions.php文件中,以创建一个名为johndoe的用户。

如何以编程方式创建 WordPress 用户

最重要的是,我们可以做更多的事情来改进上面的代码。 例如,为了防止在用户浏览后端页面或重新加载屏幕时创建用户,您应该使用挂钩。 新代码将如下所示:

 add_action('admin_init','QuadLayers_create_user');
函数 QuadLayers_create_user(){
  wp_create_user('johndoe', 'passwordffgoeshere', '[电子邮件保护]');
}

如果您不熟悉钩子,我们建议您查看我们的钩子指南。

创建多个用户

除了多次重复上述功能之外,还有一种更有效的方法可以一次创建多个用户。

以下函数将从给定数组创建用户,其中存储名称和密码。

 add_action('admin_init','QuadLayers_create_users');
函数 QuadLayers_create_users(){
    $用户=数组(
       数组('johndoe','密码1'),
       数组('tomdoe','密码2'),
       数组('andrewdoe','密码3'),
       数组('杰夫多','密码4')
    );
    foreach($users 作为 $user){     
       wp_create_user($user[0], $user[1]);
    }    
}

为此,我们使用foreach()循环来创建存储在$users数组中的四个用户。

如何创建多个 wordpress 用户

在此示例中,我们创建了四个用户,但您可以创建任意数量的用户。 只需将它们添加到阵列中并为其分配名称和密码。

创建用户并发送电子邮件

现在让我们看看如何创建用户、生成密码并使用一些代码将其发送到给定的电子邮件。

在以下脚本中,我们使用了两个新函数:

  1. wp_generate_password()生成密码
  2. wp_mail()将注册邮件发送给收件人
add_action('admin_init','QuadLayers_create_user_send_mail');
函数 QuadLayers_create_user_send_mail(){
    $password=wp_generate_password(12, true);
    wp_create_user('joedoe',$password);
    wp_mail( '[email protected]', 'Welcome!', '您的密码是:' . $password );  
}

此代码将以编程方式创建一个 WordPress 用户,生成一个密码并向[email protected]发送一封电子邮件,上面写着“欢迎! 您的密码是“ . 确保在您的网站上使用用户、电子邮件和消息时对其进行自定义。

创建用户并分配帐户数据

在此示例中,我们正在创建一个带有附加信息(例如名字、姓氏和角色)的用户。

请注意,我们在这里使用了不同的函数。 我们使用wp_insert_user()代替wp_create_user()函数,它类似但更灵活和强大。

 add_action('admin_init','QuadLayers_create_user_meta');
函数 QuadLayers_create_user_meta(){   
wp_insert_user(数组(
  'user_login' => 'janedoe',
  'user_pass' => 'passwordhere',
  'user_email' => '[电子邮件保护]',
  'first_name' => '简',
  'last_name' => 'Doe',
  'display_name' => 'Jane Doe',
  '角色' => '编辑'
));
}

如您所见,在此示例中,我们正在创建一个用户并分配一个名称 (Jane)、姓氏 (Doe)、电子邮件 ( [email protected]) 、角色 ( editor ) 等等。

检查用户是否存在

此脚本用于验证,在大多数情况下都很有用,因此我们建议您将其应用到您的代码中。

以下是如何使用username_exists()函数从用户名(本例中为 janedoe)检查用户是否存在。

 add_action('admin_init','QuadLayers_if_user_exists');
函数 QuadLayers_if_user_exists(){
    如果(空==用户名存在('janedoe')){
       echo "not an Existing User";// 为不存在的用户做点什么
    }
    别的{
           echo "现有用户"; // 如果用户名存在则做某事
    }
}

此脚本根据用户是否存在用两种不同的文本标记用户:

  • 不存在的用户:“不是现有用户”
  • 存在的用户:“现有用户”

结论

总而言之,WordPress 具有创建、管理和删除不同类型用户的功能。 尽管这对于大多数网站来说可能已经足够了,但如果您想拥有更多选项并能够管理更多权限,那么使用一些代码创建用户是一个好主意。

在本指南中,我们已经了解了如何以编程方式创建 WordPress 用户以及一些示例以提高流程效率。 我们已经了解了如何一次创建多个用户、如何自动向他们发送电子邮件以及向他们分配数据。 最后,我们添加了验证来检查用户是否已经存在。 现在是时候自定义这些脚本并在您的网站上使用它们了!

您是否使用这些脚本将用户添加到您的站点? 你是如何定制它们的? 在下面的评论中让我们知道!

有关通过一些代码改进您的网站的更多选项,请查看以下指南:

  • 如何以编程方式创建 WordPress 自定义帖子类型
  • 在 WordPress 中以编程方式创建帖子和页面的指南
  • 如何在 WooCommerce 中自动更改订单状态