O Gravity Forms é com certeza o plugin mais completo para criação de formulários em Sites WordPress.
Um diferencial que este plugin tem em relação aos demais, como o contact-form 7, é a capacidade de armazenar no banco de dados todos os formulários que são preenchidos. Desta forma, você receberá os formulários preenchidos por e-mail e ainda terá um backup do formulário no site.
Porém, nem sempre é bom deixar estes formulários armazenados no seu banco de dados. Imagine um caso onde você receba informações extremamente sigilosas através dos formulários. Se alguém conseguir acesso ao seu banco de dados, isto poderá trazer diversas consequências.
Então, para remover as entradas armazenadas no Gravity Forms automaticamente após o envio de cada formulário, basta você fazer uma pequena alteração no arquivo functions.php do seu tema WordPress:
Remover entradas automaticamente no Gravity Forms 1.8 e mais recentes
Para remover as entradas, basta adicionar esta função em seu functions.php:
add_action( 'gform_after_submission', 'remove_form_entry' ); function remove_form_entry( $entry ) { GFAPI::delete_entry( $entry['id'] ); }
Veja também: Agência Alto Site Curitiba
Como apagar as entradas de notificações no Gravity Forms 1.7 e versões anteriores
add_action('gform_after_submission', 'remove_form_entry', 10, 2); function remove_form_entry($entry, $form){ global $wpdb; $lead_id = $entry['id']; $lead_table = RGFormsModel::get_lead_table_name(); $lead_notes_table = RGFormsModel::get_lead_notes_table_name(); $lead_detail_table = RGFormsModel::get_lead_details_table_name(); $lead_detail_long_table = RGFormsModel::get_lead_details_long_table_name(); //Delete from detail long $sql = $wpdb->prepare(" DELETE FROM $lead_detail_long_table WHERE lead_detail_id IN( SELECT id FROM $lead_detail_table WHERE lead_id=%d )", $lead_id); $wpdb->query($sql); //Delete from lead details $sql = $wpdb->prepare("DELETE FROM $lead_detail_table WHERE lead_id=%d", $lead_id); $wpdb->query($sql); //Delete from lead notes $sql = $wpdb->prepare("DELETE FROM $lead_notes_table WHERE lead_id=%d", $lead_id); $wpdb->query($sql); //Delete from lead $sql = $wpdb->prepare("DELETE FROM $lead_table WHERE id=%d", $lead_id); $wpdb->query($sql); }
Simples, não é mesmo?
Como remover as entradas de um único formulário?
Se você precisar excluir as entradas de um único formulário do banco de dados, basta você alterar na primeira linha o código gform_after_submission adicionando o ID do formulário no final. Se o ID do formulário for 3, por exemplo, considere alterar para gform_after_submission_3
Por hoje é isso! Se tiver alguma dúvida, deixe um comentário.