پرش به مطلب اصلی
Paid AddonPurchase Tutor Multisite Compatibility | Install via your site's addon page or download from your account

سازگاری Tutor با محیط چندسایتی (Multisite)

یک پلاگین وردپرس که رفع اشکال سازگاری برای Tutor LMS در محیط‌های چندسایتی (multisite) اضافه می‌کند.

توضیحات

این پلاگین رفع اشکال‌های ضروری سازگاری را برای اجرای Tutor LMS در شبکه‌های چندسایتی وردپرس فراهم می‌کند. این پلاگین مسئولیت مدیریت ثبت‌نام کاربران، مدیریت مدرسین، محدودیت‌های دوره و سایر قابلیت‌های خاص محیط چندسایتی را بر عهده دارد.

ویژگی‌ها

  • مدیریت جداول پایگاه داده: شناسایی و ایجاد خودکار جداول Tutor LMS که به دلیل محدودیت‌های کلید خارجی (foreign key) در محیط چندسایتی ناقص مانده‌اند.
  • ثبت‌نام کاربران در محیط چندسایتی: هندلرهای AJAX سفارشی برای مدیریت ثبت‌نام کاربران در سایت‌های مختلف شبکه.
  • مدیریت نقش مدرس: تخصیص و مدیریت خودکار نقش مدرس در محیط‌های چندسایتی.
  • محدودیت‌های دوره: یکپارچه‌سازی با Ultimate Multisite برای مدیریت محدودیت‌های ایجاد دوره و قیف (funnel) بر اساس طرح‌های سایت.
  • نمای پیشرفته مدیریت: رابط کاربری و لیست مدرسین آگاه به محیط چندسایتی.
  • ابزارهای مدیریت: رابط مدیریت پایگاه داده برای مدیران شبکه و سایت.

پیش‌نیازها

  • WordPress 5.0+
  • PHP 7.4+
  • پلاگین Tutor LMS (به طور خودکار از طریق هدر Requires Plugins اعمال می‌شود)
  • نصب وردپرس چندسایتی (Multisite)
  • پلاگین Ultimate Multisite (برای قابلیت محدودیت دوره)

نصب

  1. فایل‌های پلاگین را در مسیر /wp-content/plugins/tutor-multisite-compatibility/ آپلود کنید.
  2. مطمئن شوید که Tutor LMS نصب و فعال شده است.
  3. پلاگین را از طریق منوی 'Plugins' در وردپرس فعال کنید.
  4. پلاگین به طور خودکار با Tutor LMS یکپارچه می‌شود.

ساختار فایل

tutor-multisite-compatibility/
├── tutor-multisite-compatibility.php (فایل اصلی پلاگین)
├── includes/
│ ├── class-database-manager.php (ایجاد و مدیریت جداول پایگاه داده)
│ ├── class-admin-interface.php (رابط مدیریت پایگاه داده در پنل ادمین)
│ ├── class-course-limits.php (مدیریت محدودیت‌های دوره و قیف)
│ ├── class-instructor-manager.php (مدیریت نقش مدرس)
│ ├── class-ajax-handlers.php (هندلرهای AJAX سفارشی)
│ ├── class-query-helper.php (ابزارهای کوئری پایگاه داده)
│ ├── models/
│ │ └── class-multisite-user-model.php (مدل کاربر چندسایتی)
│ └── admin/
│ ├── class-instructors-list.php (لیست سفارشی مدرسین)
│ └── views/
│ └── instructors.php (نمای ادمین مدرسین)
└── README.md

قابلیت‌های منتقل شده از پلاگین MU

این پلاگین شامل قابلیت‌هایی است که قبلاً در wp-content/mu-plugins/daves.php قرار داشتند:

  • محدودیت‌های تغییر وضعیت دوره
  • محدودیت‌های ایجاد دوره
  • یکپارچه‌سازی و محدودیت‌های CartFlows
  • مدیریت نقش مدرس Tutor
  • مدیریت ثبت‌نام کاربران چندسایتی
  • نمایش شناسه محصول دوره

مدیریت پایگاه داده

مشکل

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

  • جداول مخصوص سایت از پیشوندهایی مانند wp_2_tutor_carts استفاده می‌کنند.
  • کلیدهای خارجی به wp_2_users (که وجود ندارد) ارجاع می‌دهند.
  • جدول واقعی کاربران wp_users است (که در کل شبکه مشترک است).

راه‌حل

این پلاگین به صورت خودکار:

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

جداول تحت تأثیر

  • tutor_coupon_usages - شامل کلید خارجی به جدول کاربران
  • tutor_carts - شامل کلید خارجی به جدول کاربران
  • tutor_notification_preferences - جدول TutorPro با کلید خارجی به جدول کاربران

رابط ادمین

به ابزارهای مدیریت پایگاه داده در آدرس زیر دسترسی پیدا کنید:

  • مدیر شبکه: تنظیمات (Settings) → Tutor Multisite DB
  • مدیر سایت: ابزارها (Tools) → Tutor Multisite DB

این رابط به شما امکان می‌دهد:

  • جداول ناقص را در تمام سایت‌ها مشاهده کنید.
  • ایجاد جداول را به صورت دستی فعال کنید.
  • پیکربندی پایگاه داده را بررسی نمایید.
  • اطلاعات وضعیت دقیقی را مشاهده کنید.

پشتیبانی

این پلاگین به طور خاص برای پلتفرم KursoPro طراحی شده است. برای پشتیبانی فنی، با تیم توسعه تماس بگیرید.