// ____ _ _ _ _
// | _ \ ___ | | ___ | |_ ___ __ _ | | | | ___ ___ _ __
// | | | | / _ \ | | / _ \ | __| / _ \ / _` | | | | | / __| / _ \ | '__|
// | |_| | | __/ | | | __/ | |_ | __/ | (_| | | |_| | \__ \ | __/ | |
// |____/ \___| |_| \___| \__| \___| \__,_| \___/ |___/ \___| |_|
// 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);
}