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

时间:2013-07-09 11:26:29

标签: php wordpress

我在删除用户之前使用delete_user hook来进行一些操作(调用另一个函数)。 这是我的代码的一部分:

 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' );

在sso_settings.php文件中声明了Login()函数。

如果我尝试删除只有一个用户工作正常。

但是,如果我尝试删除2个用户 - 调用login()函数并从Wordpress删除第一个用户,但之后我得到一个php错误,函数login()被重新声明。 如果我使用include_once('sso_functions.php')而不是include('sso_function.php')。我没有收到错误,用户从Wordpress中删除,但没有为第二个用户调用函数Login()。

我知道如何解决这个问题? 谢谢!

3 个答案:

答案 0 :(得分:0)

wordpress显示正确的错误消息。而不是使用include('sso functions.php');线尝试使用它

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

答案 1 :(得分:0)

我不确定,但我认为delete_user已经是一个功能。只需尝试将delete_user中的名称替换为其他名称。像

这样的东西
add_action( 'delete_user', 'wp_delete_user' );

也不要忘记更改功能的名称。如果您使用您的插件名称作为前缀,它总是更好。与登录功能相同,为其添加前缀,因此核心功能不会与自定义创建的功能混合使用。

答案 2 :(得分:0)

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

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