From 6be76822e223842c25f7fb4c81f7a575c6a7acf2 Mon Sep 17 00:00:00 2001 From: saifsultanc Date: Fri, 28 Feb 2025 15:54:38 +0530 Subject: [PATCH] `gw-populate-date.php`: Fixed an issue with the date population not working when source field ID wasn't provided. --- gravity-forms/gw-populate-date.php | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/gravity-forms/gw-populate-date.php b/gravity-forms/gw-populate-date.php index 04a684511..862585a74 100644 --- a/gravity-forms/gw-populate-date.php +++ b/gravity-forms/gw-populate-date.php @@ -49,7 +49,8 @@ public function init() { return; } - if ( $this->_args['source_field_id'] ) { + // Always load the script if a modifier is provided, even if no source_field_id is set + if ( $this->_args['modifier'] || $this->_args['source_field_id'] ) { add_filter( 'gform_pre_render', array( $this, 'load_form_script' ) ); add_filter( 'gform_register_init_scripts', array( $this, 'add_init_script' ) ); add_filter( 'gform_enqueue_scripts', array( $this, 'enqueue_form_scripts' ) ); @@ -300,20 +301,21 @@ public static function output_script() { self.init = function() { - self.$sourceInputs = GWDates.getFieldInputs( self.sourceFieldId, self.formId ); - - self.$sourceInputs.change( function() { - self.populateDate( self.sourceFieldId, self.targetFieldId, self.getModifier(), self.format ); - } ); + if( self.sourceFieldId ) { + self.$sourceInputs = GWDates.getFieldInputs( self.sourceFieldId, self.formId ); + self.$sourceInputs.change( function() { + self.populateDate( self.sourceFieldId, self.targetFieldId, self.getModifier(), self.format ); + } ); - // Listen for GPPA's new `gppa_updated_batch_fields` - $( document ).on( 'gppa_updated_batch_fields', function ( e, formId, updatedFieldIDs ) { - for ( var i = 0, max = updatedFieldIDs.length; i < max; i ++ ) { - if ( self.sourceFieldId === parseInt( updatedFieldIDs[i] ) ) { - self.populateDate( self.sourceFieldId, self.targetFieldId, self.getModifier(), self.format ); + // Listen for GPPA's new `gppa_updated_batch_fields` + $( document ).on( 'gppa_updated_batch_fields', function ( e, formId, updatedFieldIDs ) { + for ( var i = 0, max = updatedFieldIDs.length; i < max; i ++ ) { + if ( self.sourceFieldId === parseInt( updatedFieldIDs[i] ) ) { + self.populateDate( self.sourceFieldId, self.targetFieldId, self.getModifier(), self.format ); + } } - } - } ); + } ); + } if( typeof self.modifier == 'object' ) { self.$modifierInputs = self.getInputs( self.modifier.inputId ); @@ -334,7 +336,7 @@ public static function output_script() { self.populateDate = function( sourceFieldId, targetFieldId, modifier, format ) { - var timestamp = GWDates.getFieldTimestamp( sourceFieldId, self.formId, undefined, self.utcOffset ); + var timestamp = sourceFieldId ? GWDates.getFieldTimestamp( sourceFieldId, self.formId, undefined, self.utcOffset ) : new Date().getTime(); if( timestamp === 0 ) { return; }