要在WordPress中限制以特定邮箱后缀(例如@gmail.com)进行用户注册,可以通过添加自定义代码到您的主题的 functions.php 文件或将代码封装成插件来实现这一功能。下面提供了白名单和黑名单的示例代码,用于检查用户注册时使用的邮箱后缀,并在匹配到指定后缀时阻止或允许注册。

实现代码

白名单模式代码

add_filter('registration_errors', function($errors, $login, $email){
    /**
     * 允许注册的邮箱后缀域名,可在数组里面自定义添加
     * 英文逗号分隔,引号也是英文输入状态输入,域名字母小写
     */
    $valid_domains = ['gmail.com', 'qq.com'];
    $email_domain = strtolower(substr(strrchr($email, "@"), 1));

    // 邮箱域名不在白名单列表
    if (!in_array($email_domain, $valid_domains)){
        // 提示语可自定义替换
        $msg = '本站只支持 Gmail和QQ邮箱注册。';
        $errors->add('domain_whitelist_error', $msg);
    }

    return $errors;
}, 10, 3);

黑名单模式代码

add_filter('registration_errors', function($errors, $login, $email) {
    /**
     * 不允许注册的邮箱后缀域名,可在数组里面自定义添加
     * 英文逗号分隔,引号也是英文输入状态输入,域名字母小写
     */
    $restricted_domains = ['gmail.com', 'qq.com'];
    $email_domain = strtolower(substr(strrchr($email, "@"), 1));

    // 邮箱域名在黑名单列表
    if (in_array($email_domain, $restricted_domains)){
        // 提示语可自定义替换
        $msg = '当前域名后缀邮箱不允许注册。';
        $errors->add('domain_blacklist_error', $msg);
    }

    return $errors;
}, 10, 3);

使用方法

1. 封装成插件部署(推荐)

使用自建插件,方法:自建WordPress插件解决主题升级或更换主题后自定义代码丢失

2. 部署到主题functions.php文件

  1. 编辑 functions.php 文件:找到您当前主题的 functions.php 文件。这通常位于 /wp-content/themes/your-theme-name/ 目录下,建议使用子主题来进行更改,以避免将来更新主题时丢失自定义代码。
  2. 添加自定义代码:在 functions.php 文件的末尾添加代码,并按自己需求修改代码中的邮箱后缀列表,然后保存文件。
声明:本文由 秋光暖暖 收集整理并发布,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。