در وردپرس و افزونه تماس گراویتی فرمزGravity Forms بطور عادی هربار که کاربری فرم را کامل و ارسال نماید، در زیرمجموعه قسمت “فرم ها” و بخش “صندوق ورودی” اطلاعات ارسال شده را مشاهده خواهید کرد. گاهی اوقات قصد دارید از گراویتی فرم به دلیل امکانات بالای آن برای مواردی مانند “صفحه ارسال مطلب توسط کاربران” استفاده کنید و یا اینکه بر اساس نیاز خود تنها تمایل دارید از طریق ایمیل از دریافت پیام های جدید آگاه شوید و قصد دارید مانع ذخیره اطلاعات ارسالی روی دیتابیس سایت خود شوید.

در حالت عادی این کار امکان پذیر نیست و تمامی اطلاعات و فرم ها در صندوق ورودی همان فرم ذخیره می شوند اما با یک کد ساده می توانیم مانع از ذخیره شدن اطلاعات ارسالی فرم خاصی در سایتمان شویم.

برای اینکار، کافیست فایل functions.php قالبتان را باز کنید و کد زیر را در آن قرار دهید: (توجه کد زیر مخصوص نسخه 1.8 به بالا است)

add_action( 'gform_after_submission_1', 'statfox_remove_form_entry' );
function statfox_remove_form_entry( $entry ) {
    GFAPI::delete_entry( $entry['id'] );
}

تنظیمات:

  • کد بالا بسیار ساده اما مفید است و تنها بخشی که باید آن را تغییر دهید، آی دی فرم موردنظرتان است. در خط اول کد بالا عبارت gform_after_submission_1 را مشاهده می کنید. عدد 1 در این فرم اشاره به آی دی فرم موردنظر ما دارد. اگر به صفحه فرم های ساخته شده با افزونه گراویتی فرمز در پیشخوان سایت خود مراجعه کنید و فرم مورد نظر را در حالت ویرایش باز کنید، در قسمت آدرس صفحه عبارتی مانند id=5 مشاهده خواهید کرد که شما باید همین آی دی را بجای عدد 1 در کد بالا جایگزین کنید.
  • پس از قرار دادن این کد، اطلاعات جدیدی که کاربران ارسال می کنند در بخش صندوق ورودی و دیتابیس سایت شما ثبت نخواهد شد.

کد قبلی مخصوص نسخه 1.8 افزونه گراویتی فرم و نسخه های جدیدتر از آن بود، اگر از نسخه 1.7 یا نسخه های پایین تر از آن استفاده می کنید، باید بجای کد بالا از این کد استفاده کنید:

add_action('gform_after_submission_1', 'statfox_remove_form_entry', 10, 2);
function statfox_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);
 
}