فرمها در هر سایتی از اهمیت بسیاری برخوردارند و نقطه شروعی برای ارتباط با مشتریان بالقوه خواهند بود. شیوههای متفاوتی برای پیادهسازی فرمها در سایتهای وردپرسی وجود دارد. معمولا مشکل موجود در استفاده از پلاگینهای فرمساز اعتبارسنجی شماره تلفنهای دریافتی بر اساس ساختار شماره تلفنهای ایرانی است. در این مقاله به معرفی یک روش ساده برای اعتبار سنجی فیلد شماره تلفن در فرم المنتور بصورت ابتدایی و بر اساس پترن میپردازیم.
فرمسازها
طراحان سایت معمولا از پلاگینهای مختلف فرمساز مانند Gravity Forms یا WPForms و یا سایر پلاگینهای موجود دیگر استفاده میکنند. بسیاری از صفحهسازها مانند المنتور بصورت پیشفرض دارای فرمساز هستند. تجربه ما نشان داده است که هرچند دریافت ایمیل در سطح بین المللی بسیار کارآمد هست، در ایران دریافت شماره تلفن بسیار مفیدتر از جذب ایمیل میباشد.
مشکل اساسی دریافت شماره تلفن در اعتبارسنجی آن می باشد. بعضی از فرمسازها مانند گرویتی فرمز از پلاگینهایی برخوردار هستند که به آنها اجازه میدهد شماره تلفنهای ایرانی را ازطریق پترن و یا با ارسال رمز یکبار مصرف اعتبار سنجی کنند. هرچند که استفاده از این پلاگینها شاید برای هر سایتی مفید نباشد. بسیار از طراحان ترجیح میدهند به جای استفاده از پلاگینهای ثالث که میتواند موجب کاهش سرعت سایت شود از ظرفیتهای پیشفرض صفحهسازهایی مانند المنتور استفاده کنند.
در این مقاله قطعه کد کوتاهی در اختیار شما قرار خواهد گرفت که با استفاده از آن میتوانید به کمک پترن regex نسبت به اعتبار سنجی فیلد شماره تلفن در فرم المنتور اقدام کنید.
کد اعتبارسنجی فیلد شماره تلفن در فرم المنتور
برای استفاده از قطعه کد زیر کافیست آن را به کمک پلاگین WPCode در سایت خود قرار دهید و یا آن را به functions.php اضافه کنید. برای اطمینان از جلوگیری بروز خطا در عملکرد سایت روش اول پیشنهاد میشود.
add_action( 'elementor_pro/forms/validation/tel', function( $field, $record, $ajax_handler ) {
// Match the Persian phone number format: 09XXXXXXXXX, e.g., 09123456789
if ( preg_match( '/^09[0-9]{2}[0-9]{3}[0-9]{4}$/', $field['value'] ) !== 1 ) {
$ajax_handler->add_error( $field['id'], 'لطفاً مطمئن شوید که شماره تلفن به فرمت 09XXXXXXXXX است، برای مثال:<br> 09123456789' );
}
}, 10, 3 );
نحوه عملکرد کد اعتبارسنجی فیلد شماره تلفن در فرم المنتور
این قطعه کد با ارسال یک در خواست ajax اقدام به اعتبار سنجی شماره تلفن میکند. در صورتی که می خواهید این قطعه کد را بر اساس منطقه جغرافیایی مورد نظر خود تغییر دهید کافی است پترن زیر را بر اساس پترن مورد نظر خود تغییر دهید.
'/^09[0-9]{2}[0-9]{3}[0-9]{4}$/'
همینطور میتوانید ارور نمایشی را بر اساس نظر خودر در بخش add_error تغییر دهید.
$ajax_handler->add_error( $field['id'], 'لطفاً مطمئن شوید که شماره تلفن به فرمت 09XXXXXXXXX است، برای مثال:<br> 09123456789' );
جمعبندی
در این مقاله قطعه کد کوتاهی برای شما ارائه شد که با استفاده از آن میتوانید نسبت به اعتبار سنجی اولیه شماره تلفنهای ایرانی در فرم المنتور اقدام کنید. هرچند که در زمان بارگذاری این مقاله هنوز راهی برای اعتبار سنجی مستقیم از طریق OTP و یا ارسال رمز یکبار مصرف وجود ندارد و برای استفاده از OTP نیاز به استفاده از پلاگینهای دیگری مانند Digits میباشد. در صورتی که میخواهید از این قطعه کد در یک محیط توسعه وردپرس بصورت لوکال و با مصرف منابع سیستمی پایین تست بگیرید میتوانید مقاله ما با موضوع راه اندازی محیط توسعه تحت داکر برای وردپرس را بخوانید.