The gform_after_save_form action hook in Gravity Forms is used to perform specific actions immediately after a form is created or updated.
Usage
Here’s a basic example of using this action:
add_action( 'gform_after_save_form', 'my_custom_function', 10, 2 ); function my_custom_function( $form, $is_new ) { // your custom code here return $form; }
Parameters
- $form (Form Object): This represents the current form.
- $is_new (bool): This variable is true if a new form is being created, and false if an existing form is being updated.
More information
For additional details, refer to the Gravity Forms Docs: gform_after_save_form
This action hook is found in GFFormDetail::save_form_info()
in form_detail.php
.
Examples
Logging form creation or update
In this case, an entry is added to a log file when a form is updated or created.
add_action( 'gform_after_save_form', 'log_form_saved', 10, 2 ); function log_form_saved( $form, $is_new ) { $log_file = ABSPATH . '/gf_saved_forms.log'; $f = fopen( $log_file, 'a' ); $user = wp_get_current_user(); if ( $is_new ) { fwrite( $f, date( 'c' ) . " - Form created by {$user->user_login}. Form ID: {$form["id"]}. n" ); } else { fwrite( $f, date( 'c' ) . " - Form updated by {$user->user_login}. Form ID: {$form["id"]}. n" ); } fclose( $f ); }
Adding default fields on form creation
This example illustrates how to add default fields to the form when creating new forms.
add_action( 'gform_after_save_form', 'add_default_fields', 10, 2 ); function add_default_fields( $form, $is_new ) { if ( $is_new ) { $form['fields'] = array( array( 'type' => 'hidden', 'label' => 'First Name', 'id' => 1, 'defaultValue' => '{user:first_name}', 'formId' => $form['id'], ), array( 'type' => 'hidden', 'label' => 'Email', 'id' => 2, 'defaultValue' => 'user:user_email', 'formId' => $form['id'], ), ); GFAPI::update_form( $form ); } }
Setting default notification properties
This example demonstrates how you can set default notification properties when creating new forms.
add_action( 'gform_after_save_form', 'set_default_notification_to', 10, 2 ); function set_default_notification_to( $form, $is_new ) { if ( $is_new ) { foreach ( $form['notifications'] as &$notification ) { $notification['to'] = '[email protected]'; } $form['is_active'] = '1'; GFAPI::update_form( $form ); } }