حذف ایمیل از تسویه حساب ووکامرس
یکی از مواردی که افراد حتما به آن برخورد میکنند حذف ایمیل از تسویه حساب ووکامرس است، به صورت کلی برای محصولات مجازی در وردپرس نوشتن ایمیل و ثبت ایمیل کاربر الزامی است و اگر شما فیلد ایمیل را از تسویه حساب حذف کنید با ارور
همچنین ببینید: آموزش پیکربندی ووکامرس
صورتحساب آدرس ایمیل یک گزینه الزامی است.
روبرو میشوید.
توجه کنید برای کارکرد این کد باید، حتما شماره تماس کاربر را دریافت کنید ! و فیلد billing_phone در تسویه حساب باشد.
حذف ایمیل از تسویه حساب ووکامرس
برای ساخت ایمیل فیک هنگام ثبت سفارش و ثبت نام کاربر در وب سایت شما کدی برای شما آماده کردیم که به شرح زیر میباشد.
کد فوق یک تابع به نام add_custom_js_to_checkout در سیستم مدیریت محتوای وردپرس تعریف میکند که جاوااسکریپتی را به پایین صفحه اضافه میکند. این کد جاوااسکریپت دو عملکرد اصلی دارد:
- وقتی کاربر شماره تلفن را در فیلد billing_phone وارد میکند، این کد یک آدرس ایمیل مرتبط با آن در فیلد billing_email پر میکند. برای این کار، کد به آدرس ایمیل “@gmail.com” اضافه میکند.
- وقتی کاربر یک آدرس ایمیل مرتبط با Gmail در فیلد billing_email وارد میکند، این کد شماره تلفن مرتبط را در فیلد billing_phone پر میکند. برای این کار، کد “@gmail.com” را از آدرس ایمیل حذف میکند.
این کد مزایایی دارد که در ادامه بررسی میکنیم:
- بهبود تجربه کاربر: این کد با پر کردن خودکار فیلدهای شماره تلفن و ایمیل، کاربر را از ورود اطلاعات تکراری بینیاز میکند و به تجربه کاربری بهتری منجر میشود.
- کاهش خطاهای ورودی: کاربران ممکن است به سادگی اطلاعات نادرستی را در فیلدها وارد کنند. با پر کردن خودکار این فیلدها، این کد به کاهش خطاهای ورودی کمک میکند.
- سفارشیسازی آسان: با توجه به این که این کد در قالب تابعی در وردپرس قرار دارد، میتوانید آن را به راحتی در قالبهای مختلف استفاده و سفارشی کنید.
با این حال، این کد نیز ممکن است چالشهایی داشته باشد:
- امکان تداخل با قالبهای دیگر: این کد ممکن است با قالبهای دیگر یا افزونههای وردپرس تداخل داشته باشد و به درستی کار نکند.
تمامی کدها را باید به فایل functions.php قالب خود یا چایلد تم خود اضافه کنید.
function add_custom_js_to_checkout() { ?> <style> p#billing_email_field { display: none; } </style> <script type="text/javascript"> jQuery(document).ready(function($) { $("#billing_phone").on("input", function() { var phone = $(this).val(); var email = phone + "@gmail.com"; $("#billing_email").val(email); }); $("#billing_email").on("input", function() { var email = $(this).val(); if (email.endsWith("@gmail.com")) { var phone = email.substring(0, email.length - "@gmail.com".length); $("#billing_phone").val(phone); } }); }); </script> <?php } add_action('wp_footer', 'add_custom_js_to_checkout');
با این تغییر، عنصر p#billing_email_field در صفحه پنهان خواهد شد. اما لازم به ذکر است که پنهان کردن این عنصر ممکن است در برخی موارد منجر به مشکلات کاربردی شود. بنابراین، قبل از اعمال این تغییر، میتوانید نیازمندیهای کاربران خود را بررسی کنید و بر اساس آن تصمیم بگیرید.
همچنین در صورتی که نیاز دارد فیلد ایمیل در صورتحساب باشد و اگر کاربر خواست ایمیل خود را بنویسید این قابلیت را داشته باشد، کافی است css زیر را از کد حذف کنید.
<style> p#billing_email_field { display: none; } </style>
با این کار کاربر ایمیل فیک را مشاهده میکند و در صورت نیاز میتواند آن را ویرایش کند.
لازم به ذکر است باید قبل از انجام این عمل به کاربر اعلام کنید که نام کاربر شماره تماس کاربر است و نه ایمیل کاربر و همچنین باید عملیات تغییر نام کاربر ورود کاربر را شماره موبایل کاربر انتخاب کنید.
برای این عمل مطلبی را داریم با عنوان تغییر نام کاربری کاربران در وردپرس به شماره موبایل .
نکته: توجه کنید که عملیات تغییر نام کاربری کاربران در وردپرس به شماره موبایل و حذف ادرس ایمیل بیشتر برای وب سایت هایی کاربرد دارد که امکان ثبت نام عادی در آنها نیست و تنها برای وب سایت هایی کاربرد دارد که در هنگام اولین خرید کاربر از فروشگاه کاربر را عضو وب سایت میکنند.
لازم به ذکر است در صورتی که قصد دارید بعد از خرید از ووکامرس برای کاربر خود حساب کاربری ایجاد نمایید از کد زیر استفاده کنید.
// افزودن فیلد رمز عبور و تکرار رمز عبور به صفحه تسویه حساب برای کاربران غیر وارد شده 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; }
دمت گرم خیلی عالی بود
پر روزی باشین