Using Gravity Forms ‘gform_post_process’ PHP action

The gform_post_process action fires after the form processing is completed, allowing further actions to be performed. It can be used on a single-page form or when navigating between pages on a multi-page form.

Usage

add_action('gform_post_process', 'your_function_name', 10, 3);

For a specific form, use the format gform_post_process_FORMID:

add_action('gform_post_process_1', 'your_function_name', 10, 3);

Parameters

  • $form (Form Object): The form object.
  • $page_number (int): In a multi-page form, this variable contains the current page number.
  • $source_page_number (int): In a multi-page form, this parameter contains the number of the page from which the submission came.

More information

See Gravity Forms Docs: gform_post_process

Examples

Display a message based on field value

In this example, we’ll display a message if the value of field 1 is “Contact”:

add_action('gform_post_process', 'post_process_actions', 10, 3);

function post_process_actions($form, $page_number, $source_page_number) {
    // Get the value of field 1
    $field_1_value = rgpost('input_1');

    // Display message if value is "Contact"
    if ($field_1_value == 'Contact') {
        echo 'Form submitted with Contact as value in field 1';
    }
}

Redirect to a different page based on field value

This example shows how to redirect the user to different pages based on the value of a field:

add_action('gform_post_process', 'redirect_based_on_field', 10, 3);

function redirect_based_on_field($form, $page_number, $source_page_number) {
    // Get the value of field 1
    $field_1_value = rgpost('input_1');

    // Redirect based on field 1 value
    if ($field_1_value == 'Option1') {
        wp_redirect('https://example.com/option1');
        exit;
    } elseif ($field_1_value == 'Option2') {
        wp_redirect('https://example.com/option2');
        exit;
    }
}

Save submitted data to a custom database table

This example demonstrates how to save submitted form data to a custom database table:

add_action('gform_post_process', 'save_to_custom_table', 10, 3);

function save_to_custom_table($form, $page_number, $source_page_number) {
    global $wpdb;

    // Get the value of field 1
    $field_1_value = rgpost('input_1');

    // Insert data into custom table
    $wpdb->insert(
        'your_custom_table',
        array(
            'field_1_value' => $field_1_value
        )
    );
}