Using Gravity Forms ‘gform_stripe_fulfillment’ PHP action

The gform_stripe_fulfillment action allows you to perform custom actions after a Stripe checkout session is completed.

Usage

do_action('gform_stripe_fulfillment', $session, $entry, $feed, $form);

Parameters

  • $session (array): The session object.
  • $entry (array): The entry object.
  • $feed (array): The feed object.
  • $form (array): The form object.

More information

See Gravity Forms Docs: gform_stripe_fulfillment

Examples

Send Email Notification on Successful Checkout

Notify the site admin when a Stripe Checkout session has been completed successfully.

add_action('gform_stripe_fulfillment', 'notify_on_checkout_success', 10, 4);

function notify_on_checkout_success($session, $entry, $feed, $form) {
    $admin_email = get_bloginfo('admin_email');
    wp_mail($admin_email, 'Payment via Stripe Checkout successful!', 'Message about the successful payment');
}

Update User Metadata on Checkout

Update user metadata with the Stripe checkout session ID after a successful checkout.

add_action('gform_stripe_fulfillment', 'update_user_metadata_on_checkout', 10, 4);

function update_user_metadata_on_checkout($session, $entry, $feed, $form) {
    $user_id = get_current_user_id();
    update_user_meta($user_id, 'stripe_checkout_session_id', $session->id);
}

Add Custom Order Notes

Add custom order notes to the entry after a successful checkout.

add_action('gform_stripe_fulfillment', 'add_custom_order_notes', 10, 4);

function add_custom_order_notes($session, $entry, $feed, $form) {
    $note = 'Custom order note';
    gform_add_note($entry['id'], $note, 'user', false);
}

Change Entry Status

Change the entry status to “Completed” after a successful checkout.

add_action('gform_stripe_fulfillment', 'change_entry_status', 10, 4);

function change_entry_status($session, $entry, $feed, $form) {
    GFAPI::update_entry_property($entry['id'], 'status', 'Completed');
}

Send Custom Data to External API

Send custom data to an external API after a successful checkout.

add_action('gform_stripe_fulfillment', 'send_data_to_external_api', 10, 4);

function send_data_to_external_api($session, $entry, $feed, $form) {
    $data = array(
        'entry_id' => $entry['id'],
        'total' => $entry['payment_amount'],
        'email' => $entry['2'], // Replace '2' with your email field ID
    );

    $response = wp_remote_post('https://your-api.example.com/endpoint', array(
        'body' => $data,
    ));
}