페이지 선택
View Categories

캐시 설정 후 wpform 전송오류

학습 소요 시간: 4 분 소요

오류의 일반적인 원인(캐시 수명 설정 변경 후) #

캐시 시간 설정을 변경한 이후 갑자기 wpform 전송이 오류가 발생한다면?

이 오류는 사용자 브라우저의 폼 토큰과 WPForms에서 생성된 폼 토큰 사이에 불일치가 있음을 나타냅니다.

캐싱 플러그인의 유효 기간이 폼 토큰의 유효 기간보다 긴 경우 종종 발생합니다.

사용하는 캐싱 플러그인이 웹사이트 데이터를 48시간 이상 저장하도록 구성된 경우

wp form 사용자는 양식을 제출할 때  아래와 같은 오류 메시지가 표시됩니다.

The form was unable to submit. Please contact the site administrator.‘’ 

양식을 제출할 수 없습니다. 사이트 관리자에게 문의하십시오. ‘

해결방법은 아래 코드 테마의 functions.php 파일 가장하단에 복붙합니다.

테마의 functions.php에 코드 추가: #

  • 워드프레스 관리자에서 외모 > 테마 파일 편집기로 이동합니다.
  • 현재 활성화된 테마의 functions.php 파일을 열고, 해당 파일의 맨 아래에 코드를 추가합니다.
  • 주의: 테마가 업데이트될 때 이 파일이 덮어씌워질 수 있으므로, 자식 테마(child theme)를 사용하는 것이 좋습니다.
/**
 * Extend cache time on form tokens before today.
 */
function example_add_longer_token_time_before( $times ) {
    // Allow the token to persist for 1 year (365 days)
    $times[] = 365 * DAY_IN_SECONDS;

    return $times;
}
add_filter( 'wpforms_form_token_check_before_today', 'example_add_longer_token_time_before' );

/**
 * Extend cache time on form tokens after today.
 */
function example_add_longer_token_time_after( $times ) {
    // Allow the token to persist for 1 year (365 days)
    $times[] = 365 * DAY_IN_SECONDS;

    return $times;
}
add_filter( 'wpforms_form_token_check_after_today', 'example_add_longer_token_time_after' );

wpform 토큰 시간을 늘려도 폼 필드 수정 시 캐시가 자동으로 지워지나요? #

WPForms에서는 폼이 수정되면 캐시가 자동으로 무효화됩니다. 즉, 폼 필드를 수정할 때 해당 폼과 관련된 캐시 토큰도 재생성되므로, 캐시 시간이 길게 설정되어 있더라도 폼을 수정하면 새로운 토큰이 생성됩니다. 따라서, 토큰 시간을 연장해도 폼 수정 시 캐시 문제는 발생하지 않습니다.

이외.잘 되던 폼메일이 갑자기 전송안되는 현상 #

클라우드플레어 CDN과 클라우드웨이즈 Breeze 캐시를 함께 사용하는 경우 폼 메일이 정상적으로 작동하지 않는 이슈는 주로 캐싱 관련 설정 때문일 가능성이 큽니다. 폼 메일의 경우 동적인 요청이 발생하기 때문에, 캐시에서 해당 요청이 적절히 처리되지 않으면 문제가 발생할 수 있습니다. 이를 해결하기 위한 몇 가지 방법을 안내드립니다:

네트워크 요청 확인으로 원인 찾기 (개발자 도구) #

  • 브라우저의 개발자 도구(Chrome 기준 F12)에서 네트워크 탭을 열고, 폼 메일을 제출할 때 발생하는 요청을 확인합니다. 폼메일 제출 후 f5번 키를 눌러주세요.
    • 상태 코드: 폼 제출 시 요청이 200 OK로 처리되는지 확인합니다. 상태 코드가 403, 500, 또는 404와 같은 오류라면, 해당 상태 코드에 따라 원인을 파악할 수 있습니다.
    • 상태별 응답코드 설명은 아래표를 참고하세요.
상태 코드 설명 원인 해결 방법
200 OK 요청이 성공적으로 처리됨 정상 요청 문제 없음
201 Created 요청에 따라 새로운 리소스가 생성됨 POST 요청이 성공적으로 처리됨 문제 없음
204 No Content 요청이 성공적으로 처리되었지만 반환할 내용이 없음 주로 PUT 또는 DELETE 요청에 사용됨 문제 없음
301 Moved Permanently 요청한 리소스가 영구적으로 다른 URL로 이동됨 URL이 변경됨 새 URL로 리다이렉트 설정
302 Found (Temporary Redirect) 요청한 리소스가 임시적으로 다른 위치에 있음 URL이 임시로 변경됨 다음 요청에서는 원래 URL 사용 가능
304 Not Modified 리소스가 변경되지 않아 클라이언트가 캐시된 리소스를 사용함 클라이언트가 이미 최신 버전의 리소스를 가지고 있음 문제 없음
400 Bad Request 잘못된 요청 요청 구문 오류, 잘못된 파라미터 요청 데이터나 파라미터를 확인하고 수정
401 Unauthorized 인증되지 않은 상태에서 보호된 리소스에 접근 시도 인증 토큰이 없거나 유효하지 않음 로그인 상태 확인, 유효한 인증 토큰 확인
403 Forbidden 클라이언트가 요청한 리소스에 대한 접근 권한 없음 리소스에 대한 접근 권한 부족 접근 권한 설정 확인 및 수정
404 Not Found 요청한 리소스를 찾을 수 없음 잘못된 URL 또는 서버에 리소스가 존재하지 않음 URL 및 리소스 존재 여부 확인
408 Request Timeout 클라이언트의 요청이 시간 내에 처리되지 않음 네트워크 지연 또는 서버 과부하 네트워크 상태 확인, 서버 응답 시간 설정 확인
500 Internal Server Error 서버에서 예기치 않은 오류 발생 서버 구성 오류, 스크립트 오류, 데이터베이스 연결 문제 서버 로그 확인 후 오류 수정, 스크립트나 데이터베이스 문제 해결
502 Bad Gateway 서버가 잘못된 응답을 받음 백엔드 서버 오류 또는 프록시 서버 문제 백엔드 서버 상태 확인, 프록시 서버 설정 점검
503 Service Unavailable 서버가 일시적으로 요청을 처리할 수 없음 서버 과부하, 유지보수 중 서버 상태 확인, 리소스 증대 또는 서버 재시작
504 Gateway Timeout 프록시 서버가 응답을 기다리는 중 시간 초과됨 백엔드 서버의 응답 지연, 네트워크 문제 백엔드 서버 응답 시간 확인, 네트워크 상태 점검

이번의 경우 304 Not Modifed 오류입니다. 304 Not Modified 상태 코드는 서버에서 새 데이터를 전송하지 않고 캐시된 데이터를 사용하게 하여 문제가 발생한 것입니다.

저의 경우, Cloudways-CacheCloudflare-Cache가 모두 작동 중임을 응답 헤더에서 확인할 수 있습니다.

이외. 문제해결을 위한 캐시 작업처리 #

  • 클라우드웨이즈 캐시를 1년으로 해두었기때문에, 발생한 오류로, 폼메일 페이지의 경우 캐시에서 예외처리를 해주어서 문제 없이 메일이 작동 할 수 있도록 수정해주겠습니다.

▲ Breeze 캐시 설정으로 이동해서, 커스텀 캐시 설정을 해줍니다.

▲ ADANCED OPTIONS – Never Cache URL(s) 에 캐시되지 않아야 하는 url을 입력해주세요.

▲ 폼메일이 정상작동하는 것을 확인 할 수 있습니다.

Powered by BetterDocs

코멘트 제출

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다