The gform_post_form_deactivated is an action in Gravity Forms that gets triggered once an active form is set as inactive. This opens an opportunity to execute additional actions.
Usage
Here’s a basic example of how you can use the gform_post_form_deactivated action:
add_action( 'gform_post_form_deactivated', 'my_custom_deactivation_function', 10, 1 );
function my_custom_deactivation_function( $form_id ) {
// your custom code here
return $form_id;
}
Parameters
$form_id (int): The ID of the form that is being switched to inactive.
More Information
See Gravity Forms Docs: gform_post_form_deactivated
This action hook is found in the forms_model.php file.
Examples
Logging Form Deactivation
This code logs a message every time a form is deactivated.
add_action( 'gform_post_form_deactivated', 'log_form_deactivation', 10, 1 );
function log_form_deactivation( $form_id ) {
error_log("Form with ID: {$form_id} has been deactivated");
}
Send Email Notification
This code sends an email notification when a form is deactivated.
add_action( 'gform_post_form_deactivated', 'email_notify_form_deactivation', 10, 1 );
function email_notify_form_deactivation( $form_id ) {
wp_mail('[email protected]', 'Form Deactivated', "Form with ID: {$form_id} has been deactivated");
}
Update Post Status
This code updates the associated post’s status to ‘draft’ when a form is deactivated.
add_action( 'gform_post_form_deactivated', 'update_post_status_on_deactivation', 10, 1 );
function update_post_status_on_deactivation( $form_id ) {
// Assuming the form ID is the same as the Post ID
wp_update_post(array(
'ID' => $form_id,
'post_status' => 'draft'
));
}
Deleting Transient on Deactivation
This code deletes a transient related to the form when it’s deactivated.
add_action( 'gform_post_form_deactivated', 'delete_form_transient', 10, 1 );
function delete_form_transient( $form_id ) {
delete_transient( "form_{$form_id}_data" );
}
Removing Form-related Options
This code removes options related to the deactivated form.
add_action( 'gform_post_form_deactivated', 'remove_form_options', 10, 1 );
function remove_form_options( $form_id ) {
delete_option( "form_{$form_id}_settings" );
}