ساخت فیلد تایید برای فیلد دیگر (مشابه پسورد)

سلام
فرض کنید که شما یک فرمی ساختید که داخلش فیلد دلخواه مثلا فیلد تلفن دارید. حالا میخواید یک فیلد مشابه همون فیلد ایجاد کنید که کاربر این 2 تا فیلد رو دقیقا عین هم پر کنه وگرنه نتونه فرم رو ارسال کنه. دقیقا مثل فیلد ایمیل و تایید ایمیل یا فیلد پسورد و تایید پسورد که باید دقیقا یکسان پر بشن.

بازم گرویتی فرم با توجه به انعطافی که داره این مشکل رو حل کرده. ولی اگه یه درصد هم احساس میکنید که شخص مبتدی ای هستید بی خیال این آموزش بشید.

برای این کار باید کد زیر رو داخل فانکشن قالب تون قرار دارید.قبل از هر کاری از پوشه قالبتون داخل هاست یک کپی بگیرید واسه اطمینان.
فایل functions.php قالب رو باز کنید و برید دقیقا خط آخرش.
خوب دقت کنید که خط آخرش آیا علائم <? وجود داره یا نه.
اگه وجود نداشت که هیچی ولی اگه داشت حذفش کنید. دقت کنید که فقط همین عبارت که شامل یک علامت کوچکتر بزرگتری و یک علامت سوال هست رو حذف کنید نه چیز دیگه رو. حالا دقیقا بعدش کد زیر رو اضافه کنید .

add_filter('gform_validation', 'gfcf_validation');
function gfcf_validation($validation_result) {
    global $gfcf_fields;
     
    $form = $validation_result['form'];
    $confirm_error = false;
     
    if(!isset($gfcf_fields[$form['id']]))
        return $validation_result;
     
    foreach($gfcf_fields[$form['id']] as $confirm_fields) {
         
        $values = array();
         
        // loop through form fields and gather all field values for current set of confirm fields
        foreach($form['fields'] as $field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;
                 
            $values[] = rgpost("input_{$field['id']}");
             
        }
         
        // filter out unique values, if greater than 1, a value was different
        if(count(array_unique($values)) <= 1)
            continue;
         
        $confirm_error = true;
         
        foreach($form['fields'] as &$field) {
            if(!in_array($field['id'], $confirm_fields))
                continue;
             
            // fix to remove phone format instruction
            if(RGFormsModel::get_input_type($field) == 'phone')
                $field['phoneFormat'] = '';
             
            $field['failed_validation'] = true;
            $field['validation_message'] = 'Your values do not match.'; 
        }
         
    }
     
    $validation_result['form'] = $form;
    $validation_result['is_valid'] = !$validation_result['is_valid'] ? false : !$confirm_error;
     
    return $validation_result;
}
 
function register_confirmation_fields($form_id, $fields) {
    global $gfcf_fields;
     
    if(!$gfcf_fields)
        $gfcf_fields = array();
         
    if(!isset($gfcf_fields[$form_id]))
        $gfcf_fields[$form_id] = array();
     
    $gfcf_fields[$form_id][] = $fields;
}


تا اینجای کار ما یه کد کلی قرار دادیم که این قابلیت رو به گرویتی فرم اعمال کنه اما در مرحله بعدی باید بهش بگیم که دقیقا واسه کدوم فرم و کدوم فیلدها باید این دستورات اعمال بشه.
خب حالا دقیقا زیر کد بالا، کد زیر رو قرار بدید.

register_confirmation_fields(1, array(2, 3));

بجای عدد 1 باید آیدی فرمتون رو قرار بدید. بجای عدد 2 باید آیدی فیلد مورد نظرتون رو بزارید. بجای عدد 3 هم باید آیدی فیلد تایید (فیلد تکرار) رو وارد کنید.

اما اگه نمیدونید چطوری باید آیدی فرم و فیلدتون رو پیدا کنید به صورت زیر عمل کنید:
به منوی فرم ها برید و فرم مورد نظرتون رو انتخاب کنید تا ویرایش بشه. در صفحه ویرایشگر فرم بالای صفحه سمت راست، دقیقا زیر عبارت ویرایشگر فرم نوشته ID: سمت چپش هم اسم فرمتون رو نوشته. خب آیدی فرم که تا اینجا پیدا شد.

برای پیدا کردن آیدی فیلد هم توی همون صفحه ویرایش گر فرم با موس برید روی فیلد مورد نظر، حالا میبینید که بالای فیلد سمت چپ، نوشته چک باکس : شماره فیلد : …
خب شماره فیلد همون آیدی فیلد هست. آیدی فیلد ها هم که ازینجا پیدا شد.

خب دیگه کار تمومه.

به این post امتیاز دهید

15 پاسخ

  1. آقا میخوام به chekout ووکامرس وصل بشه
    یا محصول که ساختم با این در قسمت پروفایل ووکامرس سفارشات و نشون بده برای مشتری
    چه کنم؟؟

  2. با سلام
    با توجه به انعطاف زیاد این افزونه،آیا میشه یه فیلد برای تغییر رمز عبور کاربری ورود به سایت ایجاد کرد؟؟؟
    در صورت وجود میشه راهنمایی کنید.
    با تشکر

    1. سلام . برای ساخت فرم عضویت میشه از گرویتی استفاده کرد . اما برای لاگین و تغییر رمز بهتره از افزونه های دیگری استفاده بشه . نظیر همین افزونه ای که توی انجمن سایت برای ورود استفاده میکنم . تو مخزن زیاد هستن .

  3. با سلام و خسته نباشید من یه سوال داشتم از خدمتتون
    اگه من از Gravity form به عنوان ارسال خرابی لینک در یک سایت استفاده کنم
    ایا امکانش هست که پس از پر شدن یه Text box و کامل کردن توضیحات پس از ارسال ID صفحه مورد نظر یا لینک صفحه ی که فرم تو اون پر شده برای ادمین ارسال بشه؟

    1. سلام . داخل هر پیام ورودی سمت چپ صفحه زیر آی پی کاربر نوشته “قرار دادن لینک” که لینک رو نشون میده . برای ایمیل و تاییدیه هم میتونید از برچسب {embed_url} استفاده کنید .

  4. سلام
    میخواستم تمام تاییدیه های فرم (confirmation)
    در بالای سایت نمایش داده شود و در صفحه اصلی و عموم انرا ببینند
    چطور میشه اینکار کرد؟
    با
    gform_confirmation_actions
    میشه یا
    gform_confirmation
    یا راه دیگر؟

  5. سلام و خسته نباشید خدمت آقای گرویتی فرم پارسی عزیز
    با تشکر از پاسخ هاتون، لطفا اگه امکان داره راهنمایی کنید که چطوری فیلد رمز عبور رو درست کنم.

  6. ویژگی بارز و منحصر به فرد این فرم ساز، امکان ساخت و طراحی هرگونه فرم های پرداخت آنلاین کلیه بانک های عضو شتاب از طریق درگاه وب گیت و زرین گیت زرین پال، به صورت فرم های ساده، پیشرفته، شرطی و به طور هر گونه فرم پرداخت آنلاین، فقط به وسیله دراگ اند دراپ و بدون داشتن مبدل حرارتی هیچ گونه دانش فنی می باشد. این درگاه دارای سیستم گزارش و آمار پیشرفته برای مشاهده روند تغییرات تراکنش های شما بر اساس بازه های زمانی می باشد .

جدیدترین مقالات