feat: 메일 미인증 만료 회원을 기존 탈퇴 절차로 정리

메일 인증 기한이 지난 미인증 회원을 일일 정리에서 탈퇴 처리하고 본인확인 정보와 소셜 연결을 해제한다. 나머지 회원자료는 기존 탈퇴 후 삭제 정책에 따라 정리하며 아이디는 보존한다.

자진 탈퇴와 자동 정리에 공통 함수를 사용하고 인증 완료·재발송과의 동시 변경을 조건부 갱신으로 보호한다. 관리자 상태 표시와 설정 안내, 운영 문서를 함께 반영한다.

검증: 변경 PHP 6개 문법 검사, 임시 DB에서 만료 경계·재발송·동시 변경·자진 탈퇴·유예 후 정리 검사 통과.
This commit is contained in:
whitedot committed 2026-09-09 07:58:16 +00:00
1 parent d0f136cca0
commit 672d05f968
7 files changed
+124 -20

No files matched your search

+18 -1
View File
@@ -49,6 +49,23 @@ if($config['cf_memo_del'] > 0) {
}
}
// 메일 인증 기한이 지난 회원도 본인확인 정보를 해제하고 탈퇴 처리한다.
// 재발송된 토큰의 발급 시각을 사용하며 실제 변경 직전에 회원 상태를 다시 확인한다.
$email_certify_minutes = isset($config['cf_email_certify_minutes']) ? (int) $config['cf_email_certify_minutes'] : 60;
if ($config['cf_use_email_certify'] && $email_certify_minutes > 0) {
$sql = " select mb_id, mb_email_certify, mb_email_certify2, mb_datetime, mb_leave_date, mb_memo
from {$g5['member_table']}
where mb_leave_date = ''
and mb_email_certify not regexp '[1-9]'
and mb_memo not regexp '^[0-9]{8}.*삭제함' ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
if (is_expired_email_certify_member($row)) {
g5_leave_member($row['mb_id'], true);
}
}
}
// 탈퇴회원 자동 삭제
if($config['cf_leave_day'] > 0) {
$sql = " select mb_id from {$g5['member_table']}
@@ -79,4 +96,4 @@ if(isset($config['cf_optimize_date'])) {
run_event('cf_optimize_date_update', $config);
}
run_event('db_table_optimize_end', $config);
run_event('db_table_optimize_end', $config);