gform_post_fail_subscription_payment

Description

Triggered after an existing subscription payment fails.

Usage

add_action( 'gform_post_fail_subscription_payment', 'my_function', 10, 2 );

Parameters

ParameterTypeDescription
$entryEntry ObjectThe entry object that was created.
$actionarrayThe action that occurred within the subscription payment. Contains further information about the subscription.
$action = array(
    'type'             => '',
    'amount'           => '',
    'transaction_type' => '',
    'transaction_id'   => '',
    'subscription_id'  => '',
    'entry_id'         => '',
    'payment_status'   => '',
    'note'             => '',
);

Examples

1. Basic Usage

function my_function() {
    // Do something here
}
add_action( 'gform_post_fail_subscription_payment', 'my_function', 10, 2 );

2. Update User Role

add_action( 'gform_post_fail_subscription_payment', 'update_user_role' );

function update_user_role( $entry ) {
    if ( function_exists( 'gf_user_registration' ) ) {
        // use WP_User to change role - https://developer.wordpress.org/reference/classes/wp_user/
        $user = gf_user_registration()->get_user_by_entry_id( $entry['id'] );
        if ( is_object( $user ) ) {
            $user->remove_role( 'role_one' );
            $user->add_role( 'role_two' );
        }
    }
}

3. Access webhook event

In some cases you may need access to the webhook event that initiated the subscription cancelation. This example demonstrates how to access that event object. Note: this object is only available if the request was initiated by a Stripe webhook.

add_action( 'gform_post_fail_subscription_payment', 'my_function', 10, 2 );

function my_function( $entry, $feed ) {
    // If data from the Stripe webhook event is needed (and this hook was initiated via a Stripe webhook request), you can access event data with the following line:
    $event = gf_stripe()->get_webhook_event();
    if ( $event ) {
        // Access webhook event data. For event object documentation, see: https://stripe.com/docs/api/events/object
    }
}

Placement

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

See also the PHP section in this article: Where Do I Put This Code?

Source Code

do_action( 'gform_post_fail_subscription_payment', $entry, $action );

This action hook is located in GFPaymentAddOn::fail_subscription_payment() in includes/addon/class-gf-payment-addon.php.