我正在使用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()) );
}
}
}
代码的第一部分工作正常,即如果他同意条款和条件,他将被成功重定向到页面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>
答案 0 :(得分:4)
为了让这篇文章对于googlers更具可读性,来自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 );
}
https://codex.wordpress.org/Function_Reference/wp_delete_user#Examples