سند تحویل فنی و راهنمای بهره‌برداری

راهنمای جامع افزونه
ParsEnergy Pro Request Manager

مدیریت درخواست، پیشنهاد قیمت، قرارداد، احراز هویت، پرداخت، پیامک و داشبورد کاربری در وردپرس

نسخه افزونه1.4.4
بستر اجراWordPress
حداقل وردپرس5.8
حداقل PHP8.0

این سند برای تحویل پروژه، آموزش مدیر سایت، نگهداری فنی و استفاده روزمره از افزونه تهیه شده است.

اطلاعات سند

عنوانمستندات کامل افزونه ParsEnergy Pro Request Manager
دامنه سندنصب، پیکربندی، معرفی ماژول‌ها، فرایندهای کاری، شورت‌کدها، دیتابیس، یکپارچه‌سازی‌ها و چک‌لیست تحویل
مخاطبانکارفرما، مدیر سایت، تیم پشتیبانی، توسعه‌دهنده وردپرس و مسئول بهره‌برداری سامانه
مبنای تهیهبررسی فایل افزونه و ساختار کد نسخه 1.4.4
برای تبدیل این سند به PDF، فایل را در مرورگر باز کنید و از مسیر Print گزینه Save as PDF را انتخاب نمایید.

فهرست مطالب

۱. خلاصه مدیریتی

افزونه ParsEnergy Pro Request Manager یک راهکار اختصاصی برای مدیریت چرخه خدمات و قراردادهای پارس انرژی در بستر وردپرس است. این افزونه مسیر کاری کاربر و مدیر را از ثبت‌نام اولیه تا ثبت درخواست، ارائه پیشنهاد قیمت، پذیرش پیشنهاد، تولید قرارداد، احراز هویت، پرداخت و پشتیبانی پس از ثبت قرارداد پوشش می‌دهد.

۱۳+
جدول اختصاصی
برای درخواست‌ها، قراردادها، پیامک‌ها، پرداخت‌ها، اعلان‌ها و لاگ‌ها.
۱۱
شورت‌کد کاربردی
برای صفحات کاربری، ورود، ثبت‌نام، پروفایل، احراز هویت و مشارکت.
۷+
یکپارچه‌سازی
Gravity Forms، WooCommerce، Elementor، Digits، سرویس‌های پیامک، Shabanic و OpenAI.

ارزش عملیاتی برای کارفرما

۲. معماری و ماژول‌ها

افزونه به صورت ماژولار طراحی شده است. فایل اصلی افزونه مسئول بارگذاری کلاس‌ها، تعریف ثابت‌ها، فعال‌سازی، ساخت جداول و ثبت hookهای اصلی است. هر حوزه کاری در یک ماژول یا کلاس جداگانه مدیریت می‌شود.

ماژول/بخشوظیفهخروجی عملیاتی
Authenticationثبت‌نام، ورود، OTP، پروفایل کاربرکاربر معتبر و آماده ثبت درخواست
Requestsثبت درخواست، ارتباط با فرم‌ها، تغییر وضعیتدرخواست قابل بررسی توسط مدیر
Offersثبت پیشنهاد قیمت، محاسبه مبلغ، انتخاب پیشنهادپیشنهاد قابل پذیرش توسط کاربر
Contractsایجاد قرارداد، کنترل وضعیت امضا و پرداختقرارداد رسمی مبتنی بر قالب
Paymentsثبت لاگ پرداخت و ارتباط با سفارشوضعیت مالی قرارداد
SMSارسال OTP و پیامک‌های اطلاع‌رسانیپیامک و لاگ ارسال
Notificationsاعلان داخلی برای کاربر یا مدیرپیگیری رویدادها در داشبورد
Dashboardنمایش اطلاعات کاربر در پنل فرانت‌اندداشبورد کاربری کامل
WooCommerceهمگام‌سازی پرداخت و سفارش‌هااتصال قرارداد به سفارش ووکامرس
Participationفرم مشارکت سرمایه‌گذاریدرخواست مشارکت با نوع مشخص
Logger / Cacheثبت رخدادها و بهینه‌سازی داده‌هاقابلیت عیب‌یابی و نگهداری

۳. پیش‌نیازها

پیش‌نیازهای الزامی
  • WordPress نسخه 5.8 یا بالاتر
  • PHP نسخه 8.0 یا بالاتر
  • دیتابیس MySQL/MariaDB با پشتیبانی utf8mb4
  • دسترسی مدیر کل برای نصب و تنظیم افزونه
پیش‌نیازهای وابسته به قابلیت
  • Gravity Forms برای فرم‌های درخواست سفارشی
  • WooCommerce برای پرداخت و سفارش
  • Elementor برای صفحات طراحی‌شده
  • Digits برای ورود/ثبت‌نام جایگزین
  • کلید سرویس پیامک و Shabanic برای OTP و احراز هویت
توصیه راه‌اندازی: ابتدا افزونه روی محیط staging نصب و با داده تست بررسی شود. پس از تأیید فرایندهای اصلی، انتقال به سایت اصلی انجام گردد.

۴. نصب و راه‌اندازی

آماده‌سازی
از سایت و دیتابیس بکاپ تهیه کنید و نسخه PHP و وردپرس را بررسی نمایید.
نصب افزونه
از پیشخوان وردپرس مسیر افزونه‌ها ← افزودن ← بارگذاری افزونه را انتخاب و فایل ZIP را نصب کنید.
فعال‌سازی
پس از فعال‌سازی، جدول‌های افزونه، صفحات پیش‌فرض، تنظیمات اولیه و زمان‌بندی‌های لازم ساخته می‌شوند.
پیکربندی اولیه
اطلاعات شرکت، سرویس پیامک، فرم‌ها، قالب قرارداد، صفحات و درگاه پرداخت را تنظیم کنید.
تست فرایند
یک کاربر تست بسازید، OTP بفرستید، درخواست ثبت کنید، پیشنهاد ایجاد کنید و قرارداد را بررسی نمایید.
تحویل عملیاتی
پس از تأیید، دسترسی‌ها، کلیدهای سرویس و چک‌لیست تحویل نهایی تکمیل شود.

۵. پنل مدیریت

منوی «پارس انرژی» در پیشخوان وردپرس مرکز کنترل افزونه است. بخش‌های قابل مشاهده برای مدیران دارای دسترسی manage_options طراحی شده‌اند.

بخش مدیریتیشرح کاربردکاربر مسئول
داشبوردنمایش خلاصه وضعیت سامانه، آمارها، وضعیت سرویس‌ها و میانبرهای مدیریتی.مدیر سیستم
درخواست‌هامشاهده درخواست‌های ثبت‌شده، بررسی جزئیات، تغییر وضعیت و پیگیری فرایند.کارشناس فروش/عملیات
پیشنهادهاثبت پیشنهاد، تعیین قیمت، تخفیف، مالیات، تاریخ انقضا و مدیریت پیشنهادهای ارسال‌شده.کارشناس فروش
قراردادهامشاهده قراردادهای ایجادشده، وضعیت امضا، پرداخت و اطلاعات مرتبط.واحد قراردادها
قالب قراردادویرایش متن و قالب قرارداد، وارد کردن HTML/Word و مدیریت متغیرها.مدیر محتوا/حقوقی
پرداخت‌هاکنترل وضعیت پرداخت‌ها، شماره سفارش، تراکنش، مبلغ و درگاه.مالی
لاگ پیامک‌هامشاهده پیامک‌های ارسال‌شده، وضعیت ارسال و پاسخ سرویس‌دهنده.پشتیبانی
لاگ افزونهبررسی رخدادها، خطاها و اطلاعات عیب‌یابی.توسعه‌دهنده/پشتیبانی فنی
تیکت‌هادریافت و پاسخ به پیام‌های پشتیبانی کاربران.پشتیبانی
احراز هویتبررسی درخواست‌های احراز هویت دستی و تأیید یا رد کاربر.واحد احراز هویت
تنظیماتمدیریت تمامی تنظیمات پایه و سرویس‌های جانبی.مدیر سایت
صفحاتایجاد، همگام‌سازی و کنترل صفحات پیش‌فرض افزونه.مدیر سایت

۶. تنظیمات

۶.۱ تنظیمات شرکت

اطلاعات هویتی شرکت شامل نام، آدرس، تلفن، ایمیل، شماره ثبت، شناسه ملی و امضا در این بخش ذخیره می‌شود. این داده‌ها در قراردادها و قالب‌های خروجی استفاده می‌شوند.

۶.۲ تنظیمات پیامک و OTP

افزونه قابلیت ارسال OTP و پیامک‌های اطلاع‌رسانی را دارد. سرویس‌های قابل تنظیم شامل Kavenegar، Ghasedak، FaraPayamak، IPPanel و Shabanic هستند. زمان انقضای OTP، شماره فرستنده، API Key، نام کاربری، رمز عبور و حالت ارسال از همین بخش مدیریت می‌شود.

۶.۳ تنظیمات فرم‌ها

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

۶.۴ تنظیمات قرارداد

قالب قرارداد، تنظیمات PDF، صفحه Elementor قرارداد، ظرفیت و مدت پیش‌فرض، سود تضمینی، جریمه تأخیر و متن‌های قراردادی در این بخش تعریف می‌شوند.

۶.۵ تنظیمات هوش مصنوعی

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

۶.۶ تنظیمات صفحات

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

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

۷. صفحات و شورت‌کدها

صفحات پیش‌فرض ایجادشونده

صفحهنشانی پیشنهادیمحتواکاربرد
ورود به حساب کاربریlogin-parsenergy[parsenergy_login_form] یا شورت‌کد Digitsورود کاربر
ثبت‌نامregister-parsenergy[parsenergy_register_form] یا شورت‌کد Digitsثبت‌نام کاربر
داشبورد کاربریdashboard-parsenergy[parsenergy_dashboard]مرکز پنل کاربر
درخواست‌های منmy-requests-parsenergy[parsenergy_user_requests]لیست درخواست‌های کاربر
قراردادهای منmy-contracts-parsenergy[parsenergy_user_contracts]لیست قراردادهای کاربر

فهرست شورت‌کدها

شورت‌کدمحل استفاده پیشنهادیشرح
[parsenergy_login_form]صفحه ورودفرم ورود اختصاصی افزونه.
[parsenergy_register_form]صفحه ثبت‌نامفرم ثبت‌نام اختصاصی افزونه.
[parsenergy_dashboard]داشبوردداشبورد اصلی و مسیر‌یابی بخش‌های کاربر.
[parsenergy_user_dashboard_v2]داشبورد جدیدنسخه دوم داشبورد با امکانات گسترده‌تر.
[parsenergy_user_requests]درخواست‌های مننمایش درخواست‌های ثبت‌شده کاربر.
[parsenergy_user_contracts]قراردادهای مننمایش قراردادهای مرتبط با کاربر.
[parsenergy_profile_form]پروفایلتکمیل و ویرایش اطلاعات تکمیلی کاربر.
[parsenergy_identity_verification]احراز هویتفرم احراز هویت و ثبت اطلاعات هویتی.
[parsenergy_create_test_request]تست داخلیایجاد درخواست تست برای بررسی عملکرد.
[parsenergy_participation_form]مشارکتفرم مشارکت در سرمایه‌گذاری.
[parsenergy_forms_tabs]صفحه فرم‌هانمایش تب ثبت درخواست و مشارکت.

۸. فرایندهای عملیاتی

۸.۱ فرایند ثبت درخواست تا قرارداد

  1. کاربر وارد سایت می‌شود یا با شماره موبایل ثبت‌نام می‌کند.
  2. کد OTP برای شماره موبایل ارسال و اعتبارسنجی می‌شود.
  3. کاربر اطلاعات پروفایل و در صورت نیاز اطلاعات احراز هویت را تکمیل می‌کند.
  4. درخواست پروژه از طریق فرم افزونه یا Gravity Forms ثبت می‌شود.
  5. درخواست با شماره یکتا در پنل مدیریت قابل مشاهده می‌شود.
  6. مدیر پیشنهاد قیمت ثبت می‌کند و وضعیت درخواست به مرحله دارای پیشنهاد تغییر می‌کند.
  7. کاربر پیشنهاد را مشاهده و در صورت تأیید، آن را می‌پذیرد.
  8. قرارداد بر اساس قالب تعریف‌شده ایجاد می‌شود.
  9. امضا/تأیید قرارداد از طریق OTP یا احراز هویت انجام می‌شود.
  10. در صورت نیاز، پرداخت ثبت و وضعیت قرارداد نهایی می‌شود.

۸.۲ فرایند تیکت پشتیبانی

  1. کاربر از داشبورد، موضوع و متن تیکت را ثبت می‌کند.
  2. تیکت در جدول تیکت‌ها با وضعیت باز ذخیره می‌شود.
  3. مدیر از بخش تیکت‌ها پاسخ می‌دهد و پیام در تاریخچه تیکت ثبت می‌شود.
  4. کاربر پاسخ را مشاهده کرده و در صورت نیاز پاسخ جدید ارسال می‌کند.

۸.۳ فرایند مشارکت

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

۹. وضعیت‌ها و شماره‌گذاری

الگوی شماره‌گذاری

نوعپیشوندنمونه الگوکاربرد
درخواستREQREQ-[timestamp]-[random]شناسه پیگیری درخواست
پیشنهادOFFOFF-[timestamp]-[random]شناسه پیشنهاد قیمت
قراردادCONCON-[timestamp]-[random]شناسه قرارداد

وضعیت‌های درخواست

کلید وضعیتمعنی پیشنهادی
pendingدر انتظار بررسی
has_offerدارای پیشنهاد قیمت
expiredمنقضی شده
awaiting_contractدر انتظار قرارداد
awaiting_inspectionدر انتظار بازدید/بررسی
awaiting_installationدر انتظار نصب
awaiting_gridدر انتظار اتصال/شبکه
operationalبهره‌برداری شده

وضعیت‌های قرارداد و پرداخت

قرارداد
  • draft: پیش‌نویس
  • pending: در انتظار تأیید
  • signed_by_user: امضا توسط مشتری
  • verified: تأیید شده
  • signed: امضا شده
  • active: فعال
  • completed: تکمیل شده
  • cancelled: لغو شده
پرداخت
  • pending: در انتظار پرداخت
  • processing: در حال پردازش
  • completed: پرداخت موفق
  • failed: پرداخت ناموفق
  • cancelled: لغو شده
  • refunded: برگشت داده شده

۱۰. قراردادها و متغیرهای قالب

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

گروهمتغیرها
اطلاعات قرارداد{{contract_number}}، {{contract_date}}، {{signed_date}}، {{order_number}}
اطلاعات مشتری{{customer_name}}، {{customer_national_id}}، {{customer_mobile}}، {{customer_address}}، {{customer_postal_code}}، {{customer_city}}، {{customer_province}}، {{customer_email}}
اطلاعات شرکت{{company_name}}، {{company_id}}، {{company_address}}، {{company_phone}}، {{company_email}}، {{company_signature}}
درخواست و پیشنهاد{{request_subject}}، {{request_number}}، {{offer_number}}، {{offer_amount}}، {{offer_amount_words}}، {{offer_description}}، {{project_description}}
شرایط پروژه{{capacity}}، {{duration}}، {{guaranteed_profit}}، {{delay_penalty}}، {{custom_terms}}، {{notes}}
نام‌های قدیمی{{user_name}}، {{user_national_id}}، {{user_phone}}، {{offer_price}}، {{order_id}}
نکته قالب قرارداد: پس از هر تغییر در قالب قرارداد، یک قرارداد تست ایجاد کنید و نمایش فارسی، جایگزینی متغیرها، امضاها، مبلغ و خروجی PDF را بررسی نمایید.

۱۱. ساختار دیتابیس

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

جدولکاربردداده‌های کلیدی
parsenergy_requestsدرخواست‌هاکاربر، شماره درخواست، شهر، استان، نوع پروژه، اطلاعات فرم، وضعیت
parsenergy_offersپیشنهادهادرخواست، شماره پیشنهاد، قیمت، تخفیف، مالیات، تاریخ انقضا، وضعیت
parsenergy_contractsقراردادهاشماره قرارداد، محتوا، وضعیت، پرداخت، OTP، فایل PDF
parsenergy_payment_logsپرداخت‌هاکاربر، درخواست، قرارداد، مبلغ، سفارش، تراکنش، درگاه، وضعیت
parsenergy_sms_logsلاگ پیامکشماره، متن، نوع، سرویس‌دهنده، وضعیت، پاسخ سرویس
parsenergy_notificationsاعلان‌هاکاربر، عنوان، پیام، نوع، وضعیت خوانده‌شدن
parsenergy_otp_sessionsOTPشماره، کد، نوع، مرجع، تعداد تلاش، زمان انقضا
parsenergy_user_metaاطلاعات تکمیلی کاربرکد ملی، آدرس، کدپستی، شرکت، تکمیل پروفایل
parsenergy_ticketsتیکت‌هاموضوع، پیام، پاسخ، وضعیت، زمان‌ها
parsenergy_ticket_messagesپیام‌های تیکتشناسه تیکت، کاربر، پیام، نوع فرستنده
parsenergy_productionتولید ماهانهکاربر، ماه، تاریخ، مقدار kWh
parsenergy_activity_logsلاگ فعالیتسطح، کانال، پیام، زمینه، کاربر، IP، مسیر درخواست
parsenergy_pagesمدیریت صفحاتعنوان، slug، محتوا، گزینه مرتبط

۱۲. اتصال‌ها و سرویس‌های جانبی

سرویسکاربرداطلاعات مورد نیازتست پیشنهادی
Gravity Formsثبت درخواست با فرم سفارشیشناسه فرم و نگاشت فیلدهاارسال یک فرم تست و بررسی ایجاد درخواست
WooCommerceپرداخت و سفارشفعال بودن ووکامرس و محصول/سفارش مرتبطایجاد پرداخت تست و بررسی وضعیت قرارداد
Elementorطراحی صفحات و ویجت‌هافعال بودن Elementor و صفحه انتخاب‌شدهنمایش داشبورد و قرارداد در فرانت‌اند
Digitsورود/ثبت‌نام موبایلی جایگزینشورت‌کد ورود و ثبت‌نام Digitsورود و ثبت‌نام کاربر تست
Shabanic/Shahkarاحراز هویت و تطبیق موبایل/کد ملیAPI Key و آدرس سرویساستعلام تست با داده معتبر
سرویس پیامکOTP و اطلاع‌رسانیAPI Key، فرستنده، نام کاربری/رمز در صورت نیازارسال OTP تست و مشاهده لاگ پیامک
OpenAIقابلیت‌های هوشمندAPI Key، مدل و وضعیت فعال‌سازیتست ارتباط از پنل مدیریت

۱۳. نگهداری و پشتیبانی

اقدامات دوره‌ای

عیب‌یابی سریع

مشکلموارد قابل بررسی
OTP ارسال نمی‌شودAPI Key پیامک، شماره فرستنده، اعتبار پنل، لاگ پیامک‌ها و زمان انقضای OTP را بررسی کنید.
درخواست ثبت نمی‌شودفرم، nonce، ورود کاربر، نگاشت فیلدها، جدول درخواست‌ها و خطاهای لاگ افزونه را بررسی کنید.
قرارداد تولید نمی‌شودپذیرش پیشنهاد، احراز هویت کاربر، قالب قرارداد و جدول قراردادها را بررسی کنید.
پرداخت همگام نمی‌شودووکامرس، وضعیت سفارش، metaهای سفارش و لاگ پرداخت را بررسی کنید.
متن فارسی به‌هم‌ریخته استcollation دیتابیس، charset سایت، قالب قرارداد و خروجی PDF را بررسی کنید.

۱۴. امنیت و کنترل دسترسی

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

اقدامات ضروری قبل از استفاده عملیاتی
  • کلیدهای API، رمزهای پیامک و اطلاعات سرویس‌ها فقط در تنظیمات سایت واقعی وارد شوند و در فایل‌ها نگهداری نشوند.
  • مقادیر پیش‌فرض نام کاربری/رمز سرویس IPPanel بازبینی و در صورت عدم نیاز حذف یا تغییر داده شود.
  • فایل‌های نمونه و آزمایشی، مخصوصاً نمونه‌های پوشه nid، از محیط production حذف یا غیرقابل اجرا شوند.
  • دسترسی مدیریت افزونه فقط به افراد مجاز داده شود.
  • قبل از تحویل نهایی، آزمون دسترسی کاربران انجام شود تا هر کاربر فقط اطلاعات خود را مشاهده کند.

کنترل‌های پیشنهادی

۱۵. چک‌لیست تحویل

چک‌لیست فنی

چک‌لیست تحویل به کارفرما

ردیفمورد تحویلیوضعیت
۱فایل ZIP افزونهتحویل شود
۲این مستند HTML/PDFتحویل شود
۳اطلاعات دسترسی پنل‌های پیامک و سرویس‌های جانبیتوسط کارفرما تکمیل شود
۴فهرست صفحات ساخته‌شده و لینک‌هاپس از نصب ثبت شود
۵گزارش تست فرایند کامل درخواست تا قراردادقبل از production تکمیل شود
۶بکاپ اولیه پس از راه‌اندازیتهیه شود
جمع‌بندی: پس از تکمیل تنظیمات و اجرای تست‌های فوق، افزونه برای بهره‌برداری عملیاتی و آموزش کاربران مدیریتی آماده خواهد بود.