仅使用特定主机名注册用户

时间:2011-11-10 作者:realcoder

Hii我希望每当任何用户在我的wordpress注册时,只要访问特定主机的电子邮件,例如,如果我只接受用户注册[email protected]此电子邮件格式显示一些错误,您只能在@gmail中注册。comso如何应用此条件以及在哪个文件中感谢

3 个回复
最合适的回答,由SO网友:GavinR 整理而成

我认为User Domain Whitelist 插件正是您想要的:

用户域白名单/黑名单插件将用户注册限制为仅具有以下域白名单中的电子邮件地址的注册者,或阻止具有以下域黑名单中的电子邮件地址的注册者注册。

SO网友:Bainternet

您可以使用register_post 钩子以检查电子邮件域是否在您的白名单中,如果不只是添加一个错误,它将告诉用户使用您白名单中的电子邮件,例如:

function is_valid_email_domain($login, $email, $errors ){
    $valid_email_domains = array("gmail.com","yahoo.com");// whitelist
    $valid = false;
    foreach( $valid_email_domains as $d ){
        $d_length = strlen( $d );
        $current_email_domain = strtolower( substr( $email, -($d_length), $d_length));
        if( $current_email_domain == strtolower($d) ){
            $valid = true;
            break;
        }
    }
    // if invalid, return error
    if( $valid === false ){
        $errors->add(\'domain_whitelist_error\',__( \'<strong>ERROR</strong>: you can only register using gmail or yahoo emails\' ));
    }
}

add_action(\'register_post\', \'is_valid_email_domain\',10,3 );

SO网友:EAMann

实际上,这是一个验证问题,不是一个WordPress问题。您可以添加一个JavaScript文件来检查电子邮件字段的值@gmail.com 并允许表单提交或向用户发出错误警报。

例如,此脚本将执行您想要的操作。。。

jQuery(document).ready(function($) {
    $(\'#registerform\').find(\':submit\').click(function(e) {
        if( ! isGmail( $(\'#user_email\').val() ) ) {
            e.preventDefault(); // Prevent the form from submitting
            alert(\'You can only register with an @gmail.com email address!\');
            return false;
        }
    });
});

function isGmail( address ) {
    return address.indexOf("@gmail.com", this.length - 10) !== -1;
}

结束

相关推荐