From 73f2cdd2514f053bb3a79cff414da3d840971671 Mon Sep 17 00:00:00 2001 From: saifsultanc Date: Thu, 23 Oct 2025 21:58:05 +0530 Subject: [PATCH 1/2] `gpdtc-recalc.php`: Added GravityView Support. --- gp-date-time-calculator/gpdtc-recalc.php | 27 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/gp-date-time-calculator/gpdtc-recalc.php b/gp-date-time-calculator/gpdtc-recalc.php index 8034de90..48a88721 100644 --- a/gp-date-time-calculator/gpdtc-recalc.php +++ b/gp-date-time-calculator/gpdtc-recalc.php @@ -14,13 +14,17 @@ add_action( 'wp_loaded', function() { $form_id = 123; // Change this to the form's ID - $field_id = 4; // Change this to the Calculation field's ID. + $field_id = 4; // Change this to the Calculation field's ID. $values = array(); $calculating = false; add_filter( sprintf( 'gform_get_input_value_%s', $form_id ), function( $value, $entry, $field, $input_id ) use ( $field_id, &$values, $calculating ) { - if ( $calculating || $field['id'] !== $field_id ) { + if ( $calculating ) { + return $value; + } + + if ( $field['id'] !== $field_id ) { $values[ $field['id'] ] = $value; return $value; } @@ -28,13 +32,26 @@ // Set flag to prevent infinite recursion. $calculating = true; - $form = GFAPI::get_form( $entry['form_id'] ); - $_entry = $entry + $values; + $form = GFAPI::get_form( $entry['form_id'] ); + $_entry = $entry + $values; + $calculated_value = GFCommon::calculate( $field, $form, $_entry ); + + GFAPI::update_entry_field( $_entry['id'], $field_id, $calculated_value ); // Reset flag. $calculating = false; - return GFCommon::calculate( $field, $form, $_entry ); + return $calculated_value; }, 10, 4 ); + // GravityView Support. + add_filter( 'gravityview/field/number/value', function( $value, $field, $view, $form, $entry ) use ( $field_id, $form_id ) { + if ( $field->ID != $field_id && $form->ID != $form_id ) { + return $value; + } + + $orig_entry = GFAPI::get_entry( $entry->ID ); + return rgar( $orig_entry, $field_id ); + }, 10, 5 ); + } ); From 083d492cd38d6a1c8b72044b8de795de58cdaad4 Mon Sep 17 00:00:00 2001 From: saifsultanc Date: Wed, 5 Nov 2025 19:17:38 +0530 Subject: [PATCH 2/2] `gpdtc-recalc.php`: Added GravityView Support. --- gp-date-time-calculator/gpdtc-recalc.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gp-date-time-calculator/gpdtc-recalc.php b/gp-date-time-calculator/gpdtc-recalc.php index 48a88721..0a69d26b 100644 --- a/gp-date-time-calculator/gpdtc-recalc.php +++ b/gp-date-time-calculator/gpdtc-recalc.php @@ -17,9 +17,10 @@ $field_id = 4; // Change this to the Calculation field's ID. $values = array(); - $calculating = false; + $calculating = false; // Flag to prevent infinite recursion - add_filter( sprintf( 'gform_get_input_value_%s', $form_id ), function( $value, $entry, $field, $input_id ) use ( $field_id, &$values, $calculating ) { + add_filter( sprintf( 'gform_get_input_value_%s', $form_id ), function( $value, $entry, $field, $input_id ) use ( $field_id, &$values, &$calculating ) { + // Prevent infinite recursion if ( $calculating ) { return $value; } @@ -29,16 +30,15 @@ return $value; } - // Set flag to prevent infinite recursion. + // Set flag to prevent recursion $calculating = true; - $form = GFAPI::get_form( $entry['form_id'] ); - $_entry = $entry + $values; + $form = GFAPI::get_form( $entry['form_id'] ); + $_entry = $entry + $values; $calculated_value = GFCommon::calculate( $field, $form, $_entry ); GFAPI::update_entry_field( $_entry['id'], $field_id, $calculated_value ); - - // Reset flag. + // Reset flag $calculating = false; return $calculated_value; @@ -49,7 +49,6 @@ if ( $field->ID != $field_id && $form->ID != $form_id ) { return $value; } - $orig_entry = GFAPI::get_entry( $entry->ID ); return rgar( $orig_entry, $field_id ); }, 10, 5 );