gform_is_value_match

Description

This filter can be used to filter whether the source and target values are a match.

Usage

The gform_is_value_match filter has both a JavaScript version and a PHP version. Both versions may need to be used.

The JavaScript version only overrides the result on the front-end.

gform.addFilter('gform_is_value_match', function (isMatch, formId, rule) {
    // do stuff

    return isMatch;
} );

The PHP version overrides the result when the conditional logic is evaluated during submission using the field values saved in the entry.

add_filter( 'gform_is_value_match', function ( $is_match, $field_value, $target_value, $operation, $source_field, $rule ) {
    // do stuff

    return $is_match;
}, 10, 6 );

JavaScript Version

Parameters

  • isMatch boolean

    Does the target field’s value match with the rule value?

  • formId integer

    The ID of the form in use.

  • rule Javascript Object

    The current rule object. e.g.
    {"fieldId":3,"operator":"<","value":"5"}

Example

This example shows how you can perform the value and rule comparison for a custom field type which may use a custom method for storing its value.

gform.addFilter('gform_is_value_match', function (isMatch, formId, rule) {
    var couponField = jQuery('#field_' + formId + '_' + rule.fieldId).find('#gf_coupon_codes_' + formId);
    if (couponField.length) {
        return gf_matches_operation(couponField.val(), rule.value, rule.operator);
    }

    return isMatch;
});

Source Code

This filter is located in js/conditional_logic.js

PHP Version

Parameters

  • $is_match boolean

    Does the target field’s value match with the rule value?

  • $field_value string

    The field value to use with the comparison.

  • $target_value string

    The value from the conditional logic rule to use with the comparison.

  • $operation string

    The conditional logic rule operator.

  • $source_field Field Object

    The field object for the source of the field value.

  • $rule array

    The current rule object.

Example

This example shows how you can perform the value and rule comparison for a field type which may store its value in a custom format.

add_filter( 'gform_is_value_match', function ( $is_match, $field_value, $target_value, $operation, $source_field, $rule ) {
    if ( $source_field->type == 'product' && $source_field->inputType == 'price' ) {
        return RGFormsModel::matches_operation( GFCommon::to_number( $field_value ), $target_value, $operation );
    }

    return $is_match;
}, 10, 6 );

Source Code

This filter is located in RGFormsModel::is_value_match() in forms_model.php