✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

SleekView for Tutor LMS: quiz attempts and earnings as tables

Read directly from tutor_quiz_attempts and tutor_quiz_attempt_answers. Build cross-course grading queues, per-question difficulty audits, and per-student score history without scripting.

♾️ Lifetime License available

SleekView table view for Tutor LMS

Quiz attempts and answers in one screen

Tutor LMS stores quiz attempts in tutor_quiz_attempts and per-question answers in tutor_quiz_attempt_answers. The default Tutor admin gives a per-quiz attempt review queue and buries per-question detail in the attempt screen, so cross-course grading workflows, per-question difficulty audits, and student-history views all need either workarounds or custom code.

SleekView reads both tables and lets instructors filter tutor_quiz_attempts to attempt_status = review_required across all courses for a unified grading queue — one screen, one pass, no per-quiz drill-downs. Course designers group tutor_quiz_attempt_answers by question_id to see pass rates per question and find quiz items that are too easy, too hard, or ambiguously worded. Student-support agents filter attempts by user_id to surface complete attempt history during a chat without opening multiple screens.

Tutor LMS Pro features that store data in additional tables — tutor_earnings, tutor_withdraws for instructor monetisation — are also exposed where the schema is documented. Inline status updates route through the Tutor LMS Quiz API where supported, so auto-grade and completion-notification hooks fire normally. Direct DB writes skip hooks by design for back-fills.

Workflow

Build the Tutor LMS workspace each role needs

1

Read the quiz tables

Pick tutor_quiz_attempts as the base. Join users for student emails, the course CPT for course names, and tutor_quizzes for quiz titles.
2

Filter to the queue

Use attempt_status = review_required to get the grading queue. Sort by attempt_ended_at (oldest first) to clear backlogs in fairness order rather than recency.
3

Drill into answers

Expose tutor_quiz_attempt_answers as a related child view per attempt. Per-question answer detail expands inline so you don't lose the queue context.
4

Pivot for difficulty audit

Group answers by question_id with pass-rate as a column to see which questions need rewriting. The aggregate runs on demand, not as a scheduled batch.

Sample columns

A typical Tutor LMS quiz attempts view

Direct read from tutor_quiz_attempts. Status, score, and end timestamp are sortable.
Source: wp_tutor_quiz_attempts + wp_tutor_quiz_attempt_answers
Student Course Quiz Score Status Submitted
alex@studio.co Photoshop Layers Quiz 9 / 10 Passed Apr 24
ria@design.io CSS Selectors Quiz 8 / 10 Passed Apr 24
tom@hello.dev JS Closures Quiz Review required Apr 23
mia@brew.coop JS Async Quiz 5 / 10 Failed Apr 23

Comparison

Default Tutor LMS admin vs SleekView

Default Tutor LMS admin

  • Quiz attempt review queue is per-quiz, not cross-course
  • Per-question answer detail (tutor_quiz_attempt_answers) is buried in the attempt screen
  • Cross-student or cross-course score sorting isn't a built-in saved view
  • Pivoting answer correctness into a per-question difficulty report requires SQL
  • Bulk-status changes (e.g. mark reviewed) aren't first-class

SleekView

  • Cross-course quiz attempt grading queue filtered to review_required
  • Per-question difficulty audit from tutor_quiz_attempt_answers
  • Sort and rank students by earned_marks across courses
  • Inline-update attempt_status for grading workflows
  • Save views per instructor or course

Features

What SleekView gives you for Tutor LMS

Cross-course grading queue

Filter tutor_quiz_attempts to attempt_status = review_required across all courses. Instructors process the queue inline without per-quiz screens, sorted oldest first for fairness.

Per-question difficulty audit

Group tutor_quiz_attempt_answers by question_id and show pass rate per question. Find too-easy or too-hard items in one view; surfaces course-design issues aggregate reports hide.

Per-student score history

Filter attempts by user_id and sort by attempt_ended_at for a complete attempt history per learner — useful during student support and progress reviews.

Audience

Who uses SleekView for Tutor LMS

Instructors

Grading queue across courses; rank students by score; review per-question performance — all in one screen, processed in one pass rather than per-quiz drill-downs.

Course designers

Question difficulty reports help spot poorly worded or miscalibrated quiz items. Pass-rate-by-question pivot turns vague "this quiz seems off" into specific questions to rewrite.

Student support

Per-student attempt history visible during support — no jumping between course screens. Sees attempt count, scores, and current course state in one student-rooted view.

The bigger picture

Why cross-course grading needs one queue

Tutor LMS scales nicely across course catalogues — the same schema handles a five-course training program and a five-hundred-course marketplace. The default admin's per-quiz review screen makes sense for a single-instructor academy with three quizzes; it stops working for a marketplace instructor managing forty courses with rolling enrolment, where pending attempts arrive constantly across many quizzes and any per-quiz drill-down is wasted clicks. The right unit of work for a grading session is "all pending attempts across courses I teach, oldest first" — not "pending attempts on Quiz A, then pending attempts on Quiz B, then C." Course designers iterating on quiz quality have a parallel need: "which questions across the catalogue are too easy or too hard?" That's a pivot of tutor_quiz_attempt_answers by question_id with pass rate as the aggregate.

Both views exist in the data; neither exists in the default admin. SleekView's job is to compose them. Same database, hooks fire when the API path is used, dramatically less per-screen drilling for the people doing the actual work.

Questions

Common questions about SleekView for Tutor LMS

Yes. The custom tables (tutor_quiz_attempts, tutor_quiz_attempt_answers) are part of the core schema. Pro features that store data in additional tables (tutor_earnings, tutor_withdraws) are exposed where the schema is documented. Specific column-level support depends on the Tutor LMS version installed — newer versions sometimes add columns the column picker rescans on startup.

 

Yes — tutor_quiz_attempt_answers is exposed as a related child table per attempt, so you can expand a row to see exactly what the student answered, what was correct, and how it was scored. Useful for grading manually-reviewed quizzes (essay-style answers, calculated-field answers) and for catching consistent wrong-answer patterns that suggest a question needs rewriting.

 

When SleekView uses the Tutor LMS Quiz API to update status, the standard hooks (auto-grade, completion notification, course-progress recalculation) fire normally. Direct DB writes skip hooks by design for back-fill scenarios where you don't want side effects. Pick per view based on whether downstream effects (notifications, certificate issuance) should run as a result of the edit.

 

tutor_earnings and tutor_withdraws exist in the Pro version. SleekView can expose them; specific column-level support depends on the Tutor LMS version installed. Useful for marketplace operators auditing instructor payouts and for instructors viewing their own earnings history without depending on the default reporting screens.

 

Yes — any SleekView view exports to CSV or JSON, including the joined tables. Useful for archival to an external learner-record store, for sharing graded attempts with stakeholders, or for combining Tutor LMS data with HRIS data outside WordPress. The export respects the column choice in the view so the output matches what was on screen.

 

Yes — each subsite has its own Tutor tables, and SleekView reads the current subsite's data. Useful when an organisation runs separate Tutor instances per language, region, or department. Cross-site aggregations aren't supported, but per-site dashboards behave as expected with role-scoped views per subsite.

 

Tutor LMS gradebook data is computed from tutor_quiz_attempts plus assignment scores stored separately. SleekView can pivot quiz attempts into a gradebook-style view (students as rows, quizzes as columns, scores as cells), and joins to assignment data where the schema is documented. The aggregate views complement the default gradebook rather than replacing it.

 

Course progress in Tutor LMS is computed from completed lessons, quizzes, and assignments. SleekView surfaces this as an aggregate column on a per-student view, joining the relevant tables. Heavier than direct columns so opt in per view — useful on student-detail views, less useful on bulk attempt-grading queues where the per-row progress isn't the focus.

 

Pricing

More than 1000+
happy customers

Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.

Starter

€79

EUR

per year

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€149

EUR

per year

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Most popular

€249

EUR

once

  • Unlimited websites
  • Lifetime updates
  • Lifetime support

...or get the Bundle Deal
and save €250 🎁

The Bundle (unlimited sites)

Pay once, own it forever

Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.

What’s included

  • SleekAI

  • SleekByte

  • SleekMotion

  • SleekPixel

  • SleekRank

  • SleekView