تنظیم الگو فیلد شماره موبایل در گرویتی فرم (Gravity Forms)

در گرویتی فرم، تنظیم الگو (Pattern) برای فیلد شماره موبایل یکی از چالش‌های رایج کاربران ایرانی است. دلیل اصلی این مشکل، عدم پشتیبانی پیش‌فرض گرویتی فرم از فرمت شماره‌های ایرانی، تنوع روش وارد کردن شماره (با صفر، بدون صفر، با کد کشور یا با اعداد فارسی) و نبود قابلیت اعتبارسنجی پیشرفته در نسخه پایه افزونه است.

در این مقاله یاد می‌گیرید چگونه با استفاده از regex، فیلد متنی و یک اسکریپت ساده جاوااسکریپت، شماره موبایل را به‌درستی اعتبارسنجی و به‌صورت استاندارد ذخیره کنید.

فهرست محتوا

فیلد شماره موبایل چیست؟

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

در فرم‌سازهای وردپرس مانند گرویتی فرم (Gravity Forms)، تعریف صحیح این فیلد نقش کلیدی در دریافت اطلاعات معتبر دارد.

مشکل ثبت شماره موبایل ایران در گرویتی فرم چیست؟

یکی از چالش‌های کاربران ایرانی در گرویتی فرم، عدم پشتیبانی پیش‌فرض از فرمت شماره موبایل ایران است. به‌طور پیش‌فرض، گرویتی فرم برای شماره‌های آمریکایی یا کانادایی بهینه‌سازی شده، و شماره‌هایی مثل 0912xxxxxxx را به‌درستی اعتبارسنجی نمی‌کند.

مشکلات رایج فیلد شماره موبایل در گرویتی فرم:

  • پشتیبانی نکردن از شماره‌هایی که با 09 شروع می‌شوند.
  • وارد کردن شماره با فرمت‌های مختلف: با صفر، بدون صفر، با +98، با اعداد فارسی.
  • نبود الگوی آماده یا ماسک ورودی مناسب.
  • ناآشنایی کاربران با regex یا عبارت‌های باقاعده برای حل این مشکل…

در ادامه ۲ روش برای رفع مشکل ثبت شماره موبایل های ایران در فیلد شماره گرویتی فرم را به شما آموزش میدهیم…

روش اول: استفاده از ماسک ورودی ویژه در گرویتی فرم

گرویتی فرم قابلیتی با نام ماسک ورودی (Input Mask) در فیلدهای متنی ارائه می‌دهد؛ این روش بدون کد نویسی بوده و با تغییر در تنظیمات گرویتی فرمز انجام میشود:

مراحل تنظیم ماسک فیلد شماره موبایل

۱. یک فیلد متن تک‌خطی به فرم اضافه کنید.
۲. در تب «عمومی»، گزینه ماسک ورودی را فعال کنید.
۳. گزینه «ویژه» را انتخاب کنید.
۴. در فیلد نمایش‌داده‌شده، الگوی زیر را وارد کنید:

				
					99999999999
				
			

این الگو شماره‌ای با ۱۱ رقم را می‌پذیرد، که با شماره موبایل ایرانی مطابق است.

قوانین ساخت ماسک

نماد کاربرد مثال
9 عدد اجباری 99999999999 ← برای شماره موبایل مثل 09121234567
a حروف الفبا aaa-aaa ← برای کد فعال‌سازی متنی
* عدد یا حرف ***-*** ← ترکیبی از حروف و اعداد
? کاراکتر اختیاری 99999?-9999 ← هم 23462 و هم 23462-4062 قابل قبول است

توضیح بیشتر جدول قوانین ساخت ماسک برای فیلد شماره موبایل در گرویتی فرم:

  • از عدد ۹ برای تعیین کاراکترهای عددی استفاده کنید.
    • مثال: برای فرمتی مثل «09112223333» باید الگو را «99999999999» وارد کنید، و برای فرمت «3333-222-0911» الگو را به‌صورت «9999-999-9999» تعیین کنید. هر «9» نشان‌دهنده یک عدد اجباری است.
  • از حرف a برای تعیین کاراکترهای الفبایی استفاده کنید.
    • مثال: برای فرمت کد فعال‌سازی مثل «ase-scbnt-yUoxo»، از الگوی «aaa-aaaaa-aaaaa» استفاده کنید. هر «a» نشان‌دهنده یک حرف الفبایی است.
  • از **علامت *** برای نمایش کاراکترهای الفبایی یا عددی استفاده کنید.
    • مثال: اگر کد فعال‌سازی می‌تواند شامل اعداد و حروف باشد، از الگوی «-*» استفاده کنید.
  • از علامت ؟ برای کاراکترهای اختیاری بهره ببرید.
    • مثال: اگر بخشی از الگو اختیاری است، قبل از آن علامت «؟» قرار دهید؛ مانند «99999?-9999»، که هم «23462» و هم «23462-4062» را می‌پذیرد.
  • همه کاراکترهای غیر از ۹، a، * و ؟ به همان شکل که وارد شده‌اند، نمایش داده می‌شوند.

روش دوم: استفاده از Regex برای فیلد شماره موبایل

برای کنترل دقیق‌تر روی صحت شماره موبایل، می‌توانید از الگوی regex در یک فیلد متن استفاده کنید. این روش برای کاربران حرفه ای تر که با کدنویسی آشنایی دارند پشنهاد میشود.

مراحل تنظیم Regex فیلد شماره موبایل

۱. افزودن یک فیلد متن (Text) از نوع تک‌خطی.
۲. فعال‌سازی گزینه Pattern و وارد کردن الگو:

				
					pattern="^09\d{9}$"
title="شماره موبایل باید با 09 شروع شده و ۱۱ رقم باشد"
				
			

۳. افزودن اسکریپت جاوااسکریپت برای تبدیل اعداد فارسی به انگلیسی:

نکته: حتماً input_1 را با name یا id دقیق فیلد شماره موبایل در فرم‌تان جایگزین کنید.

				
					<script>
document.addEventListener('DOMContentLoaded', function () {
  const mobileField = document.querySelector('input[name="input_1"]'); // جایگزین کن با ID فیلد خودت
  if (mobileField) {
    mobileField.addEventListener('input', function () {
      this.value = this.value.replace(/[۰-۹]/g, d => '۰۱۲۳۴۵۶۷۸۹'.indexOf(d));
    });
  }
});
</script>
				
			

اسکریپت تبدیل اعداد فارسی به انگلیسی را کجا وارد کنیم؟

شما باید کد زیر را در همان صفحه‌ای قرار دهید که فرم گرویتی نمایش داده می‌شود. برای این کار، ساده‌ترین روش این است:

۱ . به صفحه‌ای که فرم شما در آن قرار دارد (مثلاً «تماس با ما» یا «ثبت‌نام») بروید.

۲. در انتهای فرم یا پایین صفحه، یک بلوک HTML (در گوتنبرگ یا المنتور) اضافه کنید.

۳. کد جاوا اسکریپت بالا را در آن قرار دهید.

Picture of اردلان کتابچی
اردلان کتابچی
0 0 رای ها
Article Rating
اشتراک در
اطلاع از

0 Comments
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x