📅  最后修改于: 2023-12-03 15:21:13.271000             🧑  作者: Mango
WordPress 是一款广泛应用于网站搭建的开源 CMS 系统,其用户系统也非常完善。通过本文介绍的方法,可以轻松从收到用户的注册电子邮件中获取其相关信息,从而实现自动化注册。
在 WordPress 管理后台的 Settings->General 中,勾选 “Anyone can register” 选项,选择默认角色为 subscriber,并勾选 “User must be approved” 选项开启注册审核功能。
在 WordPress 中,提供了多种邮件钩子,可以在特定事件发生时触发指定的函数。注册审核通过邮件的钩子为 user_approve_admin_notice,我们可以在该钩子中编写相应的处理函数。
add_action( 'user_approve_admin_notice', 'my_registration_email_received' );
function my_registration_email_received( $user_id ) {
$user = get_userdata( $user_id );
$user_email = $user->user_email;
// 获取用户注册时填写的信息,并存储到数据库中
}
用户审核通过邮件中包含用户的个人信息,我们可以通过解析邮件内容提取用户信息。以审核通过后的默认邮箱为例,邮件内容如下:
Your account has been approved by an administrator.
Your login details:
Username: your_username
Password: your_password
Login URL: http://example.com/wp-login.php
可以通过正则表达式提取用户名和密码:
preg_match( '/Username: (.*)\nPassword: (.*)\n/', $message, $matches );
$username = $matches[1];
$password = $matches[2];
最后一步是将用户信息存储到 WordPress 的用户表中。使用以下代码添加用户:
$new_user_id = wp_create_user( $username, $password, $user_email );
if ( ! is_wp_error( $new_user_id ) ) {
$user = new WP_User( $new_user_id );
// 处理用户信息
}
通过以上步骤,我们可以从用户注册审核通过邮件中自动获取用户信息,并将其存储到 WordPress 数据库中,实现自动注册功能。这样可以大大减轻网站管理员的工作负担,提高网站用户的注册体验。
Markdown代码片段:
```php
add_action( 'user_approve_admin_notice', 'my_registration_email_received' );
function my_registration_email_received( $user_id ) {
$user = get_userdata( $user_id );
$user_email = $user->user_email;
// 获取用户注册时填写的信息,并存储到数据库中
}
preg_match( '/Username: (.*)\nPassword: (.*)\n/', $message, $matches );
$username = $matches[1];
$password = $matches[2];
$new_user_id = wp_create_user( $username, $password, $user_email );
if ( ! is_wp_error( $new_user_id ) ) {
$user = new WP_User( $new_user_id );
// 处理用户信息
}
```