Using Gravity Forms ‘gform_suppress_confirmation_redirect’ PHP filter

The gform_suppress_confirmation_redirect filter allows you to suppress the default page or redirect confirmation type behavior after form submission.

Usage

To apply the filter to all forms, use the following code:

add_filter('gform_suppress_confirmation_redirect', '__return_true');

Parameters

  • $suppress_redirect (bool): Indicates whether the confirmation redirect header should be suppressed. Defaults to false.

More information

See Gravity Forms Docs: gform_suppress_confirmation_redirect

This filter was added in Gravity Forms version 2.3 and should be placed in the functions.php file of your active theme.

Source code location:

  • form_display.php: GFFormDisplay::process_form() and GFFormDisplay::handle_confirmation()
  • api.php: GFAPI::submit_form()

Examples

Suppress redirect for a specific form

Suppress the confirmation redirect for form ID 5:

add_filter('gform_suppress_confirmation_redirect', function ($suppress_redirect, $form) {
    if ($form['id'] == 5) {
        return true;
    }
    return $suppress_redirect;
}, 10, 2);

Open redirect in a new tab

Override the default behavior to open the redirect in a new tab:

add_filter('gform_confirmation', function ($confirmation, $form) {
    if (isset($confirmation['redirect'])) {
        $confirmation['redirect'] = 'javascript:window.open("' . $confirmation['redirect'] . '");';
    }
    return $confirmation;
}, 10, 2);

add_filter('gform_suppress_confirmation_redirect', '__return_true');

Suppress redirect based on user role

Suppress the confirmation redirect for users with the ‘subscriber’ role:

add_filter('gform_suppress_confirmation_redirect', function ($suppress_redirect) {
    if (current_user_can('subscriber')) {
        return true;
    }
    return $suppress_redirect;
});

Suppress redirect for a specific form field value

Suppress the confirmation redirect for form ID 7 when a specific field (field ID 2) has the value ‘No Redirect’:

add_filter('gform_suppress_confirmation_redirect', function ($suppress_redirect, $form) {
    if ($form['id'] == 7 && rgpost('input_2') == 'No Redirect') {
        return true;
    }
    return $suppress_redirect;
}, 10, 2);

Display a custom message instead of redirect

Suppress the redirect confirmation and display a custom message for form ID 12:

add_filter('gform_suppress_confirmation_redirect', function ($suppress_redirect, $form) {
    if ($form['id'] == 12) {
        return true;
    }
    return $suppress_redirect;
}, 10, 2);

add_filter('gform_confirmation', function ($confirmation, $form) {
    if ($form['id'] == 12) {
        $confirmation = '<div class="alert alert-success">Thank you! Your submission has been received.</div>';
    }
    return $confirmation;
}, 10, 2);