I have a form that is meant to allow a logged in user to select different certifications that they have, but in order to avoid extra administrative work, there is a registration code for each certification. So there are 7 different certifications and 7 different text fields for a registration code. But, the registration code field doesn't show up unless someone has selected "yes" next to the appropriate certification. However, when I added the form validation code to the functions.php it won't let the form be submitted unless the right code is in each field being validated. Is there a way to make the form validation conditional? I know just enough PHP to get myself in trouble sometimes, but not always enough to edit everything. https://dognosticseducation.com/test-certification-add-form/ - the form is embedded on that page as a test. When I had the validation in, I was using:
add_filter('frm_validate_field_entry', 'my_custom_validation', 10, 3); function my_custom_validation($errors, $posted_field, $posted_value){ if($posted_field->id == 46){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('DOGTRAINPRO','dogtrainpro'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Dog Training Professional registration code is wrong!'; } } return $errors; }
add_filter('frm_validate_field_entry', 'my_custom_validation1', 10, 3); function my_custom_validation1($errors, $posted_field, $posted_value){ if($posted_field->id == 47){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('DOGBEHPRO','dogbehpro'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Dog Behavior Professional registration code is wrong!'; } } return $errors; }
add_filter('frm_validate_field_entry', 'my_custom_validation2', 10, 3); function my_custom_validation2($errors, $posted_field, $posted_value){ if($posted_field->id == 48){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('CETPRO','cetpro'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Certified Canine Enrichment Technician registration code is wrong!'; } } return $errors; }
add_filter('frm_validate_field_entry', 'my_custom_validation3', 10, 3); function my_custom_validation3($errors, $posted_field, $posted_value){ if($posted_field->id == 49){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('DOGBITEPRE','dogbitepre'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Dog Bite Prevention Educator registration code is wrong!'; } } return $errors; }
add_filter('frm_validate_field_entry', 'my_custom_validation4', 10, 3); function my_custom_validation4($errors, $posted_field, $posted_value){ if($posted_field->id == 50){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('FUNSCENTINST','funscentinst'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Fun Scent Games Instructor registration code is wrong!'; } } return $errors; }
add_filter('frm_validate_field_entry', 'my_custom_validation5', 10, 3); function my_custom_validation5($errors, $posted_field, $posted_value){ if($posted_field->id == 51){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('PETCAREPRO','petcarepro'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Pet Care Professional registration code is wrong!'; } } return $errors; }
add_filter('frm_validate_field_entry', 'my_custom_validation6', 10, 3); function my_custom_validation6($errors, $posted_field, $posted_value){ if($posted_field->id == 52){ //change 25 to the ID of the field to validate if(!in_array($posted_value, array('DOGWALKPRO','dogwalkpro'))){ //change 001 and 002 to your allowed values //if it doesn't match up, add an error: $errors['field'. $posted_field->id] = 'Pet Care Professional registration code is wrong!'; } } return $errors; }
If I keep all of those in the functions.php as is, the form won't submit unless the right code is in each registration code field - but, someone might only need to add one or two certifications. If someone could point me in the right direction, I would greatly appreciate it.
Please login or Register to submit your answer
I need to make the validations conditional