Here is a snippet that assign author role to a new registered member whose email is [email protected] where you need to modify to fit your needs:
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' ); } }
You can add those codes in your functions.php in the theme, if you think your theme won’t be changed. Otherwise mu-plugins is the best solution. To use mu-plugins, go to /wp-content/ and find the folder with name 'mu-plugins'. If there is no folder in that name, then create a folder, name it 'mu-plugins', create a file inside that, give any name you like and paste the code in there. You don't need to activate that plugin. Mu-plugins means must use plugins, so it will be activated automatically always. If you use mu-plugins then add a php start tag at the beginning of the code.