تغییر نام کاربری کاربران در وردپرس به شماره موبایل
این کد به زبان برنامهنویسی PHP نوشته شده است و برای اصلاح فرم ثبت نام کاربران در یک وبسایت با قالب وردپرس و افزونهی WooCommerce به کار میرود. در این کد، تغییر نام کاربری کاربران در وردپرس به شماره موبایل انجام میشود که توابعی ایجاد شدهاند که یک فیلد جدید به نام “شماره موبایل” به فرم ثبت نام اضافه کرده و از آن برای تعیین نام کاربری استفاده میکنند. این کد دارای چهار بخش اصلی است:
- افزودن فیلد شماره موبایل به فرم ثبت نام: در این بخش، تابع add_phone_field_to_registration_form فیلد شماره موبایل را به فرم ثبت نام در صفحهی تسویه حساب اضافه میکند. این فیلد از نوع tel بوده و مورد نیاز است. همچنین، این تابع به واسطهی add_action به فرم ثبت نام متصل میشود.
- اعتبارسنجی فیلد شماره موبایل: تابع validate_phone_field_in_registration_form مسئولیت اعتبارسنجی فیلد شماره موبایل را بر عهده دارد. اگر کاربر شماره موبایل خود را وارد نکرده باشد، پیام خطا “لطفاً شماره موبایل خود را وارد کنید” نمایش داده میشود.
- ذخیرهسازی شماره موبایل در هنگام ثبت نام: تابع save_phone_field_in_registration_form شماره موبایل را پس از ثبت نام کاربر در متا دادههای کاربر (user_meta) ذخیره میکند. این تابع نیز به واسطهی add_action به زمانی که کاربر جدید ایجاد میشود متصل میگردد.
- تغییر نام کاربری به شماره موبایل: تابع change_username_to_phone کاربریت اصلی این کد را دارد. این تابع نام کاربری را به شماره موبایل تغییر میدهد. اگر فیلد registration_phone مقدار داشته باشد، آن را به عنوان نام کاربری در نظر میگیرد. در غیر این صورت، اگر فیلد billing_phone مقداری داشته باشد، آن را به عنوان نام کاربری استفاده میکند.
تغییر نام کاربری کاربران در وردپرس به شماره موبایل
این کد قابلیتهای زیر را ارائه میدهد:
- افزودن فیلد شماره موبایل به فرم ثبت نام کاربران در صفحه تسویه حساب WooCommerce.
- اعتبارسنجی فیلد شماره موبایل برای اطمینان از وارد کردن شماره موبایل توسط کاربر.
- ذخیرهسازی شماره موبایل کاربر در بخش متا داده های کاربری پس از ثبت نام.
- تغییر نام کاربری به شماره موبایل برای استفاده به عنوان شناسه کاربری اصلی.
نحوه استفاده از این کد به شرح زیر است:
- کد را در فایل functions.php قالب فعال وردپرس خود کپی کنید.
- در صفحه تسویه حساب، فیلد شماره موبایل به فرم ثبت نام اضافه خواهد شد.
- کاربران باید شماره موبایل خود را وارد کنند تا بتوانند ثبت نام کنند.
- پس از ثبت نام، نام کاربری به شماره موبایل تغییر مییابد و شماره موبایل در بخش متا دادههای کاربر ذخیره میشود.
کاربردهای این کد عبارتند از:
- استفاده از شماره موبایل به عنوان نام کاربری: این کاربرد به ویژه در کشورهایی که استفاده از شماره موبایل به عنوان شناسه کاربری رایج است، مفید است.
- جلوگیری از ثبت نامهای تکراری: با استفاده از شماره موبایل به عنوان نام کاربری، احتمال ثبت نامهای تکراری کاهش مییابد، زیرا هر شخص باید شماره موبایل معتبری داشته باشد.
- افزایش امنیت: استفاده از شماره موبایل به عنوان نام کاربری میتواند امنیت را افزایش دهد، زیرا کاربران باید از یک شناسه منحصر به فرد استفاده کنند.
- سادگی در بازیابی رمز عبور: در صورت فراموشی رمز عبور، کاربران میتوانند به راحتی با استفاده از شماره موبایل خود رمز عبور را بازیابی کنند.
در نهایت، این سورس کد با افزودن فیلد شماره موبایل به فرم ثبت نام کاربران در صفحه تسویه حساب WooCommerce، امکان استفاده از شماره موبایل به عنوان نام کاربری را فراهم میکند. این کد همچنین از اعتبارسنجی و ذخیرهسازی شماره موبایل در بخش متا دادههای کاربر پشتیبانی میکند.
// افزودن فیلد شماره موبایل به فرم ثبت نام در صفحه تسویه حساب function add_phone_field_to_registration_form() { woocommerce_form_field( 'registration_phone', array( 'type' => 'tel', 'class' => array( 'form-row-wide' ), 'label' => __( 'شماره موبایل', 'woocommerce' ), 'required' => true, 'clear' => true, ) ); } add_action( 'woocommerce_register_form_start', 'add_phone_field_to_registration_form' ); // اعتبارسنجی فیلد شماره موبایل در فرم ثبت نام function validate_phone_field_in_registration_form( $errors ) { if ( empty( $_POST['registration_phone'] ) ) { $errors->add( 'phone_error', 'لطفاً شماره موبایل خود را وارد کنید.' ); } return $errors; } add_action( 'woocommerce_process_registration_errors', 'validate_phone_field_in_registration_form' ); // ذخیرهسازی شماره موبایل در هنگام ثبت نام کاربران function save_phone_field_in_registration_form( $customer_id ) { if ( isset( $_POST['registration_phone'] ) && ! empty( $_POST['registration_phone'] ) ) { update_user_meta( $customer_id, 'billing_phone', sanitize_text_field( $_POST['registration_phone'] ) ); } } add_action( 'woocommerce_created_customer', 'save_phone_field_in_registration_form' ); // تغییر نام کاربری به شماره موبایل در فرم ثبت نام function change_username_to_phone( $new_customer_data, $form ) { if ( isset( $_POST['registration_phone'] ) && ! empty( $_POST['registration_phone'] ) ) { $new_customer_data['user_login'] = sanitize_text_field( $_POST['registration_phone'] ); } elseif ( isset( $_POST['billing_phone'] ) && ! empty( $_POST['billing_phone'] ) ) { $new_customer_data['user_login'] = sanitize_text_field( $_POST['billing_phone'] ); } return $new_customer_data; } add_filter( 'woocommerce_new_customer_data', 'change_username_to_phone', 10, 2 );
همچنین در صورتی که فیلد شماره تماس توسط سایر پلاگین ها در صفحه تسویه حساب فراخوانی شده از کد پایین استفاده نمایید.
// تغییر نام کاربری به شماره موبایل هنگام ثبتنام در ووکامرس function change_username_to_billing_phone( $new_customer_data, $form ) { // میتوانید این بخش را برای بررسی موجودیت فیلد billing_phone بهروزرسانی کنید if ( isset( $_POST['billing_phone'] ) && ! empty( $_POST['billing_phone'] ) ) { $new_customer_data['user_login'] = sanitize_text_field( $_POST['billing_phone'] ); } return $new_customer_data; } add_filter( 'woocommerce_new_customer_data', 'change_username_to_billing_phone', 10, 2 );
در صورتی که میخواهید فیلد ایمیل از صفحه تسویه حساب حذف گردد مقاله حذف ایمیل از تسویه حساب ووکامرس را مشاهده کنید.
لازم به ذکر است در صورتی که قصد دارید بعد از خرید از ووکامرس برای کاربر خود حساب کاربری ایجاد نمایید از کد زیر استفاده کنید.
// افزودن فیلد رمز عبور و تکرار رمز عبور به صفحه تسویه حساب برای کاربران غیر وارد شده add_action('woocommerce_checkout_fields', 'add_password_field_to_checkout'); function add_password_field_to_checkout($fields) { if (!is_user_logged_in()) { $fields['billing']['account_password'] = array( 'type' => 'password', 'label' => __('رمز حساب کاربری (در آینده برای ورود به حساب کاربری خود از این رمز استفاده کنید)', 'woocommerce'), 'required' => true, 'class' => array('form-row-wide'), 'clear' => true, ); $fields['billing']['account_password_confirm'] = array( 'type' => 'password', 'label' => __('تکرار رمز حساب کاربری', 'woocommerce'), 'required' => true, 'class' => array('form-row-wide'), 'clear' => true, ); } return $fields; }
همچنین ببیند: افزودن تب ویدیوها به محصولات مجازی ووکامرس