سعید
1 سال پیش توسط سعید مطرح شد
1 پاسخ

ثبت شماره تلفن در فرم پیش فرص المنتور

سلام
من با فرم ساز المنتور وردپرس میخواهم شماره موبایل کاربرها رو ثبت کنم ولی دوتا مشکل هستش
یکی شماره تلفن میخودم بیشتر از ۱۱ رقم نشه
دوم اینکه اعتبار سنجی بشه آیا شماره درسته یا نه ؟منظور پیامک نیس اینکه مثلا جز شماره های تلفن باشه و شماره الکی نزنن


ثبت پرسش جدید
ابوالفضل زارعی
تخصص : سئو
@abolfazlzarei 1 سال پیش آپدیت شد
0

سلام قبل از اجرای موارد زیر حتما بک آپ تهیه کنید یا روی سایت تستی اعمال کنید اگر جواب داد استفاده کنید.
ابتدا کد زیر را در فایل 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 );

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام