WordPress用户注册邮箱验证设置教程

来自:安企建站服务研究院

头像 方知笔记
2025年12月20日 20:49

在WordPress网站中,启用用户注册邮箱验证功能可以有效防止垃圾注册,确保用户提供真实的邮箱地址。本文将详细介绍如何通过插件或代码实现这一功能。

方法一:使用插件实现邮箱验证

步骤1:安装并激活插件

推荐使用以下插件之一:

  • WPForms(搭配User Registration插件)
  • Profile Builder
  • New User Approve

Profile Builder为例:

  1. 进入WordPress后台,点击“插件” → “安装插件”。
  2. 搜索“Profile Builder”,安装并激活。

步骤2:配置邮箱验证

  1. 进入“Profile Builder” → “高级设置”。
  2. 勾选“启用邮箱验证”选项。
  3. 保存设置后,新用户注册时会收到验证邮件,需点击链接激活账户。

方法二:通过代码手动实现

步骤1:添加验证功能到主题

将以下代码添加到主题的functions.php文件中(建议使用子主题):

// 发送验证邮件
function send_verification_email($user_id) {
$user = get_user_by('id', $user_id);
$code = md5(time());
update_user_meta($user_id, 'email_verification_code', $code);

$subject = '请验证您的邮箱地址';
$message = '点击以下链接激活账户:' . home_url("/verify-email?user_id=$user_id&code=$code");
wp_mail($user->user_email, $subject, $message);
}

// 注册后触发验证邮件
add_action('user_register', 'send_verification_email');

// 验证邮箱链接
function verify_email() {
if (isset($_GET['user_id']) && isset($_GET['code'])) {
$user_id = intval($_GET['user_id']);
$code = sanitize_text_field($_GET['code']);
$saved_code = get_user_meta($user_id, 'email_verification_code', true);

if ($code === $saved_code) {
update_user_meta($user_id, 'email_verified', true);
wp_redirect(home_url('/login?verified=1'));
exit;
}
}
}
add_action('init', 'verify_email');

步骤2:限制未验证用户登录

添加以下代码,禁止未验证用户登录:

add_action('wp_login', 'check_email_verification', 10, 2);
function check_email_verification($user_login, $user) {
if (!get_user_meta($user->ID, 'email_verified', true)) {
wp_logout();
wp_redirect(home_url('/login?error=unverified'));
exit;
}
}

注意事项

  1. 邮件发送问题:确保WordPress邮件功能正常(可安装SMTP插件如WP Mail SMTP)。
  2. 安全性:自定义代码需测试兼容性,建议备份网站。

通过以上方法,即可轻松实现WordPress用户注册邮箱验证功能,提升网站安全性和用户体验!