حساب کاربری وردپرس در اپ
در این آموزش صفحههای ورود، ثبتنام، ورود با شماره موبایل، پروفایل و تغییر رمز را میسازیم؛ همه روی حساب کاربری سایت وردپرسی شما.
اپادیتور دو سیستم حساب کاربری مستقل دارد:
- حساب کاربری اپادیتور که کاربران در سرور اپادیتور ثبت میشوند و برای خرید درونبرنامهای لازم است.
- حساب کاربری وردپرس که همان کاربران سایت شما هستند.
این آموزش درباره دومی است. اگر هر دو را فعال کنید، کاربر باید در هر دو وارد شود و ورود یکی بهمعنی ورود دیگری نیست.
پیشنیازها
- افزونه
AppEditor - App Builder for WordPressروی سایت نصب و به پنل متصل باشد. بدون این افزونه هیچکدام از عملکردهای این صفحه کار نمیکنند. - در اپ ادیتور ← تنظیمات وردپرس، گزینه «فعال بودن API اپ» روشن باشد.
- برای ثبتنام از داخل اپ، هم گزینه «اجازه ثبتنام از اپ» در افزونه و هم تنظیمات ← عمومی ← عضویت در وردپرس روشن باشد.
- برای ورود با موبایل، Digits یا ارائهدهنده پشتیبانیشده دیگری نصب و آزمایش شده باشد و ورود موبایلی در تنظیمات افزونه فعال باشد.
مراحل کامل در راهاندازی اتصال وردپرس آمده است.
گام ۱: صفحه ورود
- صفحهای به نام «ورود» بسازید. میانبر: از منوی افزودن ویجت مسیر وردپرس ← بلوکهای حساب کاربری ← فرم ورود را انتخاب کنید.
- برای ساخت دستی، دو فیلد متن فرم اضافه کنید:
- فیلد نام کاربری یا ایمیل، با متغیر
login.username - فیلد رمز عبور با حالت مخفی، با متغیر
login.password
- فیلد نام کاربری یا ایمیل، با متغیر
- دکمه «ورود» بسازید و عملکرد ورود به حساب وردپرس را روی آن بگذارید:
- متغیر نام کاربری/ایمیل:
login.username - متغیر رمز عبور:
login.password
- متغیر نام کاربری/ایمیل:
- زیر دکمه، یک ویجت متن با مقدار
{{sys.wordpress.lastError}}بگذارید و آن را با شرط «خالی نبودن» همان متغیر نمایش دهید تا پیام خطا دیده شود.
فیلدهای عملکرد نام متغیر میگیرند نه مقدار. رمز عبور هرگز داخل تنظیمات اپ ذخیره نمیشود و فقط هنگام اجرا خوانده میشود.
بعد از ورود موفق
پس از ورود:
sys.wordpress.authenticatedبرابرtrueمیشود.sys.wordpress.userبا اطلاعات کاربر پر میشود.- متغیرهای
profile.edit،profile.address.billing،profile.address.shippingو آدرسهایcheckout.payloadخودکار مقدار میگیرند.
روی همان دکمه، بعد از عملکرد ورود یک عملکرد باز کردن صفحه به صفحه «حساب من» اضافه کنید و هر دو را در یک عملکرد چندگانه بگذارید.
گام ۲: صفحه ثبتنام
- صفحهای به نام «ثبتنام» بسازید یا از بلوک آماده فرم ثبتنام استفاده کنید.
- فیلدها را به مسیرهای یک متغیر واحد وصل کنید:
register.email،register.password،register.first_nameوregister.last_name. - دکمه «ثبتنام» بسازید و عملکرد ثبتنام در وردپرس را با «متغیر اطلاعات ثبتنام» برابر
registerروی آن بگذارید.
مقدار نهایی این متغیر باید چنین شکلی داشته باشد:
{
"email": "user@example.com",
"password": "at-least-8-chars",
"first_name": "نام",
"last_name": "نام خانوادگی"
}
emailوpasswordاجباریاند و رمز باید حداقل ۸ کاراکتر باشد.- اگر
usernameندهید، از ایمیل ساخته میشود. - اگر ایمیل یا نام کاربری تکراری باشد، پیام خطا در
sys.wordpress.lastErrorقرار میگیرد.
تأیید ایمیل و ارسال مجدد
ثبتنام موفق به معنی ورود فوری نیست. افزونه یک پیوند یکبارمصرف با اعتبار ۲۴ ساعت به ایمیل کاربر میفرستد و پاسخ دارای verification_required را در sys.wordpress.lastResult قرار میدهد. در اپ پیام «پیوند تأیید برای شما ارسال شد» نشان دهید و کاربر را تا پیش از باز کردن پیوند وارد حساب نکنید.
برای دکمه «ارسال مجدد ایمیل تأیید»:
- یک فیلد ایمیل با متغیر
register.emailبسازید. - عملکرد ارسال مجدد ایمیل تأیید را اضافه کنید و «متغیر ایمیل» را
register.emailبگذارید. - پیام عمومی پاسخ را نمایش دهید؛ این پیام عمداً مشخص نمیکند حسابی با آن ایمیل وجود دارد یا نه.
ارسال مجدد محدودیت زمانی دارد و فقط برای حساب تأییدنشده ایمیل تازه میفرستد.
گام ۳: ورود با شماره موبایل
این مسیر دو مرحله دارد و بین دو مرحله باید «شناسه درخواست» را نگه دارید.
مرحله اول: ارسال کد
- فیلد شماره موبایل بسازید و مقدارش را در
login.phoneبریزید. - دکمه «ارسال کد» با عملکرد ارسال کد ورود موبایلی:
- متغیر شماره موبایل:
login.phone - پیششماره کشور:
+98 - «اگر کاربر وجود نداشت ثبتنام شود» را در صورت نیاز روشن کنید.
- متغیر شماره موبایل:
- پس از ارسال موفق، پاسخ سرور در
sys.wordpress.lastResultقرار میگیرد. بلافاصله بعد از این عملکرد، یک مقداردهی متغیر اضافه کنید کهlogin.challengeرا برابر{{sys.wordpress.lastResult.data.challenge_id}}بگذارد. - سپس صفحه «تأیید کد» را باز کنید.
هر سه مورد را در یک عملکرد چندگانه و به همین ترتیب بچینید.
اگر مطمئن نیستید نام دقیق فیلد شناسه در پاسخ چیست، برای یک بار یک ویجت متن با مقدار {{sys.wordpress.lastResult}} بگذارید و پاسخ کامل را روی دستگاه ببینید.
مرحله دوم: تأیید کد
- در صفحه «تأیید کد»، فیلد کد بسازید و مقدارش را در
login.codeبریزید. - دکمه «تأیید» با عملکرد تأیید کد ورود موبایلی:
- متغیر شناسه درخواست:
login.challenge - متغیر کد تأیید:
login.code
- متغیر شناسه درخواست:
- دکمه «ارسال مجدد» با عملکرد ارسال مجدد کد ورود موبایلی و همان متغیر شناسه درخواست.
فاصله مجاز ارسال مجدد، مدت اعتبار کد و سقف تلاش در تنظیمات افزونه تعیین میشوند.
گام ۴: صفحه حساب من
- صفحهای به نام «حساب من» بسازید.
- کل محتوای آن را با شرط ورود کاربر به حساب وردپرس نمایش دهید و در حالت مخالف، دکمه «ورود» را نشان دهید.
- بلوک آماده کارت پروفایل کاربر را اضافه کنید، یا ویجتهای متن با این مقادیر بسازید:
{{sys.wordpress.user.display_name}}
{{sys.wordpress.user.email}}
- دکمههای میانبر به «سفارشهای من»، «علاقهمندیها»، «فایلهای خریداریشده» و «ویرایش پروفایل» اضافه کنید.
- دکمه «خروج» با عملکرد خروج از حساب وردپرس و دکمه «خروج از همه دستگاهها» با عملکرد متناظر آن بگذارید.
گام ۵: ویرایش پروفایل
- صفحه «ویرایش پروفایل» را بسازید.
- فیلدها را مستقیم به مسیرهای
profile.edit.first_name،profile.edit.last_name،profile.edit.display_nameوprofile.edit.emailوصل کنید. چون این متغیرها پس از ورود خودکار پر شدهاند، فرم از ابتدا مقدار دارد و کاربر فقط اصلاح میکند. - دکمه «ذخیره» با عملکرد ویرایش پروفایل وردپرس و «متغیر اطلاعات پروفایل» برابر
profile.edit. - بعد از آن، عملکرد بهروزرسانی اطلاعات کاربر وردپرس را اضافه کنید تا اطلاعات نمایشدادهشده تازه شود.
آدرسها
برای ویرایش آدرس، فیلدها را به profile.address.billing.* و profile.address.shipping.* وصل کنید و در متغیر ارسالی، آنها را زیر کلیدهای billing و shipping بگذارید.
فیلدهای هر آدرس: first_name، last_name، company، country، state، city، address_1، address_2، postcode، phone، email.
گام ۶: تغییر و بازیابی رمز
تغییر رمز
- دو فیلد رمز بسازید:
password.currentوpassword.new. - دکمه «تغییر رمز» با عملکرد تغییر رمز وردپرس و همین دو متغیر.
رمز جدید باید حداقل ۸ کاراکتر باشد.
بازیابی رمز
- صفحه «بازیابی رمز» با یک فیلد برای نام کاربری یا ایمیل، در متغیر
forget.login. - دکمه با عملکرد بازیابی رمز وردپرس و «متغیر نام کاربری/ایمیل» برابر
forget.login. - ایمیل بازیابی از خود وردپرس ارسال میشود؛ در اپ فقط پیام «ایمیل ارسال شد» را نشان دهید.
نمایش خطاها به کاربر
الگوی سادهای که در همه فرمها جواب میدهد:
- یک ویجت متن با مقدار
{{sys.wordpress.lastError}}بسازید. - آن را با شرط مقدار متغیر و مقایسه «خالی نبودن» نمایش دهید.
- رنگ آن را قرمز و اندازهاش را کوچک بگذارید.
با این کار، پیامهای واقعی سرور مانند «رمز عبور اشتباه است» یا «این ایمیل قبلاً ثبت شده» به کاربر نمایش داده میشود.
اشتباههای رایج
- استفاده از گزینه «نیاز به ورود» صفحه برای محافظت از صفحههای وردپرسی؛ آن گزینه حساب اپادیتور را بررسی میکند.
- گذاشتن مقدار بهجای نام متغیر در فیلدهای عملکرد.
- فراموش کردن ذخیره «شناسه درخواست» بین دو مرحله ورود موبایلی.
- روشن نکردن «اجازه ثبتنام از اپ» در تنظیمات افزونه و تعجب از خطای دسترسی.
- روشن نکردن عضویت عمومی وردپرس یا بررسی نکردن تحویل ایمیل تأیید.
- انتظار اینکه ورود به حساب وردپرس، کاربر را به حساب اپادیتور هم وارد کند.