do_action( ‘delete_user’, int $id, int|null $reassign, WP_User $user )

Fires immediately before a user is deleted from the site.


Note that on a Multisite installation the user only gets removed from the site and does not get deleted from the database.


ID of the user to delete.
ID of the user to reassign posts and links to.
Default null, for no reassignment.
WP_User object of the user to delete.

More Information

The delete_user action/hook can be used to perform additional actions when a user is deleted. For example, you can delete rows from custom tables created by a plugin.

This hook runs before a user is deleted. The hook deleted_user (notice the “ed”) runs after a user is deleted. Choose the appropriate hook for your needs. If you need access to user meta or fields from the user table, use delete_user.

Users deleted from Network Site installs may not trigger this hook. Be sure to use the wpmu_delete_user hook for those cases. The deleted_user hook is called in either case.


do_action( 'delete_user', $id, $reassign, $user );


5.5.0Added the $user parameter.

User Contributed Notes

  1. Skip to note 3 content

    Example migrated from Codex:

    In this example we send a friendly message to a user before their account is deleted a few milliseconds later.

    function my_delete_user( $user_id ) {
    	global $wpdb;
    	$user_obj = get_userdata( $user_id );
    	$email = $user_obj->user_email;
    	$headers = 'From: ' . get_bloginfo( "name" ) . ' <' . get_bloginfo( "admin_email" ) . '>' . "\r\n";
    	wp_mail( $email, 'You are being deleted, brah', 'Your account at ' . get_bloginfo("name") . ' is being deleted right now.', $headers );
    add_action( 'delete_user', 'my_delete_user' );
  2. Skip to note 4 content

    Example usage
    Send email notification when a user is deleted

    add_action( 'delete_user', 'wpdocs_delete_user' );
    function wpdocs_delete_user( $user_id ) {
    	$user_data = get_userdata( $user_id );
    	$headers = 'From: ' . get_bloginfo( 'name' ) . ' ' . "\r\n";
    	wp_mail( $user_data->user_email, 'We are deleting your account', 'Your account at ' . get_bloginfo( 'name' ) . ' will be deleted.', $headers );

You must log in before being able to contribute a note or feedback.