Note: This is to inform you that these snippets are around 2 years old so these might not work for everyone.

Change Role based on Balance

Home / Code Snippets / Change Role based on Balance

Change a users WordPress role based on their point balance.

The above code goes into your theme's function.php file.

  1. This is very great code. But is it compatible with 1.6.2? When a subscriber got more than 100 points it’s role becomes administrator eveytime. Can you check it please? And is it also functioning reverse – lower role when user lost points?

  2. I have implemented this code and it is working when the user moves up a level but not when the user needs to go back down a level. Is there a way that this can happen?

  3. Great, I am trying to send email notification to users once upon their role was changed, and I try to add email notification code in theme option:

    function user_role_update( $user_id, $new_role ) {
            $site_url = get_bloginfo('wpurl');
            $user_info = get_userdata( $user_id );
            $to = $user_info->user_email;
            $subject = "Role changed: ".$site_url."";
            $message = "Hello " .$user_info->display_name . " your role has changed on ".$site_url.", congratulations you are now an " . $new_role;
            wp_mail($to, $subject, $message);
    add_action( 'set_user_role', 'user_role_update', 10, 2);

    and the email will send only when user role is changed by admin at backend, would you please let us how to hook mycred email notification add-on? any sample code would be great appreciated, have a nice day.


    1. The email notice add-on was built to send email when a user gains or loses points. If you want to tie in your script to send an email notice, you need to give your users points.

  4. Hello,

    I can make it to work with wordpress Default roles like ‘contributor’, ‘author’, ‘editor’, ‘administrator, and I use the plugin of “Capability Manager Enhanced” to create a new role named “Mycredlevelroleone” in our Multisites, and set ‘Mycredlevelroleone’ => 100000, and it does not work.

    How to make it support the custom roles please?



Leave a Reply