Gravity Forms 사용자 지정 유효성 검사 필터
서드파티 서비스를 통해 판매를 처리하고 결과를 처리하여 상태가 "Success" 또는 "Invalid"인 어레이를 반환하는 기능이 있습니다.이 영업 콜은 특정 양식에 적용된 gform_after_submission 훅을 사용하여 이루어집니다.
"Success" 또는 "Invalid" 결과를 변수로 배열에 저장하면 나중에 gform_validation 훅을 사용하여 신용카드 필드를 확인 또는 비활성화하는 함수에 전달할 수 있습니다.
다음과 같이 함수에 변수를 선언합니다.
function foo {
...code to sell product through API...
$status = $checkoutShoppingCartRequest['Result']['Status'];
}
함수 내에서 변수 $status를 인쇄하면 Success 또는 Invalid 중 하나가 표시됩니다.
이 변수를 사용해야 하는 다른 함수는 gform_validation으로 전달되며 성공 또는 무효 결과에 관계없이 매번 실패합니다.
function MBvalidate( $validation_result ) {
$form = $validation_result['form'];
if ( $status !== "Success") {
$validation_result['is_valid'] = false;
foreach( $form['fields'] as &$field ) {
if ( $field->id == '34' ) {
$field->failed_validation = true;
$field->validation_message = 'Your credit card could not be processed.';
break;
}
}
}
//Assign modified $form object back to the validation result
$validation_result['form'] = $form;
return $validation_result;
}
add_filter( 'gform_validation_47', 'MBvalidate' );
저는 글로벌이나 세션 등을 통해 변수를 전달하려고 여러 가지 방법을 시도했습니다.
저는 GF 개발은 처음이라 뭔가 부족한 것이 있습니다.어떤 방향이라도 알려주시면 감사하겠습니다.
그gform_after_submission
액션 훅이 뒤를 잇다 gform_validation
.
어쨌든, 이전에 실행된 후크를 찾을 수 있다고 가정하면, Transients API를 사용하여 제출된 각 폼에 고유한 변수를 저장합니다.set_transient()
그리고.get_transient()
기능들.예를 들어 임의의 ID로 채우는 모든 양식에 숨김 필드를 생성할 수 있습니다.이 랜덤 ID를 성공/잘못된 결과를 저장하고 검색하기 위한 키로 사용합니다.
$status
if-condition에서 사용하기 전에는 정의되지 않은 로컬 변수를 다음에 나타냅니다.그래서 항상null
놓쳤을지도 몰라
$status = $validation_result['Result']['Status'];
상태를 체크하기 전에 이런 거.
언급URL : https://stackoverflow.com/questions/30353054/gravity-forms-custom-validation-filter
'source' 카테고리의 다른 글
모바일에서 리액트 앱 미리보기를 만드는 방법 (0) | 2023.04.01 |
---|---|
플러그인 개발 중 Wordpress 오류 - "이 페이지에 액세스할 수 있는 충분한 권한이 없습니다." (0) | 2023.04.01 |
Jquery/Ajax 양식 제출(enctpe="formart/form-data")왜 '콘텐츠'는유형:False' 원인 정의되지 않은 인덱스가 PHP에 있습니까? (0) | 2023.04.01 |
'react'에서 반응하는 import *와 'react'에서 반응하는 import react의 차이점은 무엇입니까? (0) | 2023.04.01 |
postgresql을 사용하여 wordpress를 설치하는 방법 (0) | 2023.04.01 |