The gform_save_field_value Gravity Forms PHP action allows you to modify a field’s value before it is saved to the database. It can be used in conjunction with gform_get_input_value to perform low-level transformations, such as encrypting/decrypting a field.
Usage
A generic example of how to use the action:
add_filter('gform_save_field_value', 'your_function_name', 10, 5);
Parameters
- $value (string): The current entry value to be filtered.
- $entry (Entry Object): The current entry.
- $field (Field Object | null): The field from which the entry value was submitted or null if updating the entry and the field no longer exists.
- $form (Form Object): The form from which the entry value was submitted.
- $input_id (Mixed): The input ID of the input being saved. Defaults to the field ID for single input field types. Added in GF v1.8.5.8
More information
See Gravity Forms Docs: gform_save_field_value
Examples
Encode all values
This example base64 encodes the field values. View gform_get_input_value for an example on how to decode the fields.
add_filter('gform_save_field_value', 'save_field_value', 10, 4); function save_field_value($value, $lead, $field, $form) { return base64_encode($value); }
Encode values for a specific form
This is another example where you may select a specific form and specific fields to encode.
add_filter('gform_save_field_value', 'save_field_value', 10, 4); function save_field_value($value, $lead, $field, $form) { // If not the form with fields to encode, just return the unaltered value without checking the fields if (!is_object($field) || absint($form->id) != 94) { return $value; } // Array of field ids to encode $encode_fields = array(1, 2, 3); // See if the current field id is in the array of fields to encode; encode if so, otherwise return unaltered value if (in_array($field->id, $encode_fields)) { return base64_encode($value); } else { return $value; } }
Process merge tags
The following example shows how you can replace merge tags before saving the field value.
add_filter('gform_save_field_value', 'replace_merge_tags', 10, 4); function replace_merge_tags($value, $entry, $field, $form) { $value = GFCommon::replace_variables($value, $form, $entry); return $value; }
Uppercase Value
The following example shows how you can uppercase a field value when the entry is saved.
add_filter('gform_save_field_value', 'uppercase_text', 10, 3); function uppercase_text($value, $entry, $field) { if ($field->get_input_type() == 'text') { $value = strtoupper($value); } return $value; }