摘要标识

WordPress 如何限制特定邮箱后缀的用户注册(注册邮箱白名单/黑名单),具体通过插件合自定义代码2种方式实现。

大家好,我是飞小优,运营WP长时间后,少不了会有一些垃圾用户或者机器注册用户,如何通过限制邮箱后缀方式实现防止垃圾用户注册,如果你希望注册你站点的用户只能使用某些指定的邮箱域名后缀,比如 qq.com、163.com;或者要禁止使用某些邮箱域名后缀(通常是老外的很多垃圾群注册),那如何实现呢?请看具体教程。

方案一:自定义代码实现

要在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);

代码部署

代码部署可选择在主题的functions.php 文件最后面插入,也可以新建一个php文件直接复制进入上传到插件目录。

封装成插件部署(推荐)

  1. 保存为PHP文件:新建一个PHP文件,可使用代码编辑类软件(例如Visual Studio CodeSublime Text)或者宝塔面板文件管理器的新建文件,保存为.php后缀文件,这里我们命名为email-domain-check.php
  2. 添加代码:由于上面的示例代码仅为功能的核心代码,而PHP语法代码是以<?php开头的,所以需要在上面新建的文件第一行添加代码:<?php,然后从第二行开始把上面的代码复制进文件,最后替换代码里面的邮箱域名以及提示信息等并保存文件;
  3. 上传到插件目录:上传到服务器网站插件目录,一般是网站目录下的/wp-content/plugins目录,保存后的完整路径:/wp-content/plugins/email-domain-check.php
  4. 启用插件:进入网站后台插件启用安装的插件,插件名称为WordPress 注册邮箱白名单或者WordPress 注册邮箱黑名单

部署到主题functions.php文件

  1. 访问您的WordPress网站文件:使用FTP客户端或通过您的网站控制面板(例如宝塔)的文件管理器访问您的WordPress站点文件;
  2. 编辑 functions.php 文件:找到您当前主题的 functions.php 文件。这通常位于 /wp-content/themes/your-theme-name/ 目录下,建议使用子主题来进行更改,以避免将来更新主题时丢失自定义代码:如何自定义修改主题而不被新版本覆盖?子主题创建教程;
  3. 添加自定义代码:在 functions.php 文件的末尾添加代码,并按自己需求修改代码中的邮箱后缀列表,然后保存文件。

方案二:插件形式实现

要在WordPress中限制可以注册的邮箱类型后缀,你可以使用以下方法之一:

使用插件:最简单的方法是使用WordPress插件来实现这个功能。有一些插件可以让你轻松地添加自定义的邮箱后缀限制。以下是使用插件的步骤:

  1. 在WordPress后台登录。
  2. 转到“插件” > “安装新插件”。
  3. 在搜索框中输入“email restrictions”或“email whitelist”等关键词,然后查找相应的插件。
  4. 安装并激活一个合适的插件。
  5. 配置插件以限制或允许特定的邮箱后缀。

写在最后

插件的方式实现比较简单,这里就不多说了,总之通过上述步骤就可以在WordPress网站上对特定后缀的邮箱地址进行白名单或者黑名单的限制注册了。

在线资询
微信

扫码了解更多服务

qr

1对1专家沟通

小程序
小程序
返回顶部