what function can be used to change user role of all users who are currently assigned the role "Customer" to "Editor"?

Basically I need to create a cron job doing this daily. I have figured out the cron job part but need help with how to change roles via function.

  • while the question is on topic, it is very bare. Please add some context regarding the why. As it is, the answer "go to the user admin and change it", is probably the simplest and most accurate one May 3, 2018 at 5:26

1 Answer 1


Use the following function:

function wpse_replace_user_role( $from, $to ) {
    $args = array( 'role' => $from );
    $users = new WP_User_Query( $args );
    if ( !empty( $users->get_results() ) ) {
        foreach( $users->get_results() as $user ) {
            $u = new WP_User( $user->ID );
            $u->remove_role( $from );
            $u->add_role( $to );
            unset( $u );
        unset( $users );
  • $from - query all users with this role
  • $to - role to be set instead, for each queried user

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.