همانطور که میدانید، در صفحه تسویه حساب / پرداخت ووکامرس، یک گزینه قرار دارد که به کاربر مهمان اجازه میدهد با تیکزدن آن، یک حساب کاربری برای خود ایجاد کند. اما مسئله اینجاست که این فرآیند به عهده کاربر مهمان است و اغلب اتفاق میافتد که کاربران مهمان این گزینه را فعال نمیکنند. پس ممکن است شما بخواهید به صورت خودکار کاربر مهمان در سایت شما با استفاده از ایمیل یا شماره تلفن ثبت نام شود.
در ادامه ما نحوه ثبت نام خودکار کاربر مهمان در صفحه پرداخت ووکامرس با استفاده از ایمیل یا شماره موبایل را آموزش می دهیم.
ثبت نام خودکار در برگه تسویه حساب ووکامرس
اگر میخواهید گزینه “میخواهید یک حساب کاربری ایجاد کنید” را از برگه تسویه حساب حذف کنید و همچنین ثبت نام کاربر مهمان به صورت خودکار انجام شود، باید مراحل زیر را انجام بدید:
اول از همه شما باید گزینه “میخواهید یک حساب کاربری ایجاد کنید” را از برگه تسویه حساب حذف کنید و برای اینکار باید در پیشخوان وردپرس به قسمت ووکامرس » پیکربندی » حفظ حریم خصوصی حسابهای کاربری مراجعه کنید و تیک گزینه “به مشتری هنگام پرداخت اجازه ایجاد حساب کاربری دهید” را بردارید:
فراموش نکنید که تنظیمات را ذخیره کنید.
پس از انجام این کار به وسیله قطعه کدهایی که در ادامه آورده شده است می توانید تنظیم کنید تا به صورت خودکار ثبت نام با ایمیل یا شماره موبایل در سایت شما انجام شود.
ثبت نام خودکار در صفحه پرداخت ووکامرس با استفاده از ایمیل
اگر می خواهید کاربر با استفاده از ایمیل، به صورت خودکار با خرید در سایت شما ثبت نام شود، قطعه کد زیر را به فایل function.php قالب وردپرس فعال سایت خود اضافه کنید:
/** * @snippet Register Guest Users @ WooCommerce Checkout * @author ThemeFars * @testedwith WooCommerce 6 */ add_action( 'woocommerce_thankyou', 'themefars_register_guests', 9999 ); function themefars_register_guests( $order_id ) { // Get order info and get customer email for registering $order = wc_get_order( $order_id ); $email = $order->get_billing_email(); if ( ! email_exists( $email ) && ! username_exists( $email ) ) { $customer_id = wc_create_new_customer( $email, '', '', array( 'first_name' => $order->get_billing_first_name(), 'last_name' => $order->get_billing_last_name(), )); if ( is_wp_error( $customer_id ) ) { throw new Exception( $customer_id->get_error_message() ); } // Auto set cookie for new user wc_update_new_customer_past_orders( $customer_id ); wc_set_customer_auth_cookie( $customer_id ); } else { // Auto set cookie for existing user $user = get_user_by( 'email', $email ); wc_update_new_customer_past_orders( $user->ID ); } }
با انجام اینکار پس از اینکه کاربر روی دکمه پرداخت کلیک می کند به صورت خودکار با استفاده از ایمیل وارد شده یک حساب کاربری ساخته خواهد شد.
ثبت نام خودکار در صفحه پرداخت ووکامرس با استفاده از شماره تلفن همراه
اگر می خواهید کاربر با استفاده از شماره موبایل، به صورت خودکار با خرید در سایت شما ثبت نام شود، قطعه کد زیر را به فایل function.php قالب وردپرس فعال سایت خود اضافه کنید:
/** * @snippet Register Guest Users @ WooCommerce Checkout By Billing Phone (Digits) * @author ThemeFars * @testedwith WooCommerce 6 */ add_action( 'woocommerce_thankyou', 'themefars_register_guests_by_phone', 9999 ); function themefars_register_guests_by_phone( $order_id ) { $country_code = "+98"; // default country code // Get order info and get customer email for registering $order = wc_get_order( $order_id ); $email = $order->get_billing_email(); // phone $phone_no = substr( $order->get_billing_phone(), 1 ); $phone = $country_code . $phone_no; if ( ! username_exists( $phone ) ) { $customer_id = wp_insert_user([ 'user_login' => $phone, 'first_name' => $order->get_billing_first_name(), 'last_name' => $order->get_billing_last_name(), 'user_email' => ( !empty( $email ) ) ? $email : '' ]); if ( is_wp_error( $customer_id ) ) { throw new Exception( $customer_id->get_error_message() ); } // update digits user meta update_user_meta($customer_id, 'digits_phone_no', $phone_no ); update_user_meta($customer_id, 'digits_phone', $phone ); update_user_meta($customer_id, 'digt_countrycode', $country_code ); // Auto set cookie for new user wc_update_new_customer_past_orders( $customer_id ); wc_set_customer_auth_cookie( $customer_id ); } else { // Auto set cookie for existing user $user = get_user_by('login', $phone ); wc_update_new_customer_past_orders( $user->ID ); } }
اگر از افزونه دیجیتس (افزونه ثبت نام و ورود با شماره موبایل) استفاده میکنید و میخواهید ثبتنام به صورت خودکار انجام شود، نکات زیر را در نظر داشته باشید:
نکته 1: اگر افزونه دیجیتس را به گونهای پیکربندی کردهاید که نام کاربری از شماره تلفن همراه ایجاد شود، حتماً الگوی ساخت حساب کاربری را بررسی کرده و تغییرات مورد نیاز را در کد بالا اعمال کنید. در حال حاضر، کد بالا براساس کد کشور به همراه + پیاده سازی شده است.
نکته 2: اگر افزونه دیجیتس به گونهای پیکربندی شدهاست که نام کاربری بر اساس شماره تلفن همراه بدون کد کشور، مانند …0912 ، ایجاد شود، کافی است کد زیر را در کد بالا پیدا کنید:
$phone = $country_code . $phone_no;
و کد زیر را جایگزین آن کنید:
$phone = $order->get_billing_phone();
همین و اکنون پس از اینکه کاربر روی دکمه پرداخت کلیک می کند به صورت خودکار با استفاده از شماره موبایل وارد شده یک حساب کاربری ساخته خواهد شد.
به پایان این آموزش رسیدیم، امیدواریم که به خوبی نحوه ثبت نام خودکار کاربر مهمان در صفحه تسویه حساب ووکامرس با ایمیل یا شماره موبایل را یاد گرفته باشید. همچنین ممکن است بخواهید مقاله دیگر ما را در مورد انتقال مستقیم به صفحه پرداخت و حذف سبد خرید در ووکامرس ببینید.
Good luck 🙂