محدود کردن فرم گراویتی‌فرمز به کد ملی‌های مشخص شده

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

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

کد فرم و کد فیلد رو درنظر داشته باشید بعدن لازمشون داریم.

اومدم از

قسمت نمایش

قسمت ویرایشگر پوسته

از بالا سمت چپ قالب فعالم رو انتخاب کردم

بالا سمت چپ سمت چپ فایل توابع پوسته functions.php رو انتخاب کردم

و کد زیر رو کپی کردم.

try {
	function validate_code( $result, $value, $form, $field){
		$g3=array('1234567890', '1234567898', '2345678909' )
		if (in_array($value,$g3) ){}
		else {
			$result['is_valid'] = false;
			$result['message'] = "شما در این گروه نیستید";
			}
	return $result;
		}
	add_filter( 'gform_field_validation_4_35', 'validate_code', 10, 4 );
	}
catch (Exception $e) {var_dump($e);}

داخلش یه آرایه هست از کد ملی ها. البته من سه هزارتا کد ملی داشتم.

$g3=array('1234567890', '1234567898', '2345678909' )

پایین هم برای add_filter به ترتیب شماره فرمم و شماره فیلدم رو قرار دادم. اون ده و چهار آخر خط هم مال اولویت فیلتر هستن فک کنم.

add_filter( 'gform_field_validation_4_35', 'validate_code', 10, 4 );

حالا اگه کد ملی توی لیست نباشه خطا می‌گیریم

چند تا نکته:

  1. وقتی قالبتون رو به روز کنید فانکشنتون پاک میشه!
  2. برای نگه داشتن فانکشنتون بعد از به روز شدن قالب خیلی راحت یه قالب فرزند درست کنید. من فقط برای یک روز نیازش داشتم به همین خاطر بهم اهمیتی نداشت.
  3. ساختن فایل افزونه حتی از ساختن قالب فرزند هم ساده تره.

پسندها(1)شاکی(0)

2 دیدگاه در “محدود کردن فرم گراویتی‌فرمز به کد ملی‌های مشخص شده

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

    پسندها(0)شاکی(0)
    1. من قبلن یه افزونه نوشتم که میشه باهاش این کار رو کرد. نمیدونم هنوز جواب میده یا نه.
      از اینجا دانلود کن.
      https://notabug.org/wp/geforms-regex-validator/
      اگه درمورد رجکس هم آشنایی نداری این ویدیو رجکس جادی رو ببین
      http://69b.ir/jrgx

      پسندها(0)شاکی(0)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.