Using Gravity Forms ‘gform_is_feed_asynchronous’ PHP filter

The gform_is_feed_asynchronous Gravity Forms PHP filter can be used to enable or disable background processing of feeds. This feature prevents feed processing from impacting form submission performance.

Table of contents

Usage

add_filter( 'gform_is_feed_asynchronous', 'your_function_name', 10, 4 );

Parameters

  • $is_asynchronous (bool) – Indicates if background (async) feed processing is enabled or disabled.
  • $feed (array) – The Feed Object currently being processed.
  • $form (array) – The Form Object currently being processed.
  • $entry (array) – The Entry Object currently being processed.

More information

See Gravity Forms Docs: gform_is_feed_asynchronous

Examples

Turn off background processing for the specified feed name

This example uses the feed name to limit the scope of the snippet.

add_filter( 'gform_is_feed_asynchronous', function ( $is_asynchronous, $feed, $form, $entry ) {
    GFCommon::log_debug( __METHOD__ . '(): running.' );
    $feed_name  = rgars( $feed, 'meta/feedName' );
    // Run only for this feed name.
    if ( $feed_name === 'Your feed name here' ) {
        GFCommon::log_debug( __METHOD__ . '(): Disabling background processing for feed: ' . $feed_name );
        $is_asynchronous = false;
    }
    return $is_asynchronous;
}, 10, 4 );

Enable background processing for specific add-ons

These examples check the add-on slug from the $feed to enable background processing for specific add-ons.

Single add-on

add_filter( 'gform_is_feed_asynchronous', function ( $is_asynchronous, $feed ) {
    $target_slug = 'the-slug-goes-here';
    if ( rgar( $feed, 'addon_slug' ) === $target_slug ) {
        $is_asynchronous = true;
    }

    return $is_asynchronous;
}, 10, 2 );

Multiple add-ons

add_filter( 'gform_is_feed_asynchronous', function ( $is_asynchronous, $feed ) {
    $target_slugs = array(
        'slug1',
        'slug2',
    );

    if ( in_array( rgar( $feed, 'addon_slug' ), $target_slugs ) ) {
        $is_asynchronous = true;
    }

    return $is_asynchronous;
}, 10, 2 );

Disable for User Registration Auto Login

This example shows how background feed processing can be disabled for the User Registration add-on when using older versions of the Auto Login perk.

add_filter( 'gform_is_feed_asynchronous', function ( $is_asynchronous, $feed ) {
    if ( ! $is_asynchronous || ! class_exists( 'GP_Auto_Login' ) || rgar( $feed, 'addon_slug' ) !== 'gravityformsuserregistration' ) {
        return $is_asynchronous;
    }

    return GP_Auto_Login::get_instance()->is_auto_login_enabled( $feed ) ? false : $is_asynchronous;
}, 10, 2 );

If you’re enabling auto login via custom code, you can use the following approach instead.

add_filter( 'gform_is_feed_asynchronous', function ( $is_asynchronous, $feed ) {
    if ( ! $is_asynchronous || rgar( $feed, 'addon_slug' ) !== 'gravityformsuserregistration' ) {
return $is_asynchronous;
}

return gf_user_registration()->is_update_feed( $feed ) ? $is_asynchronous : false;
}, 10, 2 );

Placement

This code can be placed in the `functions.php` file of the active theme, a custom functions plugin, or a custom add-on.

See also the PHP section in this article: [Where Do I Put This Code?](https://docs.gravityforms.com/where-do-i-put-this-code/)

Source Code

This filter is located in `class-gf-feed-addon.php`.

Leave a Comment

Your email address will not be published. Required fields are marked *