بایگانی برچسب: s

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

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

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

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

اومدم از

قسمت نمایش

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

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

بالا سمت چپ سمت چپ فایل توابع پوسته 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)