TutorLab
Knowledge Base
Guida completa al plugin WordPress LMS di nuova generazione. Copre ogni modulo: dalla gerarchia dei corsi all'AI Suite con RAG, dal Builder drag-and-drop all'engine di gamification con XP e badge.
Quick Start in 5 Passi
Parti subito con TutorLab. Segui questi cinque passi per avere il tuo corso online e attivo.
- Attiva la Licenza
Vai su Tutor Lab → Impostazioni → Licenza, inserisci la chiave ricevuta via email e clicca "Attiva". Il sistema verifica la licenza online e abilita i moduli inclusi nel tuo piano.
- Crea la struttura del corso
Vai su Gestione Classi, crea un Corso (container principale) e poi una o più Classi (edizioni temporali). Assegna esercizi, lezioni e documenti alla classe.
- Aggiungi studenti
Vai su Sistema → Importa Studenti per import CSV massivo, oppure approva le registrazioni dalla pagina Approvazioni. Assegna ogni studente a Corso → Classe → (Gruppo opzionale).
- Crea gli esercizi col Builder
Vai su Contenuti → Builder Esercizi. Inserisci titolo e icona, trascina i blocchi dalla palette nella canvas, configura ciascuno e clicca "Pubblica".
- Monitora i progressi
Dalla Dashboard Docente e dalla Matrice Progressi visualizza in tempo reale lo stato di ogni studente per ogni esercizio.
Requisiti & Licenza
Requisiti WordPress
- WordPress 6.0+
- PHP 8.0+
- MySQL 5.7+ / MariaDB 10.3+
- ACF PRO 6.0+ (obbligatorio)
- TCPDF (incluso in /lib/tcpdf/)
Requisiti AI Suite
- Chiave API OpenAI valida
- Addon AI attivo nella licenza
- PHP cURL abilitato
- Connessione HTTPS attiva
Addons Disponibili
- ai_coach — AI Coach studente
- gamification_advanced — XP & badge avanzati
- pdf_export — Export PDF esercizi
- email_automation — Email template
- advanced_reports — Analytics avanzate
- multi_team — Team multipli
- sso — Single Sign-On
TutorLab AI Suite
Un sistema AI verticale e contestuale che potenzia l'apprendimento senza mai "inventare" informazioni. Basato su RAG (Retrieval-Augmented Generation), risponde solo sui contenuti del corso.
ai_coach è incluso nella licenza e la chiave API OpenAI è configurata in AI → Configurazione AI.RAG Engine — Zero Allucinazioni
A differenza dei chatbot generici, TutorLab utilizza il paradigma RAG: prima recupera i chunk rilevanti dalla Knowledge Base, poi li inietta nel prompt come contesto. Se la risposta non è nei documenti caricati, l'AI lo dice esplicitamente e suggerisce di contattare il docente umano.
Coaching Adattivo
Il tono e la complessità della risposta si adattano automaticamente al profilo dello studente (Novizio → incoraggiante, Esperto → sfidante, In Difficoltà → supportivo).
Sistema Crediti
Ogni chiamata AI consuma crediti. Il docente assegna crediti per utente o classe. Include piani in abbonamento e pacchetti one-shot con PayPal e Stripe.
Analytics AI
Dashboard con: chiamate API totali, token consumati, costi stimati, utilizzo per studente, per corso e per tipo di operazione. Export CSV disponibile.
AI Coach (Frontend Studente)
Widget di chat integrato nel frontend. Lo studente può fare domande sul corso; l'AI risponde basandosi esclusivamente sulla Knowledge Base del docente.
[tutor_lab_ai_coach]
[tutorlab_ai_coach corso="Nome Corso" modulo="Nome Modulo" show_history="yes"]Funzionalità
- Risposte contestuali: solo argomenti del corso
- Storico chat: persistente tra sessioni
- Feedback immediato: voto Utile/Non Utile
- Fallback intelligente: se non trova risposta, rimanda al docente
- Rate limiting: prevenzione abusi configurabile
Azioni AJAX
tutor_lab_ai_coach_send— invia messaggiotutor_lab_ai_coach_history— recupera storicotutor_lab_ai_coach_clear— cancella storicotutor_lab_ai_coach_ask— query diretta
Coaching Adattivo per Profilo
| Profilo Studente | Tono AI | Esempio risposta a "Cos'è il ROAS?" |
|---|---|---|
| Novizio Pochi XP, primi accessi | Incoraggiante | "Ottima domanda! Il ROAS è il ritorno sulla spesa pubblicitaria. Se spendi 1€ e guadagni 4€, il ROAS è 4. Continua così!" |
| Esperto Livello Maestro | Sfidante | "ROAS = Revenue / Ad Spend. Attenzione: un ROAS alto non significa profitto se i margini sono bassi. Hai considerato l'impatto del CAC?" |
| In Difficoltà Molti errori recenti | Supportivo | "Capisco la confusione. Facciamo un passo indietro con un esempio pratico. Non preoccuparti, ci arriveremo insieme." |
RAG Engine & Knowledge Base
Il motore di ricerca semantica che alimenta le risposte dell'AI Coach. Gestione da AI → Knowledge Base nel backend.
1. Upload KB
Carica testi, FAQ, trascrizioni lezioni, PDF convertiti in testo. Ogni item ha: titolo, contenuto, tipo, corso/modulo associato.
2. Chunking
La classe TutorLab_KB_Chunker spezza i testi lunghi in chunk semantici con sovrapposizione configurabile. Ottimizzati per embedding.
3. Vettorializzazione
I chunk vengono trasformati in vettori numerici via OpenAI Embeddings API. Permette ricerca per "concetto" e non solo per parola chiave.
Azioni AJAX Knowledge Base
| Azione AJAX | Descrizione |
|---|---|
tutor_lab_kb_delete | Elimina un item dalla KB |
tutor_lab_kb_search | Ricerca semantica nella KB |
tutor_lab_kb_reindex | Ricalcola embedding per un item |
tutor_lab_kb_preview_chunks | Anteprima chunking di un testo |
tutor_lab_kb_get_stats | Statistiche KB (count, coverage) |
tutor_lab_kb_bulk_action | Operazioni bulk (reindex, delete) |
tutor_lab_ai_batch_embed_kb | Batch embedding dell'intera KB |
AI Feedback Generator (Docente)
Quando correggi un esercizio, clicca "Genera Feedback AI". Il sistema legge la risposta dello studente e genera una bozza di correzione contestualizzata.
Payload inviato all'AI
{
"role": "teacher",
"student_level": "beginner",
"exercise_context": "Analisi SWOT",
"student_answer": "...",
"ideal_solution": "...",
"tone": "formale"
}
La risposta generata viene inserita come bozza nel campo "Feedback Generale" — il docente può modificarla prima di pubblicarla. Azione AJAX: tutor_lab_ai_enhance_feedback
Sistema Crediti AI
Database Crediti
Tabelle: wp_tutor_lab_ai_credits (saldo utente) e wp_tutor_lab_ai_transactions (libro mastro). Ogni operazione è tracciata.
Piani Abbonamento
Piani mensili/annuali con crediti automatici (Starter, Professional, Enterprise). Rinnovo automatico via cron WP.
Pacchetti One-Shot
Acquisto una-tantum di bundle crediti a volume fisso. Sconti volume configurabili. Integrazione PayPal e Stripe.
Notifiche Soglia
Email automatica quando i crediti scendono sotto la soglia configurata. Avviso dashboard dismissibile via AJAX.
Pagamenti AI
PayPal Integration
Gestito dalla classe TutorLab_PayPal_Handler.
tutor_lab_paypal_create_ordertutor_lab_paypal_capture_order
Stripe Integration
Gestito dalla classe TutorLab_Stripe_Handler. Checkout Session sicuro.
tutor_lab_stripe_create_checkout
Menu Backend
Il menu del plugin è organizzato in 6 sezioni logiche con intestazioni visive. La sezione AI appare solo se l'addon è attivo.
| Sezione | Voce di Menu | Slug / Pagina |
|---|---|---|
| Root | Dashboard Docente | tutor-lab-dashboard |
| 👑 Superadmin | tutor-lab-superadmin | |
| GESTIONE | 📚 Gestione Classi | tutor-lab-class-management |
| Lista Studenti | tutor-lab-students-list | |
| 👥 Team & Staff | tutor-lab-team | |
| 🔐 Permessi Docenti | tutor-lab-teacher-permissions | |
| CONTENUTI | ✏️ Esercizi | edit.php?post_type=esercizio |
| ⚡ Builder Esercizi | tutor-lab-builder | |
| 📝 Risposte Studenti | edit.php?post_type=risposta_studente | |
| 🎓 Lezioni | edit.php?post_type=lezione | |
| 📄 Documenti | edit.php?post_type=documento | |
| 📊 Sondaggi & Test | edit.php?post_type=sondaggio | |
| COMUNICAZIONE | 💬 Messaggistica | tutor-lab-messages |
| 📢 Annunci | edit.php?post_type=annuncio | |
| 📧 Archivio Email | edit.php?post_type=tutor_class_email | |
| GAMIFICATION | 🏆 Badge | edit.php?post_type=badge |
| 🎁 Premi | edit.php?post_type=premio | |
| AI premium | 🤖 Configurazione AI | tutor-lab-ai-config |
| 📚 Knowledge Base | tutor-lab-kb | |
| 📊 Utilizzo AI | tutor-lab-ai-usage | |
| 💳 Crediti AI | tutor-lab-ai-credits | |
| SISTEMA | 📊 Report & Statistiche | tutor-lab-reports |
| 🛒 Store Addon | tutor-lab-store | |
| ⚙️ Impostazioni | tutor-lab-settings | |
| 📥 Importa Studenti | tutor-lab-import | |
| ✅ Approvazioni | tutor-lab-approvals |
Gerarchia Didattica
Struttura a 4 livelli per gestire organizzazioni complesse con più corsi, classi e gruppi di lavoro paralleli.
1. Corso
Il container principale (es. "Marketing Digitale 2026"). Definisce il programma globale, i materiali e le impostazioni generali. Può avere più Classi contemporaneamente.
2. Classe
Edizione temporale del Corso (es. "Classe Febbraio 2026"). Ha date di inizio/fine specifiche, docenti assegnati, esercizi e configurazioni proprie.
3. Gruppo di Lavoro
Sotto-insieme dentro una Classe (es. "Team Alpha"). Utile per lavori di gruppo, tutoraggio specifico e progetti collaborativi differenziati.
4. Studente
L'utente finale. Può essere iscritto a più Corsi mantenendo progressi XP e badge separati per ciascuno.
classe è applicata a: esercizio, lezione, documento, annuncio, tutor_class_email, sondaggio. Ogni contenuto è sempre associato a una o più classi.Gestione Classi
Lock Temporale
Imposta date di inizio e fine corso. Gli studenti non possono accedere ai materiali fuori da questa finestra. Meta term: _tutor_lab_start_date, _tutor_lab_end_date.
Toggle Moduli per Classe
Attiva/disattiva per classe specifica: Gamification (_tutor_lab_gamification_enabled), Messaggistica (_tutor_lab_messaging_enabled), Review Banner (_tutor_lab_review_banner_enabled).
Workflow Approvazioni
Gli studenti si registrano come "Pending". Dashboard dedicata per approvare l'ingresso e assegnare Corso → Classe → Gruppo in un'unica operazione.
Matrice Progressi
Vista a griglia: righe = studenti, colonne = esercizi, cella = stato (completato, in corso, non iniziato, in revisione). Carica 50×50 in <200ms.
Azioni AJAX Gestione Classi
| Azione | Descrizione |
|---|---|
tutor_lab_hierarchy_action | Operazioni gerarchia (crea, modifica, elimina nodi) |
tutor_lab_add_students_to_class | Iscrizione studenti a una classe |
tutor_lab_remove_student_from_class | Rimozione iscrizione |
tutor_lab_update_class_exercises | Aggiorna esercizi assegnati alla classe |
tutor_lab_refresh_matrix_data | Aggiorna la matrice progressi |
tutor_lab_save_student_internal_note | Salva nota interna admin sullo studente |
Ruoli & Permessi Staff
| Ruolo | Livello | Responsabilità | Ambito (Scope) |
|---|---|---|---|
| Super Admin | Lv.100 | Accesso totale, gestione plugin, settings globali, billing e licenze. | Globale |
| Coordinatore | Lv.80 | Crea classi, gestisce iscrizioni, assegna Tutor, vede report globali. | Per Corso |
| Tutor | Lv.60 | Monitora progressi, sblocca esercizi, gestisce gruppi specifici. | Per Classe |
| Docente | Lv.40 | Valuta esercizi, invia feedback, crea contenuti didattici. | Per Classe |
| Studente | Lv.10 | Accede ai propri materiali, esegue esercizi, legge feedback. | Propria Classe |
Team & Staff
Gestisci collaboratori dalla pagina Gestione → Team & Staff. Ogni membro ha un ruolo specifico con scope limitato alla propria area di responsabilità.
multi_team nella licenza è richiesto per gestire team multipli su più corsi contemporaneamente. Senza di esso, è disponibile solo la gestione base utente WordPress.Builder Esercizi
Editor visuale drag & drop per creare esercitazioni interattive senza scrivere codice. Accedi da Contenuti → Builder Esercizi.
api_access nella licenza. La pagina è gestita da /admin/builder-page.php. Il salvataggio avviene via AJAX: tutor_lab_save_builder_exercise.Drag & Drop
Trascina blocchi dalla palette a sinistra nella canvas centrale. Riordina trascinando la maniglia. Basato su Alpine.js.
Autosave
Salvataggio automatico ogni 30 secondi. Shortcut Ctrl+S / Cmd+S. Indicatore di stato in tempo reale (Salvato / Modifiche non salvate / Salvataggio in corso).
Template Esercizio
Campo ACF exercise_template: scegli tra default (builder libero), ad-set-simulator, ad-creative-simulator, roas-simulator.
Struttura Dati Esercizio (JSON)
{
"title": "Analisi SWOT",
"slug": "analisi-swot",
"fase": "analisi", // analisi | creazione | acquisizione | gestione | misurazione
"icon": "🎯",
"level": "apprendista", // apprendista | praticante | specialista | maestro
"visible": true,
"description": "...",
"sections": [
{
"id": "uuid-v4",
"type": "textarea", // vedi lista blocchi
"title": "Strengths",
"icon": "��",
"objective": "Descrivi i punti di forza",
"layout": "1-col", // 1-col | 2-col | 3-col | 2-1 | 1-2
"placeholder": "Inserisci qui..."
}
]
}
Blocchi del Builder (19 tipi)
Testo & Input
Media
Interattivi
Evidenziazione
Layout
titolo|contenuto separati da ---. Timeline usa il formato data|titolo|descrizione (una riga per evento).Simulatori Ads
Moduli specializzati che replicano le interfacce delle piattaforme pubblicitarie (Meta Ads). Pratica sicura senza budget reale. Template selezionato via campo ACF exercise_template.
| Simulatore | Template Slug | File PHP | Campi Principali |
|---|---|---|---|
| Ad Set Simulator | ad-set-simulator | template-ad-set.php | Obiettivo, Budget (tipo+importo), Date, Luoghi, Età, Genere, Posizionamenti, Interessi, KPI, Messaggio chiave, Giustificazione pubblico |
| Ad Creative Simulator | ad-creative-simulator | template-ad-creative-simulator.php | Hook (gancio), Body (3 cervelli), Headline, CTA button, Creatività (immagine upload) |
| ROAS Calculator | roas-simulator | template-roas-simulator.php | Testo istruzioni (WYSIWYG), Calcolo e analisi ROAS (textarea libera) |
risposta_studente con meta key specifici (es. adset_objective, hook, risposta_roas_calculation). I dati vengono inclusi nell'export PDF.Sistema Feedback Docente
Workflow professionale per correggere gli esercizi. Supporta correzioni per sezione, feedback generale, modalità bozza e pubblicazione con notifica automatica.
Feedback Generale
Commento "macro" sull'intero elaborato. Salvato in _draft_feedback_generale_docente. Notifica via email quando pubblicato.
Feedback per Sezione
Punteggio (0–5) e commento per ogni sezione/campo. Meta: _draft_feedback_punteggi_docente (array) e _draft_feedback_sezioni_docente.
Modalità Bozza
Salva senza notificare. Meta: _tutor_lab_has_feedback_draft e _draft_last_saved_timestamp. Pubblica quando pronto con tutor_lab_publish_feedback_ajax.
Meta Keys Feedback
| Meta Key | Tipo | Descrizione |
|---|---|---|
_draft_feedback_generale_docente | String (HTML) | Feedback generale bozza |
_draft_feedback_sezioni_docente | Array serializzato | Feedback testo per sezione [key][feedback_text] |
_draft_feedback_punteggi_docente | Array serializzato | Punteggi (0-5) per sezione [key] => int |
_draft_average_score | Int | Media calcolata dei punteggi sezione |
_feedback_generale_docente | String (HTML) | Feedback pubblicato (visibile allo studente) |
_tutor_lab_has_feedback_draft | Flag ('1') | Indica bozza attiva |
_draft_last_saved_timestamp | Int (Unix) | Timestamp ultimo salvataggio bozza |
_feedback_field_sources | Array serializzato | Sorgente modifica: manual | ai, con timestamp |
_internal_postit | String | Nota interna docente (non visibile allo studente) |
Export PDF
Genera PDF professionali delle risposte degli studenti. Libreria TCPDF (DejaVuSans, UTF-8 completo). File: /includes/pdf-exporter.php. Richiede addon pdf_export.
PDF Singolo Esercizio
Action URL: ?tutor_lab_action=export_student_answers_pdf&student_id=X&exercise_id=Y&_wpnonce=...
Include: intestazione, badge classe, dati studente, tutte le sezioni con risposte, feedback docente (opzionale).
PDF Tutti gli Esercizi (Aggregato)
Action: export_student_aggregate_pdf. Genera un PDF multi-pagina con cover, indice e tutte le risposte dello studente.
PDF Report Classe Finale
Generato da Genera Report Finale. Include tabella valutazioni per studente con punteggi (0-5) e note generali. Funzione: tutor_lab_generate_class_report_pdf().
Sistema Email
Template configurabili dal backend senza modificare PHP. Impostazioni in Sistema → Impostazioni → Email. File: /includes/email-handler.php.
| Template | File | Destinatario | Variabili Principali |
|---|---|---|---|
| Benvenuto nuovo utente | new-user-welcome.php | Studente | {{USER_NAME}}, {{SITE_NAME}}, {{LOGIN_URL}} |
| Notifica admin generica | admin-notification.php | Admin | Customizzabili |
| Studente ha iniziato esercizio | admin-notification-start.php | Admin | {{STUDENT_NAME}}, {{EXERCISE_TITLE}}, {{ADMIN_URL}} |
| Studente ha completato esercizio | admin-notification-completion.php | Admin | {{STUDENT_NAME}}, {{EXERCISE_TITLE}} |
| Nuovo contenuto pubblicato | new-content-notification.php | Studenti classe | {{USER_NAME}}, {{CONTENT_TITLE}}, {{CONTENT_URL}} |
| Feedback pubblicato (singolo) | student-feedback-notification.php | Studente | {{USER_NAME}}, {{EXERCISE_TITLE}}, {{FEEDBACK_LINK}} |
| Feedback bulk | student-feedback-bulk-notification.php | Studenti | {{FEEDBACK_COUNT}}, {{EXERCISE_LIST}} |
| Richiesta sblocco esercizio | unlock-request-admin.php | Admin | {{STUDENT_NAME}}, {{EXERCISE_TITLE}}, {{ADMIN_URL}} |
wp_tutor_lab_email_log con timestamp, destinatario, oggetto e stato (inviata/fallita). Supporto SMTP configurabile. Azione: tutor_lab_resend_notification_email per reinvio manuale.Messaggistica Interna
Sistema di messaggistica privata tra studenti e docenti/admin. CPT: messaggio_privato. Abilitabile per classe: _tutor_lab_messaging_enabled.
Lato Studente
tutor_lab_get_conversations_studenttutor_lab_get_messages_for_thread_studenttutor_lab_send_reply_studenttutor_lab_compose_message_studenttutor_lab_get_valid_recipients_student
Lato Admin
tutor_lab_get_conversations_admintutor_lab_get_messages_for_thread_admintutor_lab_send_reply_admintutor_lab_compose_message_admin
Annunci
CPT annuncio associato alla tassonomia classe. Pubblicando un annuncio con il campo notifica attivo, viene schedulato automaticamente un invio email a tutti gli studenti della classe (via WP-Cron con ritardo di 10 secondi). Gli annunci appaiono nella hub studente.
[tutor_lab_all_updates]
— Feed annunci e aggiornamenti classe per lo studente loggato
Dashboard & Hub Studente
[tutor_lab_hub]Hub Centrale (AJAX)
Centro di comando studente. Carica dati asincroni per performance ottimale. Widget inclusi:
- Prossima Missione (esercizio da completare)
- Stato XP e livello corrente
- Badge sbloccati di recente
- Annunci docente
- Contatore messaggi non letti
[tutor_lab_dashboard]Lab Operativo
Lista esercizi filtrabile per stato (Da Iniziare / In Corso / Completato). Barre di progresso visive e stato feedback.
[tutor_lab_progress_hub]Progress Hub
Statistiche dettagliate: percentuali completamento, XP guadagnati per esercizio, performance nel tempo.
Gamification & Sistema XP
Engine di gamification completo. Gli XP vengono assegnati automaticamente in background per ogni azione di valore. I badge si sbloccano al raggiungimento di trigger configurabili.
Livelli di Progressione
Tabella Punti XP
| Azione | XP Assegnati | Costante PHP | AJAX Action |
|---|---|---|---|
| Primo salvataggio esercizio | +10 XP | TUTOR_LAB_XP_FOR_FIRST_SAVE | tutor_lab_save_exercise_data |
| Completamento esercizio | +50 XP | TUTOR_LAB_XP_FOR_COMPLETION | tutor_lab_save_exercise_data |
| Visualizzazione documento | +5 XP | TUTOR_LAB_XP_FOR_RESOURCE_VIEW | tutor_lab_mark_resource_as_viewed |
| Visualizzazione lezione | +10 XP | TUTOR_LAB_XP_FOR_LESSON_VIEW | tutor_lab_mark_resource_as_viewed |
| Iscrizione newsletter | +150 XP | TUTOR_LAB_XP_FOR_NEWSLETTER | tutor_lab_award_newsletter_xp |
| Completamento sondaggio | +150 XP | TUTOR_LAB_XP_FOR_POLL | tutor_lab_submit_poll |
| Test con punteggio perfetto | +50 XP bonus | TUTOR_LAB_XP_FOR_TEST_PERFECT | tutor_lab_submit_poll |
Badge
CPT badge. Trigger configurabili: first_login, exercises_completed_count. Meta: badge_trigger_type, badge_trigger_value_number. Gli badge sbloccati sono salvati in _tutor_lab_unlocked_badges (array di post ID).
Premi (Rewards)
CPT premio. Campi ACF: punti_xp_richiesti (costo in XP), tipo_premio (file/link/coupon), contenuto specifico. AJAX: tutor_lab_redeem_reward.
Classifica (Leaderboard)
[tutor_lab_class_leaderboard]
— Classifica studenti della classe per XP, badge e attività recente
Mostra ranking con: nome studente, avatar, XP totali, contatore badge, livello, posizione in classifica. Dati da _tutor_lab_xp_points e _tutor_lab_unlocked_badges, filtrati per tassonomia classe.
Sistema Lock & Unlock
Gli esercizi sono sequenziali: il completamento di N sblocca N+1. Gli studenti possono richiedere lo sblocco anticipato con motivazione.
Flusso Normale
- Studente completa Es. 1
Meta
_tutor_lab_exercise_completed= true - Es. 2 si sblocca
Automaticamente disponibile nella dashboard
- Admin valuta Es. 1
Feedback pubblicato, notifica email inviata
Sblocco Anticipato
- Studente richiede sblocco
AJAX:
tutor_lab_request_unlock, meta_tutor_lab_unlock_requested= true - Admin riceve email
Template:
unlock-request-admin.php - Admin approva dal backend
AJAX:
tutor_lab_unlock_exercise_ajax
Sondaggi & Test
CPT sondaggio con template single-sondaggio.php. Supporta scelta singola, multipla e risposta aperta. Integrato nel sistema XP (+150 XP per completamento, +50 XP bonus per punteggio perfetto).
AJAX Sondaggi
tutor_lab_submit_poll— Invia risposta sondaggiotutor_lab_get_poll_results— Recupera risultati
CPT risposta_sondaggio
Ogni invio crea un post risposta_sondaggio con: autore = studente, meta con risposte, punteggio e timestamp.
Shortcodes Reference
| Shortcode | File | Descrizione |
|---|---|---|
[tutor_lab_ai_coach][tutorlab_ai_coach] | shortcodes/ai-coach.php | AI Coach Widget. Parametri: corso="", modulo="", show_history="yes". Richiede addon AI. |
[tutor_lab_hub] | shortcodes/hub.php | Hub centrale studente con missioni, XP, badge, annunci. |
[tutor_lab_dashboard] | shortcodes/dashboard.php | Dashboard esercizi con filtri per stato. |
[tutor_lab_progress_hub] | shortcodes/progress-hub.php | Statistiche avanzate progressi studente. |
[tutor_lab_lessons] | shortcodes/lessons.php | Lista lezioni con stato completamento. |
[tutor_lab_documents] | shortcodes/documents.php | Materiali studio con download link. |
[tutor_lab_all_updates] | shortcodes/updates.php | Feed annunci e aggiornamenti classe. |
[tutor_lab_class_leaderboard] | shortcodes/leaderboard.php | Classifica studenti per XP e badge. |
[tutor_lab_profile] | shortcodes/profile.php | Profilo studente con badge, stats, cambio password. |
[tutor_lab_login_form] | shortcodes/login-form.php | Form login personalizzato con forgot password. |
[tutor_lab_registration_form] | shortcodes/registration-form.php | Form registrazione base. |
[tutor_lab_registration_choice] | shortcodes/registration-choice-form.php | Registrazione con selezione ruolo/classe. |
[tutor_lab_registration_onboarding] | shortcodes/registration-full-onboarding.php | Wizard onboarding multi-step completo. |
Custom Post Types & Tassonomia
| Slug CPT | Label | Template | Note |
|---|---|---|---|
lezione | Lezione | Default WP | Associata a tassonomia classe |
documento | Documento | Default WP | Protezione media attiva |
esercizio | Esercizio | single-esercizio.php | Campi ACF builder, template ACF exercise_template |
badge | Badge | Default WP | Trigger gamification configurabili via ACF |
premio | Premio | Default WP | Costo XP e tipo contenuto via ACF |
risposta_studente | Risposta Studente | Non pubblica | Autore = studente, meta feedback docente |
annuncio | Annuncio | Default WP | Notifica email automatica al publish |
messaggio_privato | Messaggio Privato | Non pubblica | Messaggistica interna |
tutor_class_email | Email Classe | Default WP | Archivio email inviate agli studenti |
sondaggio | Sondaggio | single-sondaggio.php | Integrazione XP +150 al completamento |
risposta_sondaggio | Risposta Sondaggio | Non pubblica | Creato automaticamente all'invio |
Tassonomia
| Slug | Label | Applicata A | Note |
|---|---|---|---|
classe | Classe | user, esercizio, lezione, documento, annuncio, tutor_class_email, sondaggio | Gerarchica, non pubblica. Meta classe: date, status, toggle moduli. |
AJAX Reference Completa
Oltre 80 azioni AJAX registrate. Le principali per sviluppatori:
Esercizi & Studenti
| Azione | File | Descrizione |
|---|---|---|
tutor_lab_save_exercise_data | ajax-exercise-handler.php | Salva risposte esercizio studente |
tutor_lab_heartbeat | ajax-exercise-handler.php | Keep-alive sessione esercizio |
tutor_lab_get_lock_status | ajax-exercise-handler.php | Verifica stato lock esercizio |
tutor_lab_request_unlock | ajax-exercise-handler.php | Studente richiede sblocco anticipato |
tutor_lab_save_builder_exercise | ajax-builder-handler.php | Salva JSON esercizio dal builder admin |
tutor_lab_get_quick_correct_data | ajax-admin-handler.php | Recupera dati per correzione rapida |
tutor_lab_save_quick_correct_data | ajax-admin-handler.php | Salva correzione rapida bozza |
tutor_lab_publish_feedback_ajax | ajax-admin-handler.php | Pubblica feedback e notifica studente |
tutor_lab_unlock_exercise_ajax | ajax-admin-handler.php | Admin sblocca esercizio manualmente |
Gamification
| Azione | Descrizione |
|---|---|
tutor_lab_mark_resource_as_viewed | XP per visualizzazione lezione/documento |
tutor_lab_award_newsletter_xp | XP per iscrizione newsletter |
tutor_lab_redeem_reward | Riscatta premio con XP |
tutor_lab_get_hub_gamification_data | Dati XP/livello/badge per l'hub |
tutor_lab_get_hub_missions_data | Prossime missioni disponibili |
tutor_lab_get_hub_announcement_data | Annunci della classe |
tutor_lab_get_hub_updates_data | Feed attività recente |
tutor_lab_get_hub_inbox_badge_data | Contatore messaggi non letti |
Registrazione & Auth
| Azione | Privilegio | Descrizione |
|---|---|---|
tutor_lab_rapid_register_wizard | nopriv | Registrazione rapida wizard |
tutor_lab_full_register_wizard | nopriv | Registrazione onboarding completo |
tutor_lab_activate_license | admin | Attivazione licenza via server |
tutor_lab_send_recharge_request | admin | Richiesta ricarica token AI |
Amministrazione
| Azione | Descrizione |
|---|---|
tutor_lab_refresh_matrix_data | Aggiorna matrice progressi |
tutor_lab_get_student_activity_log | Log attività studente |
tutor_lab_save_report_data | Salva bozza dati report finale |
tutor_lab_upload_creative_image | Upload immagine per simulatore creativo |
tutor_lab_export_stats_csv | Export statistiche CSV |
tutor_lab_export_stats_json | Export statistiche JSON |
tutor_lab_import_ics_events | Import calendario ICS |
tutor_lab_save_class_email | Salva email classe |
tutor_lab_generate_feedback_json_template | Genera template JSON feedback |
tutor_lab_get_hub_aggregated_data | Dati aggregati hub (ACTION admin) |
tutor_lab_submit_review | Studente invia recensione corso |
WordPress Hooks
Azioni Chiave
| Hook | Priorità | Uso |
|---|---|---|
admin_post_tutor_lab_generate_report | default | Genera PDF report finale classe |
admin_post_tutor_lab_publish_feedback | default | Pubblica feedback da form admin |
admin_post_tutor_lab_publish_feedback_bulk | default | Pubblica feedback in bulk |
admin_post_tutor_lab_reset_exercise | default | Azzera risposta studente |
admin_post_tutor_lab_unlock_exercise | default | Sblocca esercizio |
tutor_lab_send_content_notification_cron | 10 | Cron: invia notifica contenuto pubblicato |
save_post_risposta_studente | 10, 20 | Salva feedback bozza, calcola XP |
Filtri Chiave
| Filtro | Uso |
|---|---|
theme_page_templates | Registra template custom: page-canvas.php, template-onboarding-fullscreen.php, simulatori |
template_include | Carica template custom per CPT (priorità 98, 99) |
body_class | Aggiunge classi frontend (ruolo, classe, tema) |
admin_body_class | Classi admin per shell styling |
wp_authenticate_user | Blocca utenti pending alla login |
acf/load_value/name=* | Fix caricamento meta array ACF |
Sistema Licenze
File: /includes/core/license-manager.php. Server di licenze: https://promologica.it/wp-json/tl-license/v1
Funzioni Principali
tutor_lab_is_license_valid()— booleantutor_lab_is_addon_active($addon)— booleantutor_lab_get_license_limit($key)— int|nulltutor_lab_is_limit_exceeded($key, $count)— boolean
Slug Addon
ai/ai_coachgamificationemail/email_automationanalytics/advanced_reportsbuilder/api_accesspdf/pdf_exportbranding/custom_brandingmulti_teamvideo/video_lessonssso
Limiti Controllabili
max_studentsmax_teachersmax_coursesmax_exercisesmax_storage_mbmax_ai_calls_month
token-recharge-manager.php) monitora automaticamente l'uso dei token AI: avviso a 80% (TUTOR_LAB_TOKEN_WARN_PCT) e critico a 95% (TUTOR_LAB_TOKEN_CRITICAL_PCT). AJAX: tutor_lab_send_recharge_request.Domande Frequenti
L'AI Coach può inventare informazioni sbagliate?
Come si aggiungono studenti alla piattaforma?
[tutor_lab_registration_choice] — le iscrizioni finiscono in stato "pending" e vengono approvate dalla pagina Approvazioni.Posso gestire più corsi contemporaneamente?
multi_team è possibile gestire team multipli con docenti diversi per corso.Come funziona il salvataggio automatico del Builder?
Ctrl+S / Cmd+S per salvare manualmente.Cosa succede se i crediti AI si esauriscono?
Come si modifica un template email senza PHP?
{{USER_NAME}}, {{EXERCISE_TITLE}}, ecc.). Puoi visualizzare un'anteprima e inviare email di test.Il PDF del report riporta i voti assegnati?
_draft_feedback_punteggi_docente con fallback su _draft_average_score. Le tabelle non vengono mai spezzate tra pagine diverse.Come si abilita la gamification per una singola classe?
_tutor_lab_gamification_enabled. Puoi attivarla/disattivarla dalla pagina Gestione Classi con un semplice toggle, senza dover modificare impostazioni globali.Best Practices
Progressione Didattica
- Inizia con esercizi semplici, aumenta gradualmente la complessità
- Usa i blocchi "Istruzioni" per fornire contesto chiaro prima di ogni esercizio
- Alterna teoria (lezioni) e pratica (esercizi) regolarmente
- Non superare 5-7 sezioni per esercizio per non sovraccaricare lo studente
Ottimizzare l'AI
- Popola la KB con materiali di qualità prima di attivare l'AI Coach
- Monitora i consumi settimanalmente per ottimizzare i costi
- Usa AI Profiles diversi per toni formale vs informale
- Rivedi periodicamente i feedback AI per assicurare qualità
Gamification Efficace
- Crea badge facili (motivazione iniziale) e difficili (obiettivi sfida)
- Premia la consistenza (streak) oltre ai risultati puntuali
- Mantieni la leaderboard visibile ma non invasiva
- Usa i premi per incentivare comportamenti specifici
Sicurezza & Performance
- Verifica sempre i nonce nelle azioni AJAX custom
- Usa
tutor_lab_is_addon_active()per feature-flag sicuri - Il media protection rewrite blocca accesso diretto ai file protetti
- La matrice progressi è ottimizzata con una singola query SQL — non eseguire query aggiuntive in loop
