ورود به حساب کاربری با استفاده از ایمیل در وردپرس
کاربران معمولا از یک نام کاربری واحد برای ثبت نام در تمامی سیستم های مورد نظرشان استفاده میکنند. مشکلی که در این رابطه ممکن است پیش بیاید، مربوط به زمانی است که نام کاربری مورد نظر شخص، قبلا توسط شخص دیگری در سیستم ثبت شده باشد. در این حالت کاربر مجبور میشود برای ثبت نام در سیستم از نام کاربری جدیدی که ممکن است به خاطر سپردنش برای وی چندان هم ساده نباشد استفاده کند. بر عکس نامهای کاربری، ایمیل کاربر همیشه متعلق به خود اوست و به عنوان یک شناسه ی یکتا در هر کجا برای وی قابل به کار گیری است. همچنین کاربر هیچگاه ایمیل خود را فراموش نخواهد کرد و همیشه آن را به یاد خواهد داشت. با بخاطر داشتن این نکات، اگر در این آموزش با مسترکد همراه باشید، قرار است ببینیم که چطور میتوان امکان ورود به حساب کاربری با استفاده از ایمیل را برای کاربران در وردپرس فراهم کرد.
روش اول :
در روش اول میخواهیم با هم به سراغ دست کاری کد ها برویم. کاری که لازم است انجام دهید این است که کد های زیر را در فایل functions.php قالب خود یا افزونه ای که قبلا برای سایت خود ایجاد کرده اید (Site-Specific Plugin) قرار دهید و تغییرات را ذخیره کنید. (توصیه میکنم همیشه قبل از تغییر فایلها، یک نسخه پشتیبان از آنها تهیه کنید.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | remove_filter('authenticate', 'wp_authenticate_username_password', 20); add_filter('authenticate', function($user, $email, $password){ //Check for empty fields if(empty($email) || empty ($password)){ //create new error object and add errors to it. $error = new WP_Error(); if(empty($email)){ //No email $error->add('empty_username', __('<strong>ERROR</strong>: Email field is empty.')); } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ //Invalid Email $error->add('invalid_username', __('<strong>ERROR</strong>: Email is invalid.')); } if(empty($password)){ //No password $error->add('empty_password', __('<strong>ERROR</strong>: Password field is empty.')); } return $error; } //Check if user exists in WordPress database $user = get_user_by('email', $email); //bad email if(!$user){ $error = new WP_Error(); $error->add('invalid', __('<strong>ERROR</strong>: Either the email or password you entered is invalid.')); return $error; } else{ //check password if(!wp_check_password($password, $user->user_pass, $user->ID)){ //bad password $error = new WP_Error(); $error->add('invalid', __('<strong>ERROR</strong>: Either the email or password you entered is invalid.')); return $error; }else{ return $user; //passed } } }, 20, 3); |
اجازه بدهید با هم کارکرد کد بالا را بررسی کنیم. در اولین خط، کاری که کرده ایم این است که ابتدا شیوه اعتبارسنجی پیشفرض وردپرس را غیر فعال کرده ایم. سپس در خطوط بعدی با استفاده از add_filter شیوه ی اعتبار سنجی مورد نظر خودمان را پیاده سازی کرده ایم. در این شیوه ی اعتبارسنجی ابتدا کد چک میکند که فیلد های ایمیل و رمز عبور خالی نباشند و اگر خالی نبودند با استفاده از get_user_by بر اساس ایمیل وارد شده، کاربر مورد نظر را پیدا میکنیم. در اینجا اگر رمز عبور صحیح باشد (wp_check_password) لاگین به صورت موفق انجام میشود و در غیر این صورت کاربر باید مجدد اطلاعات را وارد کند.
اما خوب، ممکن است بازی با کد ها خیلی باب میل شما نباشد … پس به سراغ شیوه ی دوم میرویم.
روش دوم :
افزونه خیلی چیز خوبی است. نه؟ (نه!) اگر مایلید بجای دست کاری کد ها، از افزونه ای مناسب جهت مجاز کردن ورود با ایمیل به حساب کاربری استفاده کنید. افزونه ی WP Email Login یکی از بهترین انتخاب های شماست. (آموزش نصب افزونه در وردپرس) استفاده از افزونه جهت انجام این کار مزایای خاص خود را نیز دارد. وقتی شما این افزونه را روی سایت خود فعال کنید، خواهید دید که در فرم ورود از کاربر درخواست میشود که از ایمیل خود جهت ورود استفاده کند (در حالی که در روش قبلی تغییری در این فیلد ایجاد نمیشد) همچنین در هنگام استفاده از این افزونه، کاربر قادر خواهد بود که در صورت عدم تمایل، کماکان نام کاربری خود را جهت ورود مورد استفاده قرار دهد. این در حالی است که در کدی که با هم از آن استفاده کردیم، چنین امکانی برای کاربر فراهم نمیشد. در پایان هم احتمالا لازم است بدانید که این افزونه به زبان فارسی ترجمه شده، با وردپرس چند سایته و BuddyPress کاملا هماهنگ است. همچنین بعد از نصب و فعال سازی افزونه، بدون نیاز به اعمال هیچگونه تنظیمی میتوانید از امکانات آن بر روی سایت خود بهره مند شوید.
اگر از آن دسته افرادی هستید که همیشه سادگی استفاده از سایت برای کاربر، مد نظرتان است، این یکی از شیوه هایی است که بدون شک میتواند به بهبود تجربه کاربرانتان در استفاده از سایت شما، کمک شایان توجهی کند. امیدوارم از این آموزش لذت برده باشید.
سلام .
جالب و مفید بود مثل همیشه 🙂
تشکر…
سلام
ممنون از شما