GF >= 2.9 + Stripe - transaction_id in GFFeedAddOn empty

Hello,

I’m struggling to find the cause of a problem in Gravity Forms 2.9.0 and above. The situation I describe works fine on 2.8.18.

I have a custom GFFeedAddOn which sends data to a CRM after successful form entry submission. I use the Stripe Elements add-on to collect payments, and I need to send the transaction_id to the CRM when I send the data in process_feed(). After upgrading to 2.9.*, the transaction_id field is empty when process_feed() is called. When I view the entry in WP Admin, the transaction_id is populated.

I can’t make my feed async as I need to use data returned from the CRM in the confirmation.

Does the community have any tips?

I pinpointed this to a change in v2.9.1. v2.9.0 does not exhibit this behaviour.

class-gf-feed-addon.php has his line (no changes):

add_filter( 'gform_entry_post_save', array( $this, 'maybe_process_feed' ), 10, 2 );

class-gf-payment-addon.php has this line (the priority changed from 10 to 11 in v2.9.1, which means it executes after the feeds):

add_filter( 'gform_entry_post_save', array( $this, 'entry_post_save' ), 11, 2 );

This seems like a bug to me. I’d think Payment Feeds should always process before regular Feeds (this has always been the case). For now I have overridden this in my feeds’ init().

remove_filter('gform_entry_post_save', array($this, 'maybe_process_feed'), 10);
add_filter('gform_entry_post_save', array($this, 'maybe_process_feed'), 12, 2);

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.