---
title: "اعتبار سنجی فیلد شماره تلفن در ویجت فرم المنتور"
url: "https://elementorfa.ir/elementor-telephone-validation/"
type: "post"
published: "2020-01-30T23:59:37+03:30"
modified: "2020-02-04T21:18:53+03:30"
author: "المنتور فارسی"
---

4.2/5 - (5 امتیاز)

در هنگام استفاده از ویجت **فرم** المنتور، زمانی که از فیلد شماره تلفن استفاده کرده باشید، متوجه شده اید که این فیلد هر نوع شماره ای از 1 رقم تا 20 رقم بدون محدودیت دریافت می کند. یعنی ممکن است کاربر شماره را به صورت 0912 ناقص وارد کند و فرم هیچ تاییدی انجام ندهد.

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

![فرمت تلفن فرم ویجت](https://elementorfa.ir/wp-content/uploads/2020/01/format-telephone-elementor.png)

در این ترفند قصد داریم تا یک فرمت اجباری به فیلد شماره تماس المنتور داده تا هنگام وارد کردن شماره توسط کاربر هیچ اشتباهی رخ ندهد.

## اعتبار سنجی فیلد شماره تلفن در ویجت فرم

### اضافه کردن کد اعتبار سنجی

ابتدا کد زیر را در فایل Function.php قالب تون در انتهای کد های دیگر قرار دهید. از مسیر wp-content/themes وارد پوشه قالب رفته و فایل function را ویرایش کنید.

بعد از قرار دادن این کد، فرمت وارد شده درفیلد شماره تلفن باید به صورت 09xxxxxxxx باشد.

```
add_action( 'elementor_pro/forms/validation/tel', function( $field, $record, $ajax_handler ) {
	//remove native validation
	/**
	 * @var \ElementorPro\Modules\Forms\Module $forms_module
	 */
	$forms_module = \ElementorPro\Plugin::instance()->modules_manager->get_modules( 'forms' );
	remove_action( 'elementor_pro/forms/validation/tel', [ $forms_module->field_types['tel'], 'validation' ] );

	// run your own validation, ex:
	if ( empty( $field['value'] ) ) {
		return;
	}
	// Match this format 09XXXXXXXX, 0912345678
	if ( preg_match( '/[0-0]{1}[9-9]{1}[0-9]{9}/', $field['value'] ) !== 1 ) {
		$ajax_handler->add_error( $field['id'], 'مطمئن شوید شماره تلفن با فرمت 09xxxxxxxx باشد, eg: 0912345678' );
	}
}, 9, 3 );

add_action( 'elementor_pro/forms/render_field/tel', function( $item, $item_index, $form ) {
	//remove native render
	/**
	 * @var \ElementorPro\Modules\Forms\Module $forms_module
	 */
	$forms_module = \ElementorPro\Plugin::instance()->modules_manager->get_modules( 'forms' );
	remove_action( 'elementor_pro/forms/render_field/tel', [$forms_module->field_types['tel'] , 'field_render' ], 10, 3 );

	// add your custom render ex:
	$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-field-textual' );
	$form->add_render_attribute( 'input' . $item_index, 'pattern', '[0-0]{1}[9-9]{1}[0-9]{9}' );
	$form->add_render_attribute( 'input' . $item_index, 'title', __( 'شماره تلفن باید با 09 شروع شود.', 'plugin-name' ) );
	echo '<input size="1" ' . $form->get_render_attribute_string( 'input' . $item_index ) . '>';
}, 9, 3 );
```

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

![تاییده شماره تلفن در المنتور](https://elementorfa.ir/wp-content/uploads/2020/01/format-telephone-elementor-validate.png)

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