gform_calculation_result

gform_calculation_result

DescriptionUsageJavaScript VersionParametersExamplePlacementSource CodePHP VersionParametersExamplePlacementSource Code

Description
This filter can be used to modify the result of a number field calculation or calculated product field.
Usage
The gform_calculation_result filter has both a JavaScript version and a PHP version. Both versions should be used.
The JavaScript version only overrides the calculation result on the front-end.
12345gform.addFilter( 'gform_calculation_result', function( result, formulaField, formId, calcObj ) {    // do stuff     return result;} );
The PHP version overrides the calculation result when the calculation is rerun during submission using the field values saved in the entry.
12345add_filter( 'gform_calculation_result', function( $result, $formula, $field, $form, $entry ) {    // do stuff     return $result;}, 10, 5 );
JavaScript Version

Parameters

result float
The calculation result.

formulaField Javascript Object
The current calculation field object. e.g.
1{"field_id":3,"formula":"{:1}+{:2}","rounding":""}

formId integer
The ID of the form in use.

calcObj Javascript Object
The calculation object.

Example
This example shows how you can perform a calculation using exponents.
12345678gform.addFilter('gform_calculation_result', function( result, formulaField, formId, calcObj ) {    if ( formId == '10' && formulaField.field_id == '3' ) {        var exponent = calcObj.replaceFieldTags( formId, '{:2}', formulaField ),            num = calcObj.replaceFieldTags( formId, '{:1}', formulaField );        result = Math.pow( num, exponent );    }    return result;} );
Placement
Your code snippet can be placed in a HTML field on your form or in a theme custom JavaScript file.
Source Code
This filter is located in js/gravityforms.js
PHP Version

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.

Example
This example shows how you can perform a calculation using exponents.
123456789add_filter( 'gform_calculation_result', function ( $result, $formula, $field, $form, $entry ) {    if ( $form['id'] == 10 && $field['id'] == 3 ) {        $exponent = (float) rgar( $entry, '2' );        $num      = (float) rgar( $entry, '1' );        $result   = pow( $num, $exponent );    }     return $result;}, 10, 5 );
Placement
Your code snippet should be placed in the functions.php file of your active theme.
Source Code
This filter is located in GFCommon::calculate() in common.php

發表回覆

您的郵箱地址不會被公開。 必填項已用 * 標註