Совместимость Tutor Multisite
Плагин WordPress, который добавляет исправления совместимости для Tutor LMS в многосайтовых средах.
Описание
Этот плагин предоставляет необходимые исправления совместимости для работы Tutor LMS в сетях WordPress Multisite. Он обрабатывает регистрацию пользователей, управление преподавателями, ограничения курсов и другие функции, специфичные для многосайтовой среды.
Возможности
- Управление таблицами базы данных: автоматически обнаруживает и создает отсутствующие таблицы Tutor LMS, которые не создаются из‑за ограничений внешних ключей в многосайтовой сети
- Регистрация пользователей в многосайтовой сети: пользовательские обработчики AJAX для управления регистрацией пользователей на всех сайтах сети
- Управление ролями преподавателей: автоматическое назначение и управление ролями преподавателей в многосайтовой среде
- Ограничения курсов: интеграция с Ultimate Multisite для управления ограничениями создания курсов и воронок на основе планов сайтов
- Пользовательские админ-виды: список преподавателей и интерфейс управления, учитывающие многосайтовую среду
- Инструменты администратора: интерфейс управления базой данных для администраторов сети и сайтов
Требования
- WordPress 5.0+
- PHP 7.4+
- Плагин Tutor LMS (автоматически проверяется через заголовок
Requires Plugins) - Установка WordPress Multisite
- Плагин Ultimate Multisite (для функционала ограничений курсов)
Установка
- Загрузите файлы плагина в
/wp-content/plugins/tutor-multisite-compatibility/ - Убедитесь, что Tutor LMS установлен и активирован
- Активируйте плагин через меню «Плагины» в WordPress
- Плагин автоматически интегрируется с Tutor LMS
Структура файлов
tutor-multisite-compatibility/
├── tutor-multisite-compatibility.php (Main plugin file)
├── includes/
│ ├── class-database-manager.php (Database table creation and management)
│ ├── class-admin-interface.php (Admin interface for database management)
│ ├── class-course-limits.php (Course and funnel limitation handlers)
│ ├── class-instructor-manager.php (Instructor role management)
│ ├── class-ajax-handlers.php (Custom AJAX handlers)
│ ├── class-query-helper.php (Database query utilities)
│ ├── models/
│ │ └── class-multisite-user-model.php (Multisite user model)
│ └── admin/
│ ├── class-instructors-list.php (Custom instructor list)
│ └── views/
│ └── instructors.php (Instructor admin view)
└── README.md
Функциональность перенесена из MU-плагина
Этот плагин содержит функциональность, которая ранее находилась в wp-content/mu-plugins/daves.php:
- Ограничения изменения статуса курса
- Ограничения создания курсов
- Интеграция с CartFlows и ограничения
- Управление ролями преподавателей Tutor
- Обработка регистрации пользователей в многосайтовой сети
- Отображение ID продукта курса
Управление базой данных
Проблема
В средах WordPress Multisite создание таблиц Tutor LMS не удаётся для таблиц с внешними ключами к таблице пользователей. Это происходит по следующим причинам:
- Таблицы, специфичные для сайта, используют префиксы, например
wp_2_tutor_carts - Внешние ключи ссылаются на
wp_2_users(который не существует) - Фактическая таблица пользователей —
wp_users(общая для всей сети)
Решение
Этот плагин автоматически:
- Обнаруживает отсутствующие таблицы: проверяет таблицы, которые не удалось создать из‑за ограничений внешних ключей
- Создаёт таблицы с правильными ссылками: использует правильное имя таблицы пользователей (
wp_usersв многосайтовой сети) - Обрабатывает несколько сценариев:
- активация/повторная активация плагина
- создание нового сайта в сети
- ручная проверка таблиц через интерфейс администратора
Влияние на таблицы
tutor_coupon_usages- содержит внешний ключ к таблице пользователейtutor_carts- содержит внешний ключ к таблице пользователейtutor_notification_preferences- таблица TutorPro с внешним ключом к таблице пользователей