$user = wp_get_current_user(); $password = wskl_POST('password'); $reason = wskl_POST('reason', 'sanitize_text_field'); self::evaluate_and_redirect_if_failed(wp_check_password($password, $user->user_pass, $user->ID), __('비밀번호가 일치하지 않습니다.', 'wskl')); if (wskl_is_option_enabled('members_delete_after_withdrawal')) { if (!function_exists('wp_delete_user')) { include_once ABSPATH . 'wp-admin/includes/user.php'; } // 멤버 정말로 삭제 wp_logout(); wp_delete_user($user->ID); } else { // 역할을 바꿔 탈퇴 회원으로 간주 update_user_meta($user->ID, 'withdrawal_reason', $reason); $user->set_role('wskl_withdrawn'); wp_logout(); } // 탈퇴 완료 메시지 wp_redirect(add_query_arg(array('status' => 'complete'), $_SERVER['REQUEST_URI'])); exit; } private static function evaluate_and_redirect_if_failed($expr, $message) { if (!$expr) { wp_redirect(add_query_arg(array('status' => 'failure', 'message' => urlencode($message)), $_SERVER['REQUEST_URI'])); exit; } } } WSKL_Dabory_Members_Withdrawal::init();