1. Home
  2. WordPress
  3. APi Development
  4. Delete An User

Delete An User

//   ____           _          _                        _   _                     
//  |  _ \    ___  | |   ___  | |_    ___      __ _    | | | |  ___    ___   _ __ 
//  | | | |  / _ \ | |  / _ \ | __|  / _ \    / _` |   | | | | / __|  / _ \ | '__|
//  | |_| | |  __/ | | |  __/ | |_  |  __/   | (_| |   | |_| | \__ \ |  __/ | |   
//  |____/   \___| |_|  \___|  \__|  \___|    \__,_|    \___/  |___/  \___| |_|   
                      
// POST https://pahona.org/api/wp-json/custom/v1/delete-user/{user_id}

function custom_delete_user_endpoint() {
    register_rest_route('custom/v1', '/delete-user/(?P<id>\d+)', array(
        'methods' => 'DELETE',
        'callback' => 'handle_delete_user',
        'permission_callback' => 'custom_user_delete_permissions_check',
    ));
}

add_action('rest_api_init', 'custom_delete_user_endpoint');

function custom_user_delete_permissions_check($request) {
    // Check if current user can delete users
    if (!current_user_can('delete_users')) {
        return new WP_Error('rest_forbidden', esc_html__('You do not have permissions to delete users.'), array('status' => 403));
    }
    return true;
}

function handle_delete_user($request) {
    $user_id = (int) $request['id'];

    // Validate user ID
    if (empty($user_id)) {
        return new WP_Error('invalid_user_id', 'Invalid user ID', array('status' => 400));
    }

    // Delete user
    $deleted = wp_delete_user($user_id);

    if (!$deleted) {
        return new WP_Error('delete_failed', 'Failed to delete user', array('status' => 500));
    }

    return new WP_REST_Response(array('message' => 'User deleted successfully'), 200);
}

How can we help?