Upgrade user at login with function

i want to upgrade users as they login from level 0 / subscriber to level #1 / s2member_level1

    function upgrade_s2member_new_user() {
      $current_user = wp_get_current_user();
       if (in_array('subscriber', $current_user->roles)) {
         $current_user->set_role('s2member_level1');
      }
    }
    add_action('wp_login', 'upgrade_s2member_new_user');

im thinking this should work but after trying several iterations, cant seem to get it to work.

any suggestions?

made some adjustments simplified it and got it working, forgot about Priority & Parameters

add_action(
    'wp_login',
    function( $user_login, $user ) { // Get current WP $user
        if ( in_array( 'subscriber', $user->roles ) ) {
            $user->set_role( 's2member_level1' );
        }
    },10,2 // Priority, Parameters
);
1 Like

Nice! Thanks for sharing!