wp_delete_user函数从前端删除用户不起作用

Riz*_*Riz 2 wordpress

我正在一个wordpress网站上工作。当用户登录到站点时,他将被重定向到条款和条件页面。因此,如果他接受条款和条件,将被允许使用服务;如果他不接受条款和条件,则其帐户将被终止。现在,我使用wp_delete_user函数来终止他的帐户,但该帐户无法正常工作。这是我的代码

add_action('init', 'function_init_terms');

function function_init_terms()
{
    if(isset($_POST['terms_submit']))
    {
        if($_POST['terms_agree'] == 'yes')
        {
            wp_redirect( get_permalink(215)); exit;
        }
        if($_POST['terms_agree'] != 'yes')
        {

            $user_ID = get_current_user_id();

             wp_delete_user($user_ID);
                echo html_entity_decode( wp_logout_url(home_url()) );




        }
    }
}
Run Code Online (Sandbox Code Playgroud)

代码的第一部分工作正常,即如果他同意条款和条件,那么他将成功重定向到页面ID 215。但是另一部分无法正常工作。这是我的html

<form method="POST" action="<?php bloginfo('url') ?>/">
 <input type="checkbox" name="terms_agree" id="terms_agree" value="yes"/>Agree<br>
 <input type="submit" name="terms_submit" id="terms_submit" value="Continue" />
 </form>
Run Code Online (Sandbox Code Playgroud)

eja*_*azz 5

为了使这一职位的Google员工。答案更具可读性Adreivictor

要使用后端功能wp_delete_user(),您需要require_once(ABSPATH.'wp-admin/includes/user.php' );

来自Wordpress的示例:

if(is_user_logged_in() && !empty($_GET['DeleteMyAccount'])) {
    add_action('init', 'remove_logged_in_user');
}

function remove_logged_in_user() {
    require_once(ABSPATH.'wp-admin/includes/user.php' );
    $current_user = wp_get_current_user();
    wp_delete_user( $current_user->ID );
}
Run Code Online (Sandbox Code Playgroud)

https://codex.wordpress.org/Function_Reference/wp_delete_user#Examples