The gform_calculation_result Gravity Forms PHP filter allows you to modify the result of a number field calculation or calculated product field.
Usage
add_filter('gform_calculation_result', 'modify_calculation_result', 10, 5); function modify_calculation_result($result, $formula, $field, $form, $entry) { // your custom code here return $result; }
Parameters
$result
(float): The calculation result.$formula
(string): The formula after merge tags have been processed.$field
(Field Object): The calculation field currently being processed.$form
(Form Object): The form currently being processed.$entry
(Entry Object): The entry currently being processed.
More information
See Gravity Forms Docs: gform_calculation_result
Examples
Calculate a percentage
Calculate 10% of a number from field with ID 1:
add_filter('gform_calculation_result', 'calculate_percentage', 10, 5); function calculate_percentage($result, $formula, $field, $form, $entry) { if ($form['id'] == 10 && $field['id'] == 3) { $number = (float) rgar($entry, '1'); $result = $number * 0.1; } return $result; }
Calculate the sum of two fields
Calculate the sum of fields with IDs 1 and 2:
add_filter('gform_calculation_result', 'calculate_sum', 10, 5); function calculate_sum($result, $formula, $field, $form, $entry) { if ($form['id'] == 10 && $field['id'] == 3) { $num1 = (float) rgar($entry, '1'); $num2 = (float) rgar($entry, '2'); $result = $num1 + $num2; } return $result; }
Calculate the difference between two fields
Calculate the difference between fields with IDs 1 and 2:
add_filter('gform_calculation_result', 'calculate_difference', 10, 5); function calculate_difference($result, $formula, $field, $form, $entry) { if ($form['id'] == 10 && $field['id'] == 3) { $num1 = (float) rgar($entry, '1'); $num2 = (float) rgar($entry, '2'); $result = $num1 - $num2; } return $result; }
Calculate the product of two fields
Calculate the product of fields with IDs 1 and 2:
add_filter('gform_calculation_result', 'calculate_product', 10, 5); function calculate_product($result, $formula, $field, $form, $entry) { if ($form['id'] == 10 && $field['id'] == 3) { $num1 = (float) rgar($entry, '1'); $num2 = (float) rgar($entry, '2'); $result = $num1 * $num2; } return $result; }