This hook allows you to add custom errors that are not specific to one field.
Usage
add_action('frm_validate_entry', 'validate_my_form', 20, 2);
Parameters
- $errors (array)
- $posted_values (array)
Examples
Remove all errors
Use this code to remove all errors from a form if a field has a particular value.
add_action('frm_validate_entry', 'validate_my_form', 20, 2);
function validate_my_form($errors, $values){
if ( $values['form_id'] == 45 && $_POST['item_meta'][125] != 'Yes' ) { //Change 45 to the ID of your form, 125 to the ID of a field, and 'Yes' to any value
return array();
}
return $errors;
}
Basic format
Use this format if you would like to add an error to the form.
add_action('frm_validate_entry', 'validate_my_form', 20, 2);
function validate_my_form($errors, $values){
if($values['form_id'] == 45){//Change 45 to the ID of your form and add additional conditions here
$errors['my_error'] = 'You are not allowed to submit this form.';//Change this to your error
}
return $errors;
}
Customize the spam message
add_action('frm_validate_entry', 'validate_my_form', 20, 2);
function validate_my_form($errors, $values){
if ( isset($errors['spam']) ) {
$errors['spam'] = 'No submissions for you!';
}
return $errors;
}
Require one field from a set
Make sure one of the fields in a group of fields is required.
add_filter('frm_validate_entry', 'check_phone_fields', 10, 2);
function check_phone_fields( $errors, $values ) {
if ( $values['form_id'] == 45 ) { // change 45 to your form id
$group_fields = array(25, 26, 27); // change 25, 26, 27 to the ids of your fields
foreach ( $group_fields as $field_id ) {
if ( $_POST['item_meta'][$field_id] != '' ) {
return $errors; // do not continue checking if any of these fields have a value
}
}
foreach ( $group_fields as $field_id ) {
$errors['field'. $field_id] = 'Please fill in one of the fields.';
}
}
return $errors;
}
Prevent submissions from an IP
Blacklist any IPs and prevent entries from being created.
add_filter('frm_validate_entry', 'frm_check_ip_blacklist', 10, 2);
function frm_check_ip_blacklist( $errors, $values ) {
$ips = array( '107.150.42.226', '195.154.232.138', '155.108.70.195' );
$current_ip = FrmAppHelper::get_ip_address();
if ( in_array( $current_ip, $ips ) ) {
$errors['spam'] = 'You are not allowed to do that';
}
return $errors;
}
Populate fields from User ID
Fill other fields based on the id of the user selected in your user ID field.
add_action('frm_validate_entry', 'frm_add_user_name', 20, 2);
function frm_add_user_name( $errors, $values ) {
if ( isset( $_POST['item_meta'][25] ) ) { //change 25 to the id of the user id field
$user = get_userdata( absint( $_POST['item_meta'][25] ) ); //change 25 here too
$_POST['item_meta'][26] = $user->last_name; //change 26 to the id of the last name field
$_POST['item_meta'][27] = $user->first_name; //change 27 to the id of the first name field
}
return $errors;
}
If you would like to add your own example, click here.
Have something to add?
Click here to provide feedback on this page.