Documentation

Learn with Foundation docs

Getting started, administration, the learner experience, and the developer surface for the WordPress-native LMS that powers branded WooCommerce academies.

Developers

Data Model

The four tables that hold learner state, and how they relate.

fl_enrollments
fl_progress
fl_quiz_attempts
fl_issued_certificates

Key fields

  • fl_enrollments: user_id, course_type, course_id, status, source_order_id, created_at. One row per learner per course.
  • fl_progress: user_id, lesson_id, course_type, course_id, status, completed_at, position_seconds. Tracks lesson progress.
  • fl_quiz_attempts: user_id, quiz_id, course_type, course_id, score, passed, answers_json, created_at. One row per recorded attempt.
  • fl_issued_certificates: certificate_number, user_id, course_type, course_id, certificate_template_id, issued_at, emailed_at. One row per issued certificate.

Certificate templates

Certificate designs are stored as fl_certificate posts. Issued learner credentials are stored separately in fl_issued_certificates.

Relationships

Learner-state tables key off user_id plus course_type and course_id. Enrollment is the parent record; progress and quiz attempts accumulate against it; an issued certificate is the terminal record written when the completion rules are satisfied.

Ready to sell certifications?

Branded learning, built on WordPress. Get Learn with Foundation and ship your first certification program this week.

© 2026 Learn with Foundation. All rights reserved.