Created
May 28, 2015 18:19
-
-
Save verticalgrain/ec2146504981e2561a83 to your computer and use it in GitHub Desktop.
Email validation in Gravity Forms - validate an email address entered in a regular text input
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/** | |
* Hooks for validating an email address in Gravity Forms | |
* When using a plain text input to collect an email, this will validate that the email address entered is a proper email address | |
* Useful for situations in which the existing gravity forms email field can't be used | |
* | |
* Change line 28 and line 37 to adapt this to your form | |
* | |
* @package d7 | |
* @subpackage boilerplate-theme | |
* | |
* @param array $validation_result Contains the form data Gravity Forms passes at this point | |
* | |
*/ | |
// Validate the email field | |
// Since we are using the gravity forms post fields, we can't use the default gravity forms email validation | |
add_filter('gform_validation', 'custom_validation'); | |
function custom_validation($validation_result){ | |
// Set the $validation_result object to $form for clarity | |
$form = $validation_result["form"]; | |
// Get the value the user entered for the email field | |
// EDIT HERE WITH THE INPUT NAME OF YOUR FIELD (input_2 is the name attribute of the input field) | |
$email = $_POST["input_2"]; | |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { | |
// set the form validation to false | |
$validation_result["is_valid"] = false; | |
// specify the invalid field and provide custom validation message | |
// EDIT HERE WITH THE ZERO INDEXED NUMBER OF THE FIELD (in thise case $form["fields"][2], because the field is the third field in the form) | |
$form["fields"][2]["failed_validation"] = true; | |
$form["fields"][2]["validation_message"] = 'Please enter a valid email address'; | |
} | |
// update the form in the validation result with the form object you modified | |
$validation_result["form"] = $form; | |
return $validation_result; | |
} |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// set the form validation to false
$validation_result["is_valid"] = false;
foreach ($form['fields'] as &$field) {
if ($field->id == 2) { //input id
$field->failed_validation = true;
$field->validation_message = 'Please enter a valid email address';
}
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank You!