<?php
/**
* Template Name: 自助注销页面模板
* Description: sidebar page
*/
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
// 处理注销请求
function self_logout_process_logout()
{
global $user_id;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['confirm_logout']) && wp_verify_nonce($_POST['self_logout_nonce'], 'self_logout')) {
delete_user_account($user_id); // 删除用户的账户
wp_logout(); // 注销用户
wp_safe_redirect(wp_get_referer() ?: home_url());
exit;
}
}
}
add_action('init', 'self_logout_process_logout');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['confirm_logout']) && wp_verify_nonce($_POST['self_logout_nonce'], 'self_logout')) {
delete_user_account($user_id); // 删除用户的账户
wp_logout(); // 注销用户
wp_safe_redirect(wp_get_referer() ?: home_url());
exit;
}
}
// 删除用户账户
function delete_user_account($user_id)
{
global $wpdb;
// 删除与用户相关的内容,包括文章、评论等
$user_posts = $wpdb->get_col($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_author = %d", $user_id));
foreach ($user_posts as $post_id) {
wp_delete_post($post_id, true); // 第二个参数设置为 true,永久删除文章
}
// 删除用户评论
$wpdb->delete($wpdb->comments, array('user_id' => $user_id));
// 删除用户元数据
$wpdb->delete($wpdb->usermeta, array('user_id' => $user_id));
// 最后,删除用户
$wpdb->delete($wpdb->users, array('ID' => $user_id));
}
get_header();
?>
<link rel="stylesheet" href="<?php echo plugin_dir_url(__FILE__) . '../style.css'; ?>">
<main class="container">
<div class="contain_zzzx">
<article>
<div class="log_off_title">自助注销</div>
<p>注意您正在进行账号注销操作</p>
<p>请您仔细阅读以下提示,如因操作不当而引起的其他问题本站概不负责。</p>
<p>①本人自愿放弃账户中的资产和虚拟权益(包括但不限于账户会员权益、钱包余额、积分、充值卡、优惠卷、文章等);</p>
<p>②账户一旦被注销将不可恢复,请您在操作之前自行备份相关的所有信息和数据</p>
<p>③注销账户后,您将无法使用本账户,也将无法找回您账户中及与账户相关的任何内容和信息</p>
<p>④注销本账户并不代表您注销前的账户行为和相关责任得到豁免或减轻</p>
<p>⑤请您保管好自己的账户,以防止账户被盗后将您的账户永久注销!(请您不定时修改账户的密码,密码难度建议使用英文+数字+符号的方式)</p>
<p>⑥如您因保管账户不利,导致账户被盗后永久注销,平台不承担任何责任!</p>
<?php if (current_user_can('administrator')) : ?>
<div class="admin_button"><input type="submit" class="self-logout-button" style="border-radius: 5px;background: #463c3c;" value="<?php echo esc_attr_e('您是管理员,无法注销', 'self-logout'); ?>" disabled></div>
<?php else : ?>
<?php if (is_user_logged_in()) : ?>
<form method="post" class="self-logout-form">
<label for="confirm_logout">
<input type="checkbox" id="confirm_logout" name="confirm_logout" value="1" required>
<?php esc_html_e('我已经知悉', 'self-logout'); ?>
</label>
<input type="submit" class="self-logout-button" value="<?php echo esc_attr_e('注销并删除', 'self-logout'); ?>" disabled>
<?php wp_nonce_field('self_logout', 'self_logout_nonce'); ?>
</form>
<?php else : ?>
<div class="parent-element">
<button class="newadd-btns hover-show but nowave jb-blue radius" style="border-radius: 6px;">
<a href="javascript:;" class="signin-loader">登录</a>
</button>
</div>
<?php endif; ?>
<?php endif; ?>
</article>
</div>
</main>
<script>
document.addEventListener('DOMContentLoaded', function() {
var confirmCheckbox = document.getElementById('confirm_logout');
var logoutButton = document.querySelector('.self-logout-form .self-logout-button');
if (confirmCheckbox) {
confirmCheckbox.addEventListener('change', function() {
logoutButton.disabled = !confirmCheckbox.checked;
if (confirmCheckbox.checked) {
logoutButton.style.background = '#e74c3c';
} else {
logoutButton.style.background = '#f1948a';
}
});
}
});
</script>
<?php get_footer(); ?>
WordPress子比主题自助注销账号插件
需积分: 0 34 浏览量
2024-02-01
14:52:25
上传
评论
收藏 4KB ZIP 举报
GOdou社区_旺星人
- 粉丝: 8
- 资源: 2
最新资源
- JavaScript《基于自动分析数据并给出营业建议的餐厅管理系统(接入AI) 》+源代码+项目说明及资料
- 355670834783295707ad04e-427f-4cde-9589-e578224a8459.zip
- 动态sql解析引擎,类似mybatis动态sql的功能
- EDA365-Skill-V2.5安装包,支持Allegro17.x版本
- C# 常用单词汇总,常用单词汇总
- 【ERP标准流程-标准流程-库内业务管理】(DOC 14页).doc
- Python《数据库期末作业-餐厅点单系统 》+源代码+设计资料
- 学生成绩管理系统(C++课程设计
- 双指针法判断链表有环-go语言实现
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈