Skip to content

Commit 528053e

Browse files
Jukka Rautanenk1sul1
authored andcommitted
Add filter with which you can disable additional field validation
Use the post object instead Define variable before passing to avoid error
1 parent 05ea6d2 commit 528053e

2 files changed

Lines changed: 33 additions & 1 deletion

File tree

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,25 @@ function my_email_thankyou( $return ) {
156156
}
157157
```
158158

159+
### Filter: wplf_disable_validate_additional_fields
160+
161+
Dynamically generated fields are disabled by default. If you want to allow fields that are not set in the form to be submitted you can use this filter.
162+
163+
#### Form specific hooks
164+
165+
This filter supports form specific hooks:
166+
167+
- `wplf_{form_id}_disable_validate_additional_fields`
168+
- `wplf_{form_slug}_disable_validate_additional_fields`
169+
170+
These filters are only applied for the target form by ID or slug.
171+
172+
Disabling additonal fields validation for all forms:
173+
174+
```php
175+
add_filter( 'wplf_disable_validate_additional_fields' , __return_false );
176+
```
177+
159178
## Javascript API
160179

161180
### Client side callbacks

inc/wplf-form-validation.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,21 @@ function wplf_validate_additional_fields( $return ) {
7171
return $return;
7272
}
7373

74+
// skip this validation if it is disabled with filter for this form
75+
$form = get_post( intval( $_POST['_form_id'] ) );
76+
// global disable
77+
$disable_validation = false;
78+
$disable_validation = apply_filters( 'wplf_disable_validate_additional_fields', $disable_validation );
79+
// disable by form id
80+
$disable_validation = apply_filters( "wplf_{$form->ID}_disable_validate_additional_fields", $disable_validation );
81+
// disable by form slug
82+
$disable_validation = apply_filters( "wplf_{$form->post_name}_disable_validate_additional_fields", $disable_validation );
83+
if ( $disable_validation ) {
84+
return $return;
85+
}
86+
7487
// get all fields from form
75-
$form_fields = explode( ',', get_post_meta( $_POST['_form_id'], '_wplf_fields', true ) );
88+
$form_fields = explode( ',', get_post_meta( $form->ID, '_wplf_fields', true ) );
7689

7790
// add all default fields
7891
$default_fields = array( 'referrer', '_referrer_id', '_form_id' );

0 commit comments

Comments
 (0)