원래 문자인증 코드 짤때 그냥 세션에다 인증번호 담고 인증번호 입력하면 삭제했는데
워드프레스에서 제공하는 set_transient() 이걸쓰면 엄청 간편하게 wp_options 테이블에 값이 저장되고
설정한 시간이 지나면 자동으로 삭제된다
set_transient()관련링크 https://developer.wordpress.org/reference/functions/set_transient/
public function user_phone_certify_send(){
$phone_number = sanitize_text_field($_POST['phone']);
$user_id = sanitize_text_field($_POST['user_id']);
$auth_number = rand(100000, 999999);
check_ajax_referer('yourdomain_security_'. $user_id, 'yourdomain_nonce');
$message = "인증번호:{$auth_number}
3분 내 인증을 완료해주세요.
";
set_transient('yourdomain_expert_phone_certify_number', $auth_number, 3 * MINUTE_IN_SECONDS);
$count = $certify_number = get_transient('yourdomain_expert_phone_certify_number_count');
$count = $count ? $count : 0;
$count++;
set_transient('yourdomain_expert_phone_certify_number_count', $count, 3 * MINUTE_IN_SECONDS);
if ($count < 5) {
$send = your_sms_send_function_here($phone_number, $message);
if (isset($send['result']) && $send['result'] == 'error') {
$result = array(
'success' => false,
'msg' => $send['message'],
);
} else {
$result = array(
'success' => true,
'msg' => '인증번호가 발송 되었습니다.',
);
}
} else {
$result = array(
'success' => false,
'msg' => '너무 많이 요청했습니다. 잠시 후 요청해주세요.',
);
}
wp_send_json($result);
}
참고코드
'php 워드프레스 개발' 카테고리의 다른 글
IP 기준 사용자 위치(국가) 정보 가져오기 (11) | 2024.08.23 |
---|---|
절대 중복되지 않는 난수+문자열 조합 (2) | 2024.07.29 |
간단하게 만들어본 마스킹처리 함수 (0) | 2024.01.17 |
워드프레스 우커머스 관련 정보들 (1) | 2023.11.02 |
api 연동중 에러 (4) | 2023.10.11 |