علیرضا صادقی
8 ماه پیش توسط علیرضا صادقی مطرح شد
1 پاسخ

یکپارچه سازی فیلد های ورود و عضویت ووکامرس

سلام
من میخوام تمامی فیلد های ورود و عضویت ووکامرس به یک فیلد تبدیل بشن که فقط شماره موبایل دریافت بکنه و کلا یک فرم باشه هم برای عضویت و هم ورود که شماره موبایل بشه وارد کرد . اگر کاربر عضو بود رمز وارد کنه اگر عضو نبود به فرم ثبت نام هدایت بشه
ممنون میشم راهنمایی کنید .
با افزونه نمیخوام انجام بدم


ثبت پرسش جدید
مهدی نظری
تخصص : توسعه دهنده Front End
@mahdi.nazari 7 ماه پیش مطرح شد
0

سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨

برای ایجاد یک فرم ورود و عضویت سفارشی در ووکامرس بدون استفاده از افزونه‌ها، شما به کدنویسی نیاز دارد . در اینجا، من به شما یک روند کلی برای ایجاد این فرم را نشونت میدم

برای ایجاد یک فرم ورود و عضویت سفارشی در ووکامرس بدون استفاده از افزونه‌ها، شما به کدنویسی خود نیاز دارید. در اینجا، من به شما یک روند کلی برای ایجاد این فرم را نشان خواهم داد. این کد در فایل‌های تم شما قرار خواهد گرفت.

ایجاد فرم HTML:
ابتدا باید یک فرم HTML بسازی که شامل یک فیلد برای شماره موبایل و یک فیلد برای رمز عبور (برای ورود) یا یک فیلد برای نام کاربری و رمز عبور (برای ثبت نام) باشه . این فرم می‌تواند به این شکل باشد:

<form id="custom-login-form" method="post">
    <label for="phone">شماره موبایل:</label>
    <input type="tel" name="phone" id="phone" required>

    <!-- فیلدهای مرتبط با ورود -->
    <label for="password">رمز عبور:</label>
    <input type="password" name="password" id="password">

    <!-- فیلدهای مرتبط با ثبت نام -->
    <label for="username">نام کاربری:</label>
    <input type="text" name="username" id="username">

    <input type="submit" value="ورود / ثبت نام">
</form>

ایجاد کدهای PHP برای پردازش فرم:

add_action('template_redirect', 'custom_login_form_handler');

function custom_login_form_handler() {
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['phone'])) {
        $phone = sanitize_text_field($_POST['phone']);

        // چک کردن آیا کاربر با این شماره موبایل وجود دارد
        $user = get_user_by('phone', $phone);

        if ($user) {
            // اگر کاربر وجود داشت، چک کردن رمز عبور
            $password = isset($_POST['password']) ? $_POST['password'] : '';

            if (wp_check_password($password, $user->user_pass, $user->ID)) {
                // ورود به سیستم موفقیت‌آمیز
                wp_set_auth_cookie($user->ID);
                wp_redirect(home_url('/'));
                exit();
            } else {
                // رمز عبور اشتباه است
                wp_redirect(home_url('/login/?login=failed'));
                exit();
            }
        } else {
            // کاربر وجود ندارد، به فرم ثبت نام هدایت شود
            wp_redirect(home_url('/register/?phone=' . $phone));
            exit();
        }
    }
}

ایجاد صفحه ثبت نام:
شما باید یک صفحه برای ثبت نام کاربران جدید ایجاد کنی . در این صفحه، میتونی از فرم HTML مشابهی برای ثبت نام استفاده کنی. سپس باید کد PHP برای ذخیره کاربر جدید در دیتابیس و ایجاد حساب کاربری وی ایجاد کنی و تمام .

ایجاد لینک‌های ورود و ثبت نام:
در تم‌های ووکامرس، ما معمولاً می‌توانید از توابعی مانند woocommerce_login_form() و woocommerce_register_form() برای نمایش فرم‌های ورود و ثبت نام استفاده میکنیم . شما می‌توانید این توابع را در محلی که می‌خواهید نمایش داده شوند وارد کنی، مثلاً در صفحه‌های ورود و ثبت نام.

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

امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹


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

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