重力形式 gform_validation 过滤器不起作用
Gravity form gform_validation filter not working
我正在尝试 post 向第三方 API 发送数据,根据响应,我需要取消表单提交。但我仍然在重力表单后端获取表单条目。
这是我的代码:
add_filter('gform_validation_10', 'stop_form_submission_validation');
function stop_form_submission_validation($validation_result){
$form = $validation_result['form'];
foreach ( $form['fields'] as $field ) {
//NOTE: replace 1 with the field you would like to validate
if ( $field->id == 1 ) {
// set the form validation to false
$validation_result["is_valid"] = false;
$field->failed_validation = true;
$field->validation_message = 'This field is invalid!';
break;
}
}
$validation_result['form'] = $form;
return $validation_result;
}
您需要通过引用分配数组值。否则,您修改的是数组项的副本,而不是项本身。
改变这个:
foreach ( $form['fields'] as $field ) {
为此:
foreach ( $form['fields'] as &$field ) {
好的,我找到了解决方案here
GFAPI::delete_entry( $entry['id'] );
我正在尝试 post 向第三方 API 发送数据,根据响应,我需要取消表单提交。但我仍然在重力表单后端获取表单条目。
这是我的代码:
add_filter('gform_validation_10', 'stop_form_submission_validation');
function stop_form_submission_validation($validation_result){
$form = $validation_result['form'];
foreach ( $form['fields'] as $field ) {
//NOTE: replace 1 with the field you would like to validate
if ( $field->id == 1 ) {
// set the form validation to false
$validation_result["is_valid"] = false;
$field->failed_validation = true;
$field->validation_message = 'This field is invalid!';
break;
}
}
$validation_result['form'] = $form;
return $validation_result;
}
您需要通过引用分配数组值。否则,您修改的是数组项的副本,而不是项本身。
改变这个:
foreach ( $form['fields'] as $field ) {
为此:
foreach ( $form['fields'] as &$field ) {
好的,我找到了解决方案here
GFAPI::delete_entry( $entry['id'] );