我在删除用户之前使用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()。
我知道如何解决这个问题? 谢谢!
答案 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 );
}