删除多个用户时,WordPress delete_user挂钩

I'm using delete_user hook to make some action (call another function) before the user is deleted. This is part of my code:

 function delete_user( $user_id ) 
{
    include('sso_functions.php');
    global $wpdb;
    $user_obj = get_userdata( $user_id );
    $email = $user_obj->user_email;
    $login = array_values(login($email)); 
    $login_err = $login[1];
    $cookie = $login[0];
    if($login_err == 0)
    {

        //....
    }
    else
    {
        //...
    }



}
add_action( 'delete_user', 'delete_user' );

Login() function is declared in sso_settings.php file.

If I try to delete only one user is working good.

But if I try to delete 2 users - login() function is called and first user is deleted from Wordpress, but after that I get a php error that function login() is redeclared. If I use include_once('sso_functions.php') instead of include('sso_function.php'). I don't receive the error and users are deleted from Wordpress but function Login() is not called for second user.

Any idea how can I solve this? Thanks!

The wordrpess shows correct error message. Instead of using include('sso_functions.php'); line try using it

if(!function_exists('login')){
   include('sso_functions.php');
}

I am not sure but i think delete_user is already a function. Just try replacing the name from delete_user to something else. Something like

add_action( 'delete_user', 'wp_delete_user' );

And also dont forget to change the name of the function. Its always better if you use the your plugin name as a prefix. Same goes with the function login, add a prefix to it, so it core functions are not mixed with custom created functions.

$array = array(1,2,3,4);  //array of user that need to delete 

foreach($array as $userid)
{
 delete_user( $userid );
}