The gform_pre_submission Gravity Forms action hook allows you to modify the submitted form values after validation, but before the entry is stored and notifications are sent.
Usage
Apply to all forms:
add_action('gform_pre_submission', 'pre_submission');
Apply to a specific form (e.g., form ID 5):
add_action('gform_pre_submission_5', 'pre_submission');
Parameters
$form(Form Object): The current form.
More information
See Gravity Forms Docs: gform_pre_submission
The action hook is located in GFFormDisplay::process_form() in form_display.php.
Examples
Populate a field
This example sets a new value for field 14:
add_action('gform_pre_submission', 'pre_submission_handler');
function pre_submission_handler($form) {
$_POST['input_14'] = 'new value for field 14';
}
Populate a field using the value from another field
This example sets the value of field 14 to the value of field 5 for form ID 1:
add_action('gform_pre_submission_1', 'pre_submission_handler');
function pre_submission_handler($form) {
$_POST['input_14'] = rgpost('input_5');
}
Populate a field with the age
This example calculates the age based on the date field value and populates field 11 with the age for form ID 5:
add_action('gform_pre_submission_5', function($form) {
$date_field_id = '10';
$date_field = GFAPI::get_field($form, $date_field_id);
$value = $date_field->get_value_submission(array());
$date_value = GFFormsModel::prepare_date($date_field->dateFormat, $value);
$today = new DateTime();
$diff = $today->diff(new DateTime($date_value));
$_POST['input_11'] = $diff->y;
});