• Resolved lisamr

    (@lisamr)


    Hello! I assume I already know the answer to this question but maybe you all will have some suggestions. We run a subscription site for our customers and company employees that acts as a hub for our software documentation, tutorial videos, etc. We send our customers a registration link once they purchase the software and they are automatically approved in UltimateMember. When our employees register, I have to log in to WordPress and update their user role to keep our customers and employees separate.

    I was curious, is it possible to have users who register with a certain email domain (i.e. @companyname.com) automatically be put into a certain user role? In my case, we have Customer Subscribers and Employee Subscribers. All new users are put under the customer subscribers user role. It would be really convenient if our employees could automatically get put under the employee subscribers user role.

    Thanks in advance!

Viewing 5 replies - 1 through 5 (of 5 total)
  • @lisamr

    You can use this code and change “gmail.com” to your company email address.
    User role is changed also according to your existing role for employees.

    https://www.ads-software.com/support/topic/different-role/

    Add the code to your child theme file functions.php or use Code Snippets

    Thread Starter lisamr

    (@lisamr)

    Oh wow! Super cool, thank you so much! ??

    Thread Starter lisamr

    (@lisamr)

    So I got the code set up but something must be off. I just had a user register and their user role was set to “No Role for this Site” instead of the role I wanted. Here is my code, my intention is for people who register with an email address of [email protected] to automatically be updated to the CA Employee Subscriber role:

    add_action("um_registration_complete","um_042121_change_user_role", 1, 2 );
    function um_042121_change_user_role( $user_id, $args ){
        
        if( isset( $args['user_email'] ) ){
    
            list($user, $domain) = explode('@', $args['user_email'] );
    
            if ($domain == 'clinicalarchitecture.com') {
                wp_update_user( array( 'ID' => $user_id, 'role' => 'CA Employee Subscriber' ) );
            }
    
        }
    }

    Can you help me figure out what is wrong in the code above? Thank you so much!!

    @lisamr

    Sorry it’s not clear in the link with the code that you must use the RoleID.

    Go to UM -> User Roles on your site and look at the ‘CA Employee Subscriber’ role where RoleID should be like maybe also with a prefix ‘ca_employee_subscriber’.

    Replace your text CA Employee Subscriber with the RoleID text in your code.

    • This reply was modified 3 years, 6 months ago by missveronica.
    Thread Starter lisamr

    (@lisamr)

    Gotcha! I figured it was just that I didn’t understand how the code should be written. No worries! ?? That did the trick, thank you so much for your help! Again!

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Automatically assign user role based on email domain?’ is closed to new replies.