Delete user from frontend

时间:2014-03-12 作者:Robbert

嗨,我是一个前端管理员,用户必须能够删除他的帐户。current_user() 是me的一个自定义函数,用于检索用户元数据。

有人知道我怎样才能做到这一点吗?

echo \'<a class="remove" href="\' . get_permalink() . \'?remove_account">\' . __( \'Click here to remove your account\' ) . \'</a>\';

// Remove account
function terminate_account() {
    require_once( ABSPATH . \'wp-admin/includes/user.php\' );
    wp_delete_user( current_user( \'ID\' ) );
}

if( isset( $_GET[\'remove_account\'] ) ) {
    add_action( \'init\', \'terminate_account\' );
}

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

直接采取的形式the wp_delete_user documentation:

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 );
}
注意事项:

打印删除用户链接时,您的代码没有检查用户是否已登录,初始化操作已经发生并完成,因此删除用户无法工作。这部分代码需要更早地运行,比如在函数中。php或插件编辑:

如果可以将其放置在主题功能文件中:

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();
    $success = wp_delete_user( $current_user->ID );
    wp_die(\'wp delete gave: <pre>"\'.print_r($success).\'"</pre>\');
}

结束

相关推荐

wp_users user_status field

我已经找到了我问题的答案here 但它已经7岁了。我只是想知道我是否可以把这个专栏用于我自己的目的。我计划使用user_activation_key 列中存储哈希键,并在user_status 柱此标志将阻止用户在验证其电子邮件地址之前登录。