پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک “نسخه پرو” یک افزونه تخصصی است که توسط گیلان گرافیک طراحی و کدنویسی شده است. این افزونه برای ایجاد داشبورد حرفه‌ای کاربران در وردپرس و ووکامرس است که ساختار مدیریت کاربران را از حالت ساده پیش‌فرض وردپرس خارج کرده و آن را به یک مرکز کنترل قدرتمند و قابل سفارشی‌سازی تبدیل می‌کند. این افزونه مخصوص سایت‌های فروشگاهی، آموزشی، خدماتی و هر کسب‌وکاری است که می‌خواهد تجربه کاربری را در سطحی بالاتر ارائه دهد.

پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"
پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

توسط : گروه طراحان گیلان گرافیک®

تحول در تجربه کاربری: چرا پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک انتخاب اول وب‌مسترهاست؟

در دنیای امروز، وب‌سایت شما فقط مجموعه‌ای از صفحات نیست؛ وب‌سایت شما «خانه دیجیتال» برند شماست. وقتی کاربری وارد پنل کاربری می‌شود، انتظار دارد تجربه‌ای بی‌نقص، امن و سریع داشته باشد. اگر پنل کاربری شما کُند، درهم‌ریخته و یا فاقد امکانات لازم باشد، در همان لحظه‌ی حساسِ «بازگشت مشتری»، او را از دست خواهید داد.

نسخه حرفه‌ای (Pro) پنل کاربری گیلان گرافیک، فراتر از یک تغییر ظاهری، بازتعریفی از استاندارد مدیریت کاربر در وردپرس و ووکامرس است. در این مقاله قصد داریم به لایه‌های عمیق‌تر این افزونه بپردازیم؛ جایی که کدنویسی تمیز با قابلیت‌های کاربریِ هوشمندانه تلاقی می‌کند.

۱. فراتر از طراحی: معماریِ هوشمندانه برای عملکرد حداکثری

بسیاری از افزونه‌های پنل کاربری، سایت شما را با کدهای سنگین و بی‌مورد (Bloatware) پر می‌کنند که نتیجه‌اش کاهش سرعت سایت و افت رتبه در نتایج جستجو (SEO) است. در طراحی نسخه Pro، وسواس اصلی ما بر روی «بهینگی» (Optimization) بوده است:

لودِ سبک (Lightweight): این افزونه برخلاف رقبا، از فریم‌ورک‌های سنگینِ غیرضروری استفاده نمی‌کند. کدهای JS و CSS کاملاً فشرده و بهینه هستند تا حتی در ضعیف‌ترین اتصالات اینترنت، پنل کاربری در کسری از ثانیه لود شود.

معماری ماژولار: هسته‌ی اصلی افزونه به‌صورت کاملاً ماژولار طراحی شده است. این یعنی اگر از بخشی از پنل استفاده نمی‌کنید، بار پردازشی آن عملاً صفر است. این همان نکته‌ای است که در دید کاربر نیست، اما تأثیر مستقیمش را روی سرعت لود صفحه و تجربه کاربری (UX) می‌گذارد.

۲. امنیت، اولویت همیشگی

در نسخه پرو، امنیت فقط یک شعار نیست؛ بخشی از DNA افزونه است. ما در این نسخه، پروتکل‌های امنیتی را به شکلی پیاده کرده‌ایم که دغدغه‌های امنیتی وب‌مستر را به حداقل برساند:

یکپارچه‌سازی با سرویس‌های OTP: سیستم احراز هویت پیامکی (OTP) در نسخه Pro به‌صورت نیتیو (Native) با بهترین درگاه‌ پیامکی ایران (ملی‌پیامک) هماهنگ شده است. این سیستم با استفاده از توابع ایمن (Sanitization)، از هرگونه تزریق کد یا دسترسی‌های غیرمجاز جلوگیری می‌کند.

محافظت در برابر حملات Brute Force: پنل کاربری پرو با سیستم‌های داخلی برای محدود کردن تلاش‌های ناموفق ورود به سیستم مجهز شده است تا امنیت حساب کاربران شما در برابر حملات ربات‌ها تضمین شود.

۳. ویژگی‌های کلیدی که تفاوت ایجاد می‌کنند

نسخه Pro به گونه‌ای طراحی شده که مدیریت سایت را برای شما و تجربه کاربری را برای مشتریان‌تان لذت‌بخش می‌کند:

تیکتینگِ حرفه‌ای: دیگر نیازی به افزونه‌های سنگین پشتیبانی ندارید. سیستم تیکتینگ یکپارچه با پنل، به کاربر اجازه می‌دهد بدون خروج از محیط شخصی‌اش، با تیم پشتیبانی در ارتباط باشد. این یعنی افزایش اعتماد و کاهش نرخ پرش (Bounce Rate).

مدیریت هوشمند سفارشات ووکامرس: در نسخه رایگان، کاربر فقط سفارش را می‌بیند. در نسخه Pro، کاربر به جزئیات دقیق، وضعیت لحظه‌ای ارسال، و تاریخچه‌ی خریدهای فیلتر شده دسترسی دارد. طراحی این بخش به‌گونه‌ای است که حس «حرفه‌ای بودن» را به خریدار القا می‌کند.

شخصی‌سازی کامل (White-Labeling): این افزونه به شما اجازه می‌دهد هویت برند خود را به صورت ۱۰۰٪ در پنل پیاده کنید. رنگ‌بندی، چیدمان فیلدها و حتی اضافه کردن تب‌های سفارشی (Custom Tabs) برای نمایش محتوای اختصاصی، تنها با چند کلیک ممکن است.

احراز هویت دومرحله‌ای پیشرفته: فراتر از ورود ساده، کاربران شما می‌توانند امنیت حساب خود را با کدهای تایید یکبار مصرف ارتقا دهند. این یعنی اعتمادسازی برای سایت‌هایی که اطلاعات حساس کاربران را نگهداری می‌کنند.

۴. چرا این افزونه برای یک سئوکار و طراح حیاتی است؟

اگر سئوکار هستید، می‌دانید که «زمان ماندگاری کاربر» (Dwell Time) یکی از سیگنال‌های مهم رتبه‌بندی است. پنل کاربریِ نسخه Pro گیلان گرافیک، با رابط کاربریِ درگیرکننده (Engaging UI)، کاربر را تشویق می‌کند که زمان بیشتری را در سایت سپری کند.

اگر طراح هستید، می‌دانید که پیاده‌سازی این حجم از قابلیت‌ها با کدنویسی دستی، هفته‌ها زمان می‌برد. این افزونه مثل یک «فریم‌ورکِ آماده» عمل می‌کند که تمام استانداردهای طراحی مدرن و ریسپانسیو (Responsive) را در خود دارد و با هر قالب استاندارد وردپرسی سازگار است.

۵. پشتیبانی و به‌روزرسانی: تعهدی به کیفیت

نسخه‌ی پرو فقط یک محصول نیست؛ یک تعهد است. برخلاف محصولاتِ “بزن و برو”، تیم ما به‌طور مداوم با ووکامرس و هسته وردپرس به‌روزرسانی می‌شود. با خرید نسخه پرو، شما به یک اکوسیستم دسترسی پیدا می‌کنید که دائماً در حال رشد و تکامل است.
جمع‌بندی: سرمایه‌گذاری روی برند شما

پنل کاربری پیشرفته گیلان گرافیک برای کسانی طراحی شده است که به جزئیات اهمیت می‌دهند؛ کسانی که می‌دانند “تفاوت در جزئیات است”. با ارتقا به نسخه پرو، شما نه تنها ابزاری برای مدیریت کاربران، بلکه یک سفیر برند قدرتمند را در قلب سایت خود جای می‌دهید.

همین حالا تجربه کاربریِ وب‌سایت خود را به سطح استاندارد جهانی برسانید و به کاربران خود نشان دهید که «کیفیت» برای شما در اولویت است.

معماری ماژولار: این افزونه با رعایت استانداردهای سخت‌گیرانه WordPress Plugin Handbook توسعه یافته است تا با ساختاری بهینه، کمترین بار پردازشی ممکن را بر روی دیتابیس و منابع سایت اعمال کند.

تمامی ورودی‌های کاربر در سیستم OTP و پنل کاربری، توسط توابع استاندارد Data Sanitization در وردپرس ایمن‌سازی شده‌اند تا از بروز حملات تزریق کد، داده‌های مخرب و خطاهای امنیتی احتمالی جلوگیری شود.

🚀 تحولی در مدیریت کاربران؛ امکانات اختصاصی نسخه Pro

نسخه پرو

یک پلاگین با کارایی سه پلاگین حرفه ای

نسخه حرفه‌ای افزونه «پنل کاربری پیشرفته»، یک بازنگری کامل در تجربه کاربری (UX) سایت شماست. ما در این نسخه، امکاناتی را اضافه کرده‌ایم که سایت شما را از یک وب‌سایت معمولی، به یک پلتفرم جامع و کاربرپسند تبدیل می‌کند:

💬 سیستم تیکتینگ اختصاصی (یکپارچه با داشبورد)

دیگر نیازی به نصب افزونه‌های سنگین و پیچیده تیکتینگ ندارید. نسخه پرو، یک سیستم پشتیبانیِ سبک و داخلی را مستقیماً به داشبورد کاربران شما اضافه می‌کند.

پشتیبانی در دسترس: کاربران شما بدون نیاز به خروج از پنلِ خود، می‌توانند تیکت جدید ارسال کرده و لیست تیکت‌های قبلی خود را مدیریت کنند.

تجربه کاربری تمیز: تمام تاریخچه گفتگوها، وضعیت تیکت (باز/بسته) و فایل‌های پیوست، در محیطی کاملاً اختصاصی و هماهنگ با پنل کاربری نمایش داده می‌شود.

اطلاع‌رسانی ایمیلی: کاربر به محض اینکه شما به تیکتش پاسخ دهید، از طریق سیستم اطلاع‌رسانی ایمیلیِ پیشرفته ما، سریعاً باخبر می‌شود.

📱 ورود و ثبت‌نام پیامکی (OTP)؛ مدرن و سریع

امنیت و سرعت، کلید وفاداری مشتری است. با سیستم احراز هویت پیامکی نسخه پرو:

ورود بدون پسورد: کاربران برای ورود یا ثبت‌نام، دیگر نیازی به به‌خاطر سپردن رمزهای پیچیده ندارند؛ تنها با دریافت کد تایید (OTP) در کمتر از چند ثانیه وارد حساب خود می‌شوند.

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

🎨 صفحات ورود و ثبت‌نام سفارشی

ظاهر پیش‌فرض وردپرس را فراموش کنید! با نسخه پرو، کنترل کاملی بر ظاهرِ سایت خود دارید:

طراحی اختصاصی: فرم‌های ورود و ثبت‌نام را کاملاً مطابق با استایل برند خود شخصی‌سازی کنید.

حفظ هویت برند: کاربر از لحظه ورود تا خروج، فضایی کاملاً یکپارچه و منطبق با طراحی سایت شما را تجربه می‌کند.

🛡️ بهینه‌سازی کدنویسی و امنیت

ما در نسخه پرو، هسته افزونه را برای عملکرد بهتر بازنویسی کرده‌ایم:

کدنویسی Standard & Clean: استفاده از متدهای بهینه و استانداردهای روز وردپرس برای حفظ سرعت لود سایت و کاهش مصرف منابع سرور.

ماژولار بودن: امکان فعال یا غیرفعال کردن قابلیت‌های مختلف (مثل پیامک یا تیکت) جهت حفظ حداکثر سبکی سایت.

امنیت مضاعف: رعایت نکات امنیتی در پردازش فرم‌های ورود و ثبت‌نام برای محافظت از داده‌های حساس کاربران.

با استفاده از این افزونه حرفه‌ای وردپرس:

  • نرخ تبدیل سایت به دلیل ساده‌سازی فرآیند ورود (OTP) به شدت افزایش می‌یابد.
  • اعتبار برند شما با داشتن یک داشبورد اختصاصی و شکیل در ذهن کاربر تثبیت می‌شود.
  • تیکت‌های پشتیبانی به جای ایمیل‌های پراکنده، در یک محیط متمرکز و منظم مدیریت می‌شوند.
  • امنیت دیتابیس کاربران با حذف ثبت‌نام‌های فیک و تایید شماره موبایل تضمین می‌گردد.
  • سرعت لود پنل کاربری به دلیل کدنویسی بهینه و ماژولار، به مراتب بالاتر از افزونه‌های مشابه است.

این افزونه با جایگزین شدن به جای داشبورد پیش‌فرض وردپرس و ووکامرس، یک محیط کاملاً شخصی‌سازی شده (White-Label) را ایجاد می‌کند. پس از نصب، شما می‌توانید فیلدهای ورود را تنظیم کرده و ماژول تیکتینگ را فعال کنید. کاربر پس از ورود امن (از طریق پیامک یا ایمیل)، به محیطی هدایت می‌شود که تمامی دسترسی‌ها شامل سفارشات، تیکت‌ها و تنظیمات حساب کاربری در یک منوی سایدبار مدرن و با سرعت بسیار بالا در اختیار اوست. تمامی این فرآیندها بدون درگیر کردن منابع سنگین سرور انجام می‌شود.

  • فروشگاه‌های اینترنتی: برای ایجاد یک تجربه خرید حرفه‌ای و مدیریت آسان سفارشات توسط مشتری.
  • سایت‌های خدماتی و آموزشی: که نیاز به یک سیستم پشتیبانی تیکتیِ سبک و مستقیم دارند.
  • طراحان سایت و آژانس‌ها: برای تحویل یک پروژه VIP و اختصاصی به مشتریان خود (حذف ظاهر خام وردپرس).
  • سئوکاران و وب‌مسترها: که به دنبال کاهش نرخ پرش (Bounce Rate) و افزایش تعامل کاربران در محیط سایت هستند.
  • تمامی مدیران سایت: که امنیت ورود کاربران و تایید هویت آن‌ها (از طریق شماره موبایل) برایشان اهمیت حیاتی دارد.

توازن قدرت؛ مقایسه هوشمند نسخه رایگان و حرفه‌ای

قابلیت‌ها رایگان نسخه Pro
داشبورد اختصاصی و مدیریت حساب
گزارش‌گیری و آمار کلی سفارشات
تب اختصاصی مدیریت کاربران
سیستم تیکتینگ و پشتیبانی
تنظیمات پیشرفته پیامک (SMS)
ورود و ثبت‌نام پیامکی (OTP)
شخصی‌سازی و برندینگ
قطع گراواتار (افزایش سرعت) بهینه
به‌روزرسانی و پشتیبانی مستقیم

پرسش‌های متداول

پاسخ به سوالات پرتکرار درباره پنل کاربری پرو

آیا افزونه با همه قالب‌ها سازگار است؟

افزونه طوری ساخته شده که با تمام قالب‌های استاندارد وردپرس و ووکامرس بدون هیچ تداخلی سازگار باشد و در صورت استفاده از صفحه‌سازها نیز بدون مشکل کار می‌کند.

آیا برای استفاده از افزونه نیاز به کدنویسی هست؟

خیر. همه بخش‌ها قابل تنظیم هستند و حتی ساخت منوها و صفحات اختصاصی هم بدون هیچ دانش فنی انجام می‌شود.

آیا داشبورد کاربران قابل شخصی‌سازی است؟

بله. مدیر سایت می‌تواند ظاهر، منوها، بخش‌های نمایش داده‌شده و حتی نوع دسترسی کاربران را کاملاً شخصی‌سازی کند.

آیا افزونه با ووکامرس هماهنگ است؟

کاملاً. سفارش‌ها، تاریخچه خریدها، فایل‌های دانلودی، فاکتورها و وضعیت پرداخت به‌طور کامل در داشبورد نمایش داده می‌شود.

آیا پشتیبانی و آپدیت ارائه می‌شود؟

بله. افزونه دارای پشتیبانی کامل و آپدیت‌های منظم برای سازگاری با نسخه‌های جدید وردپرس و ووکامرس می‌باشد.

محصولات مرتبط

فروش
0 +
رضایت
0 +
پشتیبانی
+ 0 A

نسخه : 6.0.3


تاریخ انتشار: 28 مرداد 1404


آخرین بروزرسانی : 25 خرداد 405


تعداد نصب فعال : 140+


پشتیبانی رایگان : 6 ماه


بدون محدودیت نصب


دسترسی مادام العمر


آپدیت منظم و رایگان


ضمانت بازگشت وجه : 7 روز


نسخه وردپرس : 5 به بالا


تست شده تا : نسخه 7


نسخه پی اچ پی : 7 به بالا


تست شده تا : 8.3


نسخه رایگان : دارد


خرید و دانلود نسخه پرو


دانلود نسخه رایگان


نصب و راه اندازی توسط گیلان گرافیک

تصاویر و اسکرین شات های افزونه "نسخه پرو"

نمای کلی :

پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

نمای بخش تیکت و پشتیبانی داخل داشبورد

تصاویر و اسکرین‌شات‌های افزونه"نسخه رایگان"

نمایی واقعی از محیط پنل کاربری پرو در عمل

نمای کامل پنل کاربری پرو در سایت
نمای عمومی پنل کاربری در سایت
صفحه مدیریت محصولات در پنل کاربری
صفحه مدیریت محصولات و سفارش‌ها

نمای صفحه ورود و عضویت اختصاصی

پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

نمای بخش تنظیمات در پیشخوان وردپرس

تب تنظیمات عمومی

تب ورود پیامکی

پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

تب مدیریت کاربران

نظرات کاربران در باره این محصول ؛ جمع آوری شده از سایت و شبکه های اجتماعی

نظرات کاربران پنل کاربری پیشرفته وردپرس و ووکامرس گیلان گرافیک "نسخه پرو"

تجربه واقعی مشتریان ما از استفاده از این افزونه

نظر خود را درباره این محصول در فرم نظرات زیر درج نمایید :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نمای جامع راه‌اندازی و پیکربندی افزونه پنل کاربری پیشرفته (نسخه پرو)

پلاگین را مانند پلاگین های دیگر از بخش افزونه ها > افزودن در پیشخوان وردپرس نصب و فعال نمایید .

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

۱. تنظیمات عمومی (General Settings)

در تب اول، هویت بصری و مسیرهای ارتباطی پنل را تعیین می‌کنید.

کد تخفیف سفارشی: اگر می‌خواهید کد تخفیف خاصی در پنل کاربری نمایش داده شود، آن را وارد کنید. در صورت خالی گذاشتن این فیلد، افزونه به‌صورت خودکار آخرین کد تخفیف ووکامرس را به کاربر نمایش می‌دهد.

رنگ اصلی پنل: با کلیک روی باکس رنگ، کد رنگ برند خود را انتخاب کنید تا تمامی المان‌های پنل کاربری با هویت بصری سایت شما هماهنگ شود.

(نسخه رایگان) لینک تیکت پشتیبانی: آدرس دقیق صفحه تیکت‌دهی سایت خود را در این قسمت قرار دهید. این لینک در پنل کاربری مشتری به عنوان “پشتیبانی” نمایش داده می‌شود. نسخه ی پرو سیستم تیکت و پشتیبانی داخلی حرفه ای دارد.

اعلان‌های پنل:

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

اعلان دوم (آبی): متن اعلان‌های فنی یا خدمات جدید را در اینجا بنویسید.

نکته: پس از تکمیل این فیلدها، حتماً روی دکمه “ذخیره تغییرات” کلیک کنید.

۲. ورود و احراز هویت پیامکی (SMS & OTP) (نسخه پرو)

این بخش قلب تپنده امنیت سایت شماست. برای فعال‌سازی ورود و ثبت‌نام پیامکی، مراحل زیر را دقیقاً انجام دهید:

فعال‌سازی OTP: گزینه‌های “فعال‌سازی رمز یک‌بار مصرف برای ثبت‌نام و ورود” و سایر گزینه‌های مربوطه را روی حالت “فعال” قرار دهید تا فرم ورود سایت به سیستم OTP مجهز شود.

اطلاعات سامانه پیامکی: برای اتصال به سرویس پیامک (فعلا فقط ملی‌پیامک)، اطلاعات زیر را دقیقاً از پنل پیامکی خود برداشته و وارد کنید:

  • نام کاربری ملی پیامک: نام کاربری پنل خود را وارد کنید.
  • رمز عبور ملی پیامک: رمز عبور اختصاصی پنل را وارد کنید.
  • شماره ارسال‌کننده: شماره خط خدماتی یا عمومی خود را در این فیلد درج کنید.
  • BodyID: کد مربوط به الگوی پیامکی (Template) تعریف شده در سامانه پیامکی را وارد کنید. این کد الزامی است تا پیامک‌های کد تایید به‌درستی به دست کاربران برسد.
  • ذخیره تنظیمات: در پایان اطلاعات، دکمه “ذخیره تغییرات” را بزنید. افزونه اکنون آماده ارسال پیامک تایید برای ثبت‌نام و ورود کاربران است.

۳. مدیریت کاربران (User Management) (نسخه پرو)

در تب سوم، یک داشبورد نظارتی کامل برای بررسی فعالیت کاربران در اختیار دارید:

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

جستجوی هوشمند: می‌توانید با استفاده از باکس جستجو، بر اساس نام کاربری یا ایمیل، اطلاعات دقیق یک مشتری خاص را بلافاصله پیدا کنید.

تحلیل رفتار: با مشاهده ستون‌های “تعداد ورود” و “روش آخرین ورود”، می‌توانید تحلیل کنید که کاربران شما بیشتر از طریق موبایل (پیامک) وارد می‌شوند یا ایمیل. این داده‌ها برای کمپین‌های تبلیغاتی شما حیاتی است.

نکات طلایی برای مدیریت بهتر:

پایداری: تمامی تنظیمات افزونه به صورت خودکار با قالب سایت شما هماهنگ می‌شوند.

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

امنیت: با فعال‌سازی اجبار شماره موبایل، سطح امنیت سایت خود را در برابر ربات‌های مخرب به حداکثر برسانید.

با انجام این تنظیمات، شما اکنون یک پنل کاربری مدیریت شده، امن و برندینگ شده دارید که مشتریان شما را به بازگشت دوباره ترغیب می‌کند. در صورت نیاز به راهنمایی‌های بیشتر یا شخصی‌سازی‌های اختصاصی، تیم پشتیبانی گیلان گرافیک در کنار شماست.

راهنمای گام‌به‌گام: (نسخه پرو) ساخت و تنظیم برگه‌های پنل کاربری

برای اینکه افزونه «پنل کاربری پیشرفته» به‌درستی عمل کند و کاربران مسیر ورود و دسترسی به حساب کاربری خود را پیدا کنند، باید برگه‌های زیر را در پیشخوان وردپرس ایجاد و تنظیم کنید.

۱. ساخت برگه ورود و ثبت‌نام (Auth Page)

این برگه دروازه ورودی سایت شماست. کاربر باید در این صفحه شماره موبایل خود را وارد کرده و کد تایید را دریافت کند.

نام برگه: ورود / ثبت‌نام
نامک (Slug): login-register

محتوای برگه: در ویرایشگر وردپرس، بلوک “کد کوتاه” (Shortcode) را انتخاب کرده و کد زیر را دقیقاً وارد کنید:


        <div class="wpudp-front-auth" dir="rtl">

            <div class="wpudp-auth-card">

                <div class="wpudp-auth-tabs">
                    <button type="button" class="wpudp-auth-tab is-active" data-wpudp-tab="login">
                        ورود
                    </button>
                    <button type="button" class="wpudp-auth-tab" data-wpudp-tab="register">
                        عضویت
                    </button>
                </div>

                
                <div class="wpudp-auth-panel is-active" id="wpudp-auth-login">

                    <form method="post" class="wpudp-auth-form">
                        <input type="hidden" name="wpudp_front_auth_action" value="login">
                        <input type="hidden" id="wpudp_login_nonce" name="wpudp_login_nonce" value="0289d27dcc" /><input type="hidden" name="_wp_http_referer" value="/dedicated-wordpress-plugin-marketplace/advanced-wordpress-and-woocommerce-user-panel-gilan-graphic-pro-version/" />
                        <div class="wpudp-auth-field">
                            <label>نام کاربری یا نشانی ایمیل</label>
                            <input type="text" name="wpudp_login_username" autocomplete="username" required>
                        </div>

                        <div class="wpudp-auth-field">
                            <label>رمز عبور</label>
                            <input type="password" name="wpudp_login_password" autocomplete="current-password" required>
                        </div>

                        <div class="wpudp-auth-row">
                            <label class="wpudp-auth-remember">
                                <input type="checkbox" name="wpudp_login_remember" value="1">
                                مرا به خاطر بسپار
                            </label>

                            <a href="https://gilangraphic.ir/lost-password/?page_id=79" class="wpudp-auth-link">
                                رمز عبور را فراموش کرده‌اید؟
                            </a>
                        </div>

                        <button type="submit" class="wpudp-auth-submit">
                            ورود
                        </button>
                    </form>

                    <div class="wpudp-auth-divider">
                        <span>یا ورود با موبایل</span>
                    </div>

                    <div class="wpudp-auth-mobile-box">

                        <div class="wpudp-auth-field">
                            <label>شماره موبایل</label>
                            <input type="text"
                                   id="wpudp_front_mobile"
                                   placeholder="09xxxxxxxxx"
                                   autocomplete="tel"
                                   inputmode="numeric">
                        </div>

                        <button type="button" id="wpudp_front_send_otp" class="wpudp-auth-submit wpudp-auth-submit-secondary">
                            ارسال کد ورود
                        </button>

                        <div id="wpudp_front_otp_wrap" style="display:none;">
                            <div class="wpudp-auth-field">
                                <label>کد تأیید</label>
                                <input type="text"
                                       id="wpudp_front_code"
                                       placeholder="کد پیامک شده"
                                       autocomplete="one-time-code"
                                       inputmode="numeric">
                            </div>

                            <button type="button" id="wpudp_front_verify_otp" class="wpudp-auth-submit">
                                تأیید و ورود
                            </button>
                        </div>

                        <div id="wpudp_front_otp_msg" class="wpudp-auth-ajax-msg" style="display:none;"></div>

                    </div>

                </div>

                <div class="wpudp-auth-panel" id="wpudp-auth-register">

                    <form method="post" class="wpudp-auth-form">
                        <input type="hidden" name="wpudp_front_auth_action" value="register">
                        <input type="hidden" id="wpudp_register_nonce" name="wpudp_register_nonce" value="339cc6b71b" /><input type="hidden" name="_wp_http_referer" value="/dedicated-wordpress-plugin-marketplace/advanced-wordpress-and-woocommerce-user-panel-gilan-graphic-pro-version/" />
                        <div class="wpudp-auth-field">
                            <label>نام کاربری</label>
                            <input type="text" name="wpudp_register_username" autocomplete="username" required>
                        </div>

                        <div class="wpudp-auth-field">
                            <label>ایمیل</label>
                            <input type="email" name="wpudp_register_email" autocomplete="email" required>
                        </div>

                        <div class="wpudp-auth-field">
                            <label>رمز عبور</label>
                            <input type="password" name="wpudp_register_password" autocomplete="new-password" required>
                        </div>

                        <button type="submit" class="wpudp-auth-submit">
                            ثبت‌نام
                        </button>
                    </form>

                    <div class="wpudp-auth-divider">
                        <span>عضویت سریع با موبایل</span>
                    </div>

                    <p class="wpudp-auth-help">
                        برای عضویت سریع، از تب ورود، شماره موبایل خود را وارد کنید. اگر حسابی با آن شماره وجود نداشته باشد، حساب جدید برای شما ساخته می‌شود.
                    </p>

                </div>

            </div>
        </div>

        <style>
            .wpudp-front-auth {
                max-width: 440px;
                margin: 35px auto;
                font-family: inherit;
            }

            .wpudp-auth-card {
                background: #ffffff;
                border: 1px solid #e5e7eb;
                border-radius: 18px;
                box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
                overflow: hidden;
            }

            .wpudp-auth-tabs {
                display: grid;
                grid-template-columns: 1fr 1fr;
                background: #f8fafc;
                border-bottom: 1px solid #e5e7eb;
            }

            .wpudp-auth-tab {
                border: 0;
                background: transparent;
                padding: 16px 12px;
                cursor: pointer;
                font-size: 15px;
                font-weight: 800;
                color: #64748b;
                transition: all .2s ease;
            }

            .wpudp-auth-tab.is-active {
                background: #ffffff;
                color: #2563eb;
                box-shadow: inset 0 -3px 0 #2563eb;
            }

            .wpudp-auth-panel {
                display: none;
                padding: 24px;
            }

            .wpudp-auth-panel.is-active {
                display: block;
            }

            .wpudp-auth-field {
                margin-bottom: 15px;
            }

            .wpudp-auth-field label {
                display: block;
                margin-bottom: 7px;
                font-size: 13px;
                font-weight: 700;
                color: #334155;
            }

            .wpudp-auth-field input {
                width: 100%;
                min-height: 44px;
                border: 1px solid #cbd5e1;
                border-radius: 10px;
                padding: 10px 12px;
                box-sizing: border-box;
                font-size: 14px;
                background: #fff;
                color: #111827;
                outline: none;
                transition: all .2s ease;
            }

            .wpudp-auth-field input:focus {
                border-color: #2563eb;
                box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
            }

            .wpudp-auth-row {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 10px;
                margin: 4px 0 16px;
                font-size: 13px;
            }

            .wpudp-auth-remember {
                display: inline-flex;
                align-items: center;
                gap: 6px;
                color: #475569;
                cursor: pointer;
            }

            .wpudp-auth-link {
                color: #2563eb;
                text-decoration: none;
                font-size: 13px;
            }

            .wpudp-auth-submit {
                width: 100%;
                min-height: 45px;
                border: 0;
                border-radius: 10px;
                background: #2563eb;
                color: #fff;
                font-weight: 800;
                font-size: 14px;
                cursor: pointer;
                transition: all .2s ease;
            }

            .wpudp-auth-submit:hover {
                background: #1d4ed8;
                transform: translateY(-1px);
            }

            .wpudp-auth-submit:disabled {
                opacity: .65;
                cursor: not-allowed;
                transform: none;
            }

            .wpudp-auth-submit-secondary {
                background: #475569;
                margin-bottom: 14px;
            }

            .wpudp-auth-submit-secondary:hover {
                background: #334155;
            }

            .wpudp-auth-divider {
                position: relative;
                text-align: center;
                margin: 22px 0;
                color: #94a3b8;
                font-size: 12px;
                font-weight: 700;
            }

            .wpudp-auth-divider:before {
                content: "";
                position: absolute;
                top: 50%;
                right: 0;
                left: 0;
                height: 1px;
                background: #e5e7eb;
            }

            .wpudp-auth-divider span {
                position: relative;
                display: inline-block;
                background: #fff;
                padding: 0 12px;
            }

            .wpudp-auth-notice {
                margin: 18px 24px 0;
                padding: 12px 14px;
                border-radius: 10px;
                font-size: 13px;
                font-weight: 700;
            }

            .wpudp-auth-notice-error {
                background: #fef2f2;
                color: #b91c1c;
                border: 1px solid #fecaca;
            }

            .wpudp-auth-notice-success {
                background: #f0fdf4;
                color: #15803d;
                border: 1px solid #bbf7d0;
            }

            .wpudp-auth-ajax-msg {
                margin-top: 12px;
                padding: 10px 12px;
                border-radius: 10px;
                font-size: 13px;
                font-weight: 700;
                text-align: center;
            }

            .wpudp-auth-ajax-msg.success {
                display: block;
                background: #f0fdf4;
                color: #15803d;
                border: 1px solid #bbf7d0;
            }

            .wpudp-auth-ajax-msg.error {
                display: block;
                background: #fef2f2;
                color: #b91c1c;
                border: 1px solid #fecaca;
            }

            .wpudp-auth-help {
                margin: 0;
                padding: 14px;
                background: #f8fafc;
                border: 1px dashed #cbd5e1;
                border-radius: 12px;
                color: #475569;
                font-size: 13px;
                line-height: 1.9;
            }

            .wpudp-front-auth-logged-in .wpudp-auth-card {
                text-align: center;
                padding: 28px;
            }

            .wpudp-auth-icon {
                width: 54px;
                height: 54px;
                border-radius: 50%;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                background: #dcfce7;
                color: #16a34a;
                font-size: 28px;
                font-weight: 900;
                margin-bottom: 12px;
            }

            .wpudp-auth-actions {
                display: flex;
                gap: 10px;
                justify-content: center;
                flex-wrap: wrap;
                margin-top: 18px;
            }

            .wpudp-auth-btn {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-height: 40px;
                padding: 0 16px;
                border-radius: 10px;
                background: #2563eb;
                color: #fff;
                text-decoration: none;
                font-weight: 800;
                font-size: 13px;
            }

            .wpudp-auth-btn-light {
                background: #f1f5f9;
                color: #334155;
            }
        </style>

        <script>
        document.addEventListener('DOMContentLoaded', function () {

            document.querySelectorAll('.wpudp-auth-tab').forEach(function(tab) {
                tab.addEventListener('click', function () {
                    const target = this.getAttribute('data-wpudp-tab');

                    document.querySelectorAll('.wpudp-auth-tab').forEach(function(item) {
                        item.classList.remove('is-active');
                    });

                    document.querySelectorAll('.wpudp-auth-panel').forEach(function(panel) {
                        panel.classList.remove('is-active');
                    });

                    this.classList.add('is-active');

                    const panel = document.getElementById('wpudp-auth-' + target);
                    if (panel) {
                        panel.classList.add('is-active');
                    }
                });
            });

            const ajaxUrl = "https://gilangraphic.ir/wp-admin/admin-ajax.php";
            const nonce = "4fe25d88c8";

            const mobileInput = document.getElementById('wpudp_front_mobile');
            const codeInput = document.getElementById('wpudp_front_code');
            const sendBtn = document.getElementById('wpudp_front_send_otp');
            const verifyBtn = document.getElementById('wpudp_front_verify_otp');
            const otpWrap = document.getElementById('wpudp_front_otp_wrap');
            const msg = document.getElementById('wpudp_front_otp_msg');

            function showMsg(text, type) {
                if (!msg) return;
                msg.textContent = text;
                msg.className = 'wpudp-auth-ajax-msg ' + type;
                msg.style.display = 'block';
            }

            function postAjax(data) {
                return fetch(ajaxUrl, {
                    method: 'POST',
                    credentials: 'same-origin',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
                    },
                    body: new URLSearchParams(data).toString()
                }).then(function(response) {
                    return response.json();
                });
            }

            if (sendBtn) {
                sendBtn.addEventListener('click', function () {
                    const mobile = mobileInput ? mobileInput.value.trim() : '';

                    sendBtn.disabled = true;
                    sendBtn.textContent = 'در حال ارسال...';

                    postAjax({
                        action: 'wpudp_login_send_otp',
                        nonce: nonce,
                        mobile: mobile
                    }).then(function(res) {
                        if (res.success) {
                            if (otpWrap) {
                                otpWrap.style.display = 'block';
                            }
                            showMsg(res.data || 'کد ورود ارسال شد.', 'success');
                        } else {
                            showMsg(res.data || 'ارسال کد ناموفق بود.', 'error');
                        }
                    }).catch(function() {
                        showMsg('خطای ارتباط با سرور.', 'error');
                    }).finally(function() {
                        sendBtn.disabled = false;
                        sendBtn.textContent = 'ارسال کد ورود';
                    });
                });
            }

            if (verifyBtn) {
                verifyBtn.addEventListener('click', function () {
                    const mobile = mobileInput ? mobileInput.value.trim() : '';
                    const code = codeInput ? codeInput.value.trim() : '';

                    verifyBtn.disabled = true;
                    verifyBtn.textContent = 'در حال بررسی...';

                    postAjax({
                        action: 'wpudp_login_verify',
                        nonce: nonce,
                        mobile: mobile,
                        code: code
                    }).then(function(res) {
                        if (res.success) {
                            showMsg('ورود موفق؛ در حال انتقال...', 'success');

                            /*
                             * نکته مهم:
                             * حتی اگر متد AJAX قدیمی redirect را admin_url بدهد،
                             * این فرم فرانت‌اند کاربر را در همین صفحه نگه می‌دارد/رفرش می‌کند.
                             */
                            window.location.href = window.location.href.split('#')[0];
                        } else {
                            showMsg(res.data || 'کد وارد شده صحیح نیست.', 'error');
                        }
                    }).catch(function() {
                        showMsg('خطای ارتباط با سرور.', 'error');
                    }).finally(function() {
                        verifyBtn.disabled = false;
                        verifyBtn.textContent = 'تأیید و ورود';
                    });
                });
            }

        });
        </script>

نکته: دقت کنید که در تنظیمات برگه، قالب (Template) صفحه را روی حالت تمام‌عرض (Full Width) یا حالتی که هدر و فوتر سایت را نمایش می‌دهد قرار دهید تا ظاهر سایت حفظ شود.

۲. ساخت برگه حساب کاربری (Dashboard Page)

این برگه داشبورد اصلی کاربر است که پس از ورود، به آن هدایت می‌شود. تمامی لینک‌های سفارش‌ها، تیکت‌ها و تنظیمات حساب در این بخش قرار می‌گیرد.

نام برگه: حساب کاربری
نامک (Slug): user-account

محتوای برگه: این برگه نیز با شورت کد نمایش داده می شود . شورت کد زیر را در برگه قرار دهید :

            <div class="wpudp6-login-wrap" style="display: flex; justify-content: center; padding: 40px 15px;">
                <div class="wpudp6-login-box" style="width: 100%; max-width: 450px; background: #fff; padding: 25px; border-radius: 15px; border: 1px solid #eee;">
                    <h3 style="text-align: center; margin-bottom: 25px; font-size: 18px; color: #1e40af; font-weight: bold;">
                        برای مشاهده داشبورد لطفاً وارد شوید
                    </h3>
                    
        <div class="wpudp-front-auth" dir="rtl">

            <div class="wpudp-auth-card">

                <div class="wpudp-auth-tabs">
                    <button type="button" class="wpudp-auth-tab is-active" data-wpudp-tab="login">
                        ورود
                    </button>
                    <button type="button" class="wpudp-auth-tab" data-wpudp-tab="register">
                        عضویت
                    </button>
                </div>

                
                <div class="wpudp-auth-panel is-active" id="wpudp-auth-login">

                    <form method="post" class="wpudp-auth-form">
                        <input type="hidden" name="wpudp_front_auth_action" value="login">
                        <input type="hidden" id="wpudp_login_nonce" name="wpudp_login_nonce" value="0289d27dcc" /><input type="hidden" name="_wp_http_referer" value="/dedicated-wordpress-plugin-marketplace/advanced-wordpress-and-woocommerce-user-panel-gilan-graphic-pro-version/" />
                        <div class="wpudp-auth-field">
                            <label>نام کاربری یا نشانی ایمیل</label>
                            <input type="text" name="wpudp_login_username" autocomplete="username" required>
                        </div>

                        <div class="wpudp-auth-field">
                            <label>رمز عبور</label>
                            <input type="password" name="wpudp_login_password" autocomplete="current-password" required>
                        </div>

                        <div class="wpudp-auth-row">
                            <label class="wpudp-auth-remember">
                                <input type="checkbox" name="wpudp_login_remember" value="1">
                                مرا به خاطر بسپار
                            </label>

                            <a href="https://gilangraphic.ir/lost-password/?page_id=79" class="wpudp-auth-link">
                                رمز عبور را فراموش کرده‌اید؟
                            </a>
                        </div>

                        <button type="submit" class="wpudp-auth-submit">
                            ورود
                        </button>
                    </form>

                    <div class="wpudp-auth-divider">
                        <span>یا ورود با موبایل</span>
                    </div>

                    <div class="wpudp-auth-mobile-box">

                        <div class="wpudp-auth-field">
                            <label>شماره موبایل</label>
                            <input type="text"
                                   id="wpudp_front_mobile"
                                   placeholder="09xxxxxxxxx"
                                   autocomplete="tel"
                                   inputmode="numeric">
                        </div>

                        <button type="button" id="wpudp_front_send_otp" class="wpudp-auth-submit wpudp-auth-submit-secondary">
                            ارسال کد ورود
                        </button>

                        <div id="wpudp_front_otp_wrap" style="display:none;">
                            <div class="wpudp-auth-field">
                                <label>کد تأیید</label>
                                <input type="text"
                                       id="wpudp_front_code"
                                       placeholder="کد پیامک شده"
                                       autocomplete="one-time-code"
                                       inputmode="numeric">
                            </div>

                            <button type="button" id="wpudp_front_verify_otp" class="wpudp-auth-submit">
                                تأیید و ورود
                            </button>
                        </div>

                        <div id="wpudp_front_otp_msg" class="wpudp-auth-ajax-msg" style="display:none;"></div>

                    </div>

                </div>

                <div class="wpudp-auth-panel" id="wpudp-auth-register">

                    <form method="post" class="wpudp-auth-form">
                        <input type="hidden" name="wpudp_front_auth_action" value="register">
                        <input type="hidden" id="wpudp_register_nonce" name="wpudp_register_nonce" value="339cc6b71b" /><input type="hidden" name="_wp_http_referer" value="/dedicated-wordpress-plugin-marketplace/advanced-wordpress-and-woocommerce-user-panel-gilan-graphic-pro-version/" />
                        <div class="wpudp-auth-field">
                            <label>نام کاربری</label>
                            <input type="text" name="wpudp_register_username" autocomplete="username" required>
                        </div>

                        <div class="wpudp-auth-field">
                            <label>ایمیل</label>
                            <input type="email" name="wpudp_register_email" autocomplete="email" required>
                        </div>

                        <div class="wpudp-auth-field">
                            <label>رمز عبور</label>
                            <input type="password" name="wpudp_register_password" autocomplete="new-password" required>
                        </div>

                        <button type="submit" class="wpudp-auth-submit">
                            ثبت‌نام
                        </button>
                    </form>

                    <div class="wpudp-auth-divider">
                        <span>عضویت سریع با موبایل</span>
                    </div>

                    <p class="wpudp-auth-help">
                        برای عضویت سریع، از تب ورود، شماره موبایل خود را وارد کنید. اگر حسابی با آن شماره وجود نداشته باشد، حساب جدید برای شما ساخته می‌شود.
                    </p>

                </div>

            </div>
        </div>

        <style>
            .wpudp-front-auth {
                max-width: 440px;
                margin: 35px auto;
                font-family: inherit;
            }

            .wpudp-auth-card {
                background: #ffffff;
                border: 1px solid #e5e7eb;
                border-radius: 18px;
                box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
                overflow: hidden;
            }

            .wpudp-auth-tabs {
                display: grid;
                grid-template-columns: 1fr 1fr;
                background: #f8fafc;
                border-bottom: 1px solid #e5e7eb;
            }

            .wpudp-auth-tab {
                border: 0;
                background: transparent;
                padding: 16px 12px;
                cursor: pointer;
                font-size: 15px;
                font-weight: 800;
                color: #64748b;
                transition: all .2s ease;
            }

            .wpudp-auth-tab.is-active {
                background: #ffffff;
                color: #2563eb;
                box-shadow: inset 0 -3px 0 #2563eb;
            }

            .wpudp-auth-panel {
                display: none;
                padding: 24px;
            }

            .wpudp-auth-panel.is-active {
                display: block;
            }

            .wpudp-auth-field {
                margin-bottom: 15px;
            }

            .wpudp-auth-field label {
                display: block;
                margin-bottom: 7px;
                font-size: 13px;
                font-weight: 700;
                color: #334155;
            }

            .wpudp-auth-field input {
                width: 100%;
                min-height: 44px;
                border: 1px solid #cbd5e1;
                border-radius: 10px;
                padding: 10px 12px;
                box-sizing: border-box;
                font-size: 14px;
                background: #fff;
                color: #111827;
                outline: none;
                transition: all .2s ease;
            }

            .wpudp-auth-field input:focus {
                border-color: #2563eb;
                box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
            }

            .wpudp-auth-row {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 10px;
                margin: 4px 0 16px;
                font-size: 13px;
            }

            .wpudp-auth-remember {
                display: inline-flex;
                align-items: center;
                gap: 6px;
                color: #475569;
                cursor: pointer;
            }

            .wpudp-auth-link {
                color: #2563eb;
                text-decoration: none;
                font-size: 13px;
            }

            .wpudp-auth-submit {
                width: 100%;
                min-height: 45px;
                border: 0;
                border-radius: 10px;
                background: #2563eb;
                color: #fff;
                font-weight: 800;
                font-size: 14px;
                cursor: pointer;
                transition: all .2s ease;
            }

            .wpudp-auth-submit:hover {
                background: #1d4ed8;
                transform: translateY(-1px);
            }

            .wpudp-auth-submit:disabled {
                opacity: .65;
                cursor: not-allowed;
                transform: none;
            }

            .wpudp-auth-submit-secondary {
                background: #475569;
                margin-bottom: 14px;
            }

            .wpudp-auth-submit-secondary:hover {
                background: #334155;
            }

            .wpudp-auth-divider {
                position: relative;
                text-align: center;
                margin: 22px 0;
                color: #94a3b8;
                font-size: 12px;
                font-weight: 700;
            }

            .wpudp-auth-divider:before {
                content: "";
                position: absolute;
                top: 50%;
                right: 0;
                left: 0;
                height: 1px;
                background: #e5e7eb;
            }

            .wpudp-auth-divider span {
                position: relative;
                display: inline-block;
                background: #fff;
                padding: 0 12px;
            }

            .wpudp-auth-notice {
                margin: 18px 24px 0;
                padding: 12px 14px;
                border-radius: 10px;
                font-size: 13px;
                font-weight: 700;
            }

            .wpudp-auth-notice-error {
                background: #fef2f2;
                color: #b91c1c;
                border: 1px solid #fecaca;
            }

            .wpudp-auth-notice-success {
                background: #f0fdf4;
                color: #15803d;
                border: 1px solid #bbf7d0;
            }

            .wpudp-auth-ajax-msg {
                margin-top: 12px;
                padding: 10px 12px;
                border-radius: 10px;
                font-size: 13px;
                font-weight: 700;
                text-align: center;
            }

            .wpudp-auth-ajax-msg.success {
                display: block;
                background: #f0fdf4;
                color: #15803d;
                border: 1px solid #bbf7d0;
            }

            .wpudp-auth-ajax-msg.error {
                display: block;
                background: #fef2f2;
                color: #b91c1c;
                border: 1px solid #fecaca;
            }

            .wpudp-auth-help {
                margin: 0;
                padding: 14px;
                background: #f8fafc;
                border: 1px dashed #cbd5e1;
                border-radius: 12px;
                color: #475569;
                font-size: 13px;
                line-height: 1.9;
            }

            .wpudp-front-auth-logged-in .wpudp-auth-card {
                text-align: center;
                padding: 28px;
            }

            .wpudp-auth-icon {
                width: 54px;
                height: 54px;
                border-radius: 50%;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                background: #dcfce7;
                color: #16a34a;
                font-size: 28px;
                font-weight: 900;
                margin-bottom: 12px;
            }

            .wpudp-auth-actions {
                display: flex;
                gap: 10px;
                justify-content: center;
                flex-wrap: wrap;
                margin-top: 18px;
            }

            .wpudp-auth-btn {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-height: 40px;
                padding: 0 16px;
                border-radius: 10px;
                background: #2563eb;
                color: #fff;
                text-decoration: none;
                font-weight: 800;
                font-size: 13px;
            }

            .wpudp-auth-btn-light {
                background: #f1f5f9;
                color: #334155;
            }
        </style>

        <script>
        document.addEventListener('DOMContentLoaded', function () {

            document.querySelectorAll('.wpudp-auth-tab').forEach(function(tab) {
                tab.addEventListener('click', function () {
                    const target = this.getAttribute('data-wpudp-tab');

                    document.querySelectorAll('.wpudp-auth-tab').forEach(function(item) {
                        item.classList.remove('is-active');
                    });

                    document.querySelectorAll('.wpudp-auth-panel').forEach(function(panel) {
                        panel.classList.remove('is-active');
                    });

                    this.classList.add('is-active');

                    const panel = document.getElementById('wpudp-auth-' + target);
                    if (panel) {
                        panel.classList.add('is-active');
                    }
                });
            });

            const ajaxUrl = "https://gilangraphic.ir/wp-admin/admin-ajax.php";
            const nonce = "4fe25d88c8";

            const mobileInput = document.getElementById('wpudp_front_mobile');
            const codeInput = document.getElementById('wpudp_front_code');
            const sendBtn = document.getElementById('wpudp_front_send_otp');
            const verifyBtn = document.getElementById('wpudp_front_verify_otp');
            const otpWrap = document.getElementById('wpudp_front_otp_wrap');
            const msg = document.getElementById('wpudp_front_otp_msg');

            function showMsg(text, type) {
                if (!msg) return;
                msg.textContent = text;
                msg.className = 'wpudp-auth-ajax-msg ' + type;
                msg.style.display = 'block';
            }

            function postAjax(data) {
                return fetch(ajaxUrl, {
                    method: 'POST',
                    credentials: 'same-origin',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
                    },
                    body: new URLSearchParams(data).toString()
                }).then(function(response) {
                    return response.json();
                });
            }

            if (sendBtn) {
                sendBtn.addEventListener('click', function () {
                    const mobile = mobileInput ? mobileInput.value.trim() : '';

                    sendBtn.disabled = true;
                    sendBtn.textContent = 'در حال ارسال...';

                    postAjax({
                        action: 'wpudp_login_send_otp',
                        nonce: nonce,
                        mobile: mobile
                    }).then(function(res) {
                        if (res.success) {
                            if (otpWrap) {
                                otpWrap.style.display = 'block';
                            }
                            showMsg(res.data || 'کد ورود ارسال شد.', 'success');
                        } else {
                            showMsg(res.data || 'ارسال کد ناموفق بود.', 'error');
                        }
                    }).catch(function() {
                        showMsg('خطای ارتباط با سرور.', 'error');
                    }).finally(function() {
                        sendBtn.disabled = false;
                        sendBtn.textContent = 'ارسال کد ورود';
                    });
                });
            }

            if (verifyBtn) {
                verifyBtn.addEventListener('click', function () {
                    const mobile = mobileInput ? mobileInput.value.trim() : '';
                    const code = codeInput ? codeInput.value.trim() : '';

                    verifyBtn.disabled = true;
                    verifyBtn.textContent = 'در حال بررسی...';

                    postAjax({
                        action: 'wpudp_login_verify',
                        nonce: nonce,
                        mobile: mobile,
                        code: code
                    }).then(function(res) {
                        if (res.success) {
                            showMsg('ورود موفق؛ در حال انتقال...', 'success');

                            /*
                             * نکته مهم:
                             * حتی اگر متد AJAX قدیمی redirect را admin_url بدهد،
                             * این فرم فرانت‌اند کاربر را در همین صفحه نگه می‌دارد/رفرش می‌کند.
                             */
                            window.location.href = window.location.href.split('#')[0];
                        } else {
                            showMsg(res.data || 'کد وارد شده صحیح نیست.', 'error');
                        }
                    }).catch(function() {
                        showMsg('خطای ارتباط با سرور.', 'error');
                    }).finally(function() {
                        verifyBtn.disabled = false;
                        verifyBtn.textContent = 'تأیید و ورود';
                    });
                });
            }

        });
        </script>

                        </div>
            </div>

۳. تنظیمات پیوندهای یکتا (Permalinks)

“اگر نیاز بود” : برای اینکه لینک‌های ساخته شده بدون خطا باز شوند، باید پیوندهای یکتای وردپرس را به‌روزرسانی کنید:

به مسیر تنظیمات > پیوندهای یکتا در پیشخوان وردپرس بروید.

بدون تغییر دادن گزینه انتخاب شده، مستقیماً روی دکمه “ذخیره تغییرات” کلیک کنید. این کار باعث می‌شود فایل .htaccess سایت بازسازی شده و آدرس‌های جدید (مانند برگه ورود) به‌درستی شناسایی شوند.

۴. افزودن به فهرست سایت (Menu)

برای دسترسی راحت کاربران، این برگه‌ها را به فهرست (Menu) سایت خود اضافه کنید:

به مسیر نمایش > فهرست‌ها بروید.

برگه‌های “ورود / ثبت‌نام” و “حساب کاربری” را به منوی اصلی اضافه کنید.

ترفند حرفه‌ای (Dynamic Menu): اختیاری : اگر دوست داشتید می توانید با استفاده از افزونه‌های مدیریت منو (مانند IF Menu)، کاری کنید که وقتی کاربر “وارد نشده” است، دکمه “ورود” را ببیند و وقتی “وارد شده” است، دکمه “حساب کاربری” نمایش داده شود.

0
No products in the cart.