如何在基于电子邮件的注册时设置角色?

时间:2014-12-23 作者:RebDev

我正在寻找一种方法,将所有注册特定域扩展的用户设置为非默认角色。例如,如果用户注册了\'。co.uk的地址,则其角色可以是作者,而不是默认订阅者。有人知道可以实现这一点的插件或代码吗?

任何帮助都将不胜感激。

1 个回复
最合适的回答,由SO网友:Ashok Kumar Nath 整理而成

下面是一个代码段,它将作者角色分配给电子邮件为[email protected]您需要修改哪些内容以满足您的需要:

add_action( \'user_register\', \'user_register_cb\', 10, 1 );
function user_register_cb( $user_id ){
    $user_info = get_userdata( $user_id );
    $email = $user_info->user_email;
    $domain = \'.co.uk\';
    $pos = strpos( $email, $domain );
    if( $pos === 0 ){
        // You can assign any other role
    }else{
        $user_info->set_role( \'author\' );
    }
}
您可以在函数中添加这些代码。php的主题,如果你认为你的主题不会改变。否则,mu插件是最好的解决方案。要使用mu插件,请转到/wp-content/并找到名为“mu-plugins”的文件夹。如果该名称中没有文件夹,则创建一个文件夹,将其命名为“mu plugins”,在其中创建一个文件,给出任何您喜欢的名称并将代码粘贴到其中。您不需要激活该插件。Mu插件意味着必须使用插件,因此它将始终自动激活。如果您使用mu插件,那么在代码的开头添加一个php开始标记。

结束

相关推荐

Redirect from subdomain

我正在将Tumblr站点移动到WP,需要处理重定向。我正在使用Redirection plugin.所以,我需要从http://blog.example.com > http://example.com要做到这一点,我是否需要在博客上实际托管该网站。实例com并从此处重定向?或者我需要在博客上设置一个虚拟站点吗。实例com?我真的不知道怎么解决这个问题。非常欢迎您的建议!更新:这可以通过添加新的vhost条目来实现吗?