Using Gravity Forms ‘gform_post_form_trashed’ PHP action

The gform_post_form_trashed action is triggered after a form is moved to trash in Gravity Forms, allowing further actions to be performed.

Usage

add_action('gform_post_form_trashed', 'my_function', 10, 1);

Parameters

  • $form_id (int): The ID of the form being moved to trash.

More information

See Gravity Forms Docs: gform_post_form_trashed

This action hook is located in forms_model.php.

Examples

Send an email notification when a form is trashed

function send_trashed_form_email($form_id) {
    // Replace with your email address
    $to = '[email protected]';
    $subject = 'Form Trashed';
    $message = "A form with ID {$form_id} has been moved to trash.";

    wp_mail($to, $subject, $message);
}
add_action('gform_post_form_trashed', 'send_trashed_form_email', 10, 1);

Log trashed form details in a custom table

function log_trashed_form($form_id) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'trashed_forms';

    $wpdb->insert($table_name, array('form_id' => $form_id, 'trashed_at' => current_time('mysql')));
}
add_action('gform_post_form_trashed', 'log_trashed_form', 10, 1);

Automatically empty trash after a form is trashed

function empty_trash_after_form_trashed($form_id) {
    GFAPI::delete_forms(array($form_id), true);
}
add_action('gform_post_form_trashed', 'empty_trash_after_form_trashed', 10, 1);

Update a custom post type metadata when a form is trashed

function update_custom_post_on_form_trashed($form_id) {
    $args = array(
        'post_type' => 'your_custom_post_type',
        'meta_query' => array(
            array(
                'key' => 'form_id',
                'value' => $form_id,
                'compare' => '='
            )
        )
    );

    $query = new WP_Query($args);

    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            update_post_meta(get_the_ID(), 'form_trashed', true);
        }
    }
    wp_reset_postdata();
}
add_action('gform_post_form_trashed', 'update_custom_post_on_form_trashed', 10, 1);

Redirect user after a form is trashed

function redirect_after_form_trashed($form_id) {
    wp_redirect(home_url('/form-trashed'));
    exit;
}
add_action('gform_post_form_trashed', 'redirect_after_form_trashed', 10, 1);