Didn’t get array of users like in delete action WPList table in users tab

You’re handling the request incorrectly, load-users.php is not the correct hook

Instead, use handle_bulk_actions-users

add_filter( 'handle_bulk_actions-users', 'sanzeeb_bulk_action_handler_user', 10, 3 );

function sanzeeb_bulk_action_handler_user( $redirect, $action, $object_ids ) {

    // let's remove query args first
    $redirect = remove_query_arg( array( 'assign' ), $redirect );

    // do something for "Assign" bulk action
    if ( $doaction == 'assign' ) {
        // ...

Some other notes:

  • These are all very generic names assign trigger_query_actions etc, prefix them e.g. sanzeeb_assign, otherwise you’ll clash with other plugins
  • Avoid $_REQUEST for security reasons, it’s not just GET and POST, it’s also COOKIE SESSION etc