مرور کلی
میرلکسینی یک پلتفرم تولیدی وردپرس برای مشاوره حقوقی است: موکل آنلاین نوبت وکیل رزرو میکند، با زیبال پرداخت میکند، و همهچیز را از پنل فرانتاند JetEngine—نه wp-admin—مدیریت میکند. دو پلاگین اختصاصی DevAmir جتانجین و Bookly را تکمیل میکنند: Client Docs Manager آپلود امن مدارک، پاسخ متنی/فایلی ادمین و داشبورد سرویسهای خریداریشده؛ Devamir Ticket کانال پشتیبانی سبک اضافه میکند. بخش متمایز، لایه MySQL VIEW (purchased_services_view / purchased_services_view_order_by_created_at) است که جداول نوبت Bookly را با کاربران وردپرس JOIN میکند تا داده ترکیبی—نام سرویس، مشاور، وضعیت، پرداخت و لینک Google Meet—در یک جدول RTL داخل منوی jet-profile-menu نمایش داده شود.
چالش
Bookly رزروها را در اسکیمای خودش نگه میدارد؛ JetEngine پنل کاربری و CPT مدارک (client_documents) را مدیریت میکند. شناسه کاربر وردپرس بهصورت پیشفرض به مشتری Bookly وصل نمیشود، و مشاوره آنلاین به URL اختصاصی Google Meet برای هر نوبت نیاز دارد. کارفرما اعتبارسنجی فارسی روی آپلود، تاریخ شمسی در جداول، محافظت login برای صفحات تعرفه/درخواست مشاوره، درگاه زیبال سفارشی، و گردشکار مدارک با پاسخ متنی و فایلی میخواست—بدون ورود وکیل به wp-admin یا کپی دستی داده در اکسل.
رویکرد
JetEngine Profile Builder برای /panel-client/ با ویجت Elementor و ناوبری jet-profile-menu پیکربندی شد. پلاگینهای سفارشی شورتکدها (devamir_client_form، devamir_client_reply_table، devamir_user_services، devamir_ticket_tabs، devamir_edit_profile) را در صفحات پنل embed میکنند. VIEWهای MySQL جداول bookly_appointments، bookly_services، bookly_customer_appointments و wp_users را تجمیع میکنند و در PHP با $wpdb، صفحهبندی و ترجمه وضعیت مصرف میشوند. جدول wp_devamir_google_meet_links لینک تماس تصویری را با appointment_id نگه میدارد؛ ادمین از WP_List_Table فقط برای سرویسهای آنلاین/تصویری ویرایش میکند. گردش مدارک دو لایه است: CPT جتانجین client_documents + wp_devamir_client_documents برای جداول سریع. هوک موفقیت Bookly و پلاگین درگاه زیبال مسیر رزرو تا پنل را کامل میکند.
معماری
استک: Elementor + Hello Elementor Child، JetEngine 3.x (Profile Builder، CPT، Listing)، Bookly (نوبت/پرداخت)، DIGITS (ورود موبایل)، DevAmir Client Docs Manager، DevAmir Ticket، DevAmir Bookly Zibal Gateway. جداول: wp_devamir_client_documents، wp_devamir_google_meet_links، wp_devamir_chat_messages. VIEWهای SQL پل Bookly ↔ کاربر وردپرس. AJAX: devamir_submit_doc، save_google_meet_links، submit_ticket، devamir_custom_logout. زیرمنوهای ادمین زیر CPT client_documents. Child theme موفقیت BooklyL10n.success را override و login gate روی /tariffs/ و /request-for-advice/ اعمال میکند.
مصالحهها
داده ترکیبی به VIEWهای SQL دستی وابسته است—آپدیت Bookly ممکن است نیاز به migrate view داشته باشد. لینک Google Meet دستی است، نه API تقویم گوگل (عملیات سادهتر، کار دستی هر جلسه). ذخیره دوگانه مدارک (CPT + جدول) سرعت لیست را بالا میبرد اما sync در save_post لازم است. merchant زیبال در پلاگین hardcode شده. دمو نمونهکار فرض میکند export همزمان Bookly + JetEngine import شود. مسیر تم child در پوشه تو در تو themes/—در migration بهتر normalize شود.
نتایج
موکل روی میرلکسینی مشاوره رزرو میکند، با زیبال پرداخت میکند و در پنل RTL یکپارچه میبیند: سرویسهای من (Bookly + VIEW)، لینک جلسه تصویری، ارسال مدرک با پاسخ ادمین، تیکت و ویرایش پروفایل—بدون wp-admin. ادمین پاسخ مدارک، لینک Meet مشاوره آنلاین و تیکتها را از جداول اختصاصی مدیریت میکند. پروژه نشان میدهد JetEngine + پلاگینهای مکمل PHP + VIEW MySQL میتواند جای backend SaaS سفارشی برای نوبتدهی حقوقی niche را بگیرد.
درسهای آموختهشده
MySQL VIEW تمیزترین راه نمایش داده cross-plugin در شورتکد وردپرس است وقتی API آماده کند یا سفارشیسازی آن کند است. JetEngine برای UI/مسیریابی و پلاگین PHP برای منطق تراکنشی (آپلود، پرداخت، Meet) بار Listing کرокوبلاک را با SQL خام کم میکند. namespace جدا برای nonce در AJAX (admin vs user) از تداخل اسکریپت جلوگیری میکند. فرمت شمسی در یک helper مرکزی (dev_cdm_format_jalali) reuse شود. UX بعد از رزرو در override BooklyL10n.success بماند تا ویرایش Elementor جریان تأیید را نشکند.