Tutor Multisite Compatibility
Ett WordPress-plugin som lägger till kompatibilitetsfixar för Tutor LMS i multisite-miljöer.
Beskrivning
Detta plugin tillhandahåller nödvändiga kompatibilitetsfixar för att köra Tutor LMS på WordPress multisite-nätverk. Det hanterar användarinskrivningar, handledarhantering, kursbegränsningar och annan funktionalitet som är specifik för multisite.
Funktioner
- Hantera datatabeller: Upptäcker och skapar automatiskt saknade Tutor LMS-tabeller som misslyckas på grund av multisite-främmande nyckelbegränsningar
- Multisite-användarinskrivning: Anpassade AJAX-hanterare för att hantera användarinskrivningar över nätverksplatser
- Hantera handledarroller: Automatisk tilldelning och hantering av handledarroller i multisite-miljöer
- Kursbegränsningar: Integration med Ultimate Multisite för att hantera gränser för kurs- och funnelskapande baserat på platsplaner
- Anpassade adminvyer: Multisite-medveten lista och gränssnitt för handledare
- Adminverktyg: Gränssnitt för databasadministration för nätverks- och platsadministratörer
Krav
- WordPress 5.0+
- PHP 7.4+
- Tutor LMS plugin (tvingas automatiskt via
Requires Plugins-rubriken) - WordPress Multisite-installation
- Ultimate Multisite plugin (för funktionaliteten med kursbegränsningar)
Installation
- Ladda upp pluginfilerna till
/wp-content/plugins/tutor-multisite-compatibility/ - Se till att Tutor LMS är installerat och aktiverat
- Aktivera pluginet via menyn 'Plugins' i WordPress
- Pluginet integreras automatiskt med Tutor LMS
Filstruktur
tutor-multisite-compatibility/
├── tutor-multisite-compatibility.php (Huvudpluginfil)
├── includes/
│ ├── class-database-manager.php (Skapande och hantering av datatabeller)
│ ├── class-admin-interface.php (Admin-gränssnitt för databasadministration)
│ ├── class-course-limits.php (Hantera kurs- och funnelbegränsningar)
│ ├── class-instructor-manager.php (Hantera handledarroller)
│ ├── class-ajax-handlers.php (Anpassade AJAX-hanterare)
│ ├── class-query-helper.php (Databasfrågeverktyg)
│ ├── models/
│ │ └── class-multisite-user-model.php (Multisite-användarmodell)
│ └── admin/
│ ├── class-instructors-list.php (Anpassad handledarlista)
│ └── views/
│ └── instructors.php (Adminvy för handledare)
└── README.md
Funktionalitet Flyttad från MU Plugin
Detta plugin innehåller funktionalitet som tidigare fanns i wp-content/mu-plugins/daves.php:
- Begränsningar för ändring av kursstatus
- Begränsningar för kursskapande
- CartFlows-integration och gränser
- Tutor handledarrollhantering
- Hantering av användarinskrivningar i multisite
- Visning av kursprodukt-ID
Databasadministration
Problemet
I WordPress multisite-miljöer misslyckas skapandet av Tutor LMS-tabeller för tabeller med främmande nyckelbegränsningar till användartabellen. Detta händer eftersom:
- Plats-specifika tabeller använder prefix som
wp_2_tutor_carts - Främmande nycklar refererar till
wp_2_users(vilket inte existerar) - Den faktiska användartabellen är
wp_users(delad över hela nätverket)
Lösningen
Detta plugin gör automatiskt följande:
- Upptäcker saknade tabeller: Kontrollerar efter tabeller som misslyckades med att skapas på grund av främmande nyckelbegränsningar
- Skapar tabeller med korrekta referenser: Använder det korrekta namnet på användartabellen (
wp_usersi multisite) - Hantera flera scenarier:
- Pluginaktivering/reaktivering
- Skapande av ny plats i nätverket
- Manuell tabellkontroll via admin-gränssnittet
Berörda tabeller
tutor_coupon_usages- Innehåller främmande nyckel till användartabellentutor_carts- Innehåller främmande nyckel till användartabellentutor_notification_preferences- TutorPro-tabell med främmande nyckel till användartabellen
Admin-gränssnitt
Få tillgång till verktygen för databasadministration på:
- Nätverksadmin: Inställningar → Tutor Multisite DB
- Platsadmin: Verktyg → Tutor Multisite DB
Gränssnittet låter dig:
- Visa saknade tabeller över alla platser
- Manuell trigga tabellskapande
- Kontrollera databaskonfiguration
- Visa detaljerad statusinformation
Support
Detta plugin är specifikt utformat för KursoPro-plattformen. För teknisk support, kontakta utvecklingsteamet.