Database Structure

LearnPress creates several custom database tables to manage LMS-specific data that doesn’t fit well into WordPress’s post meta structure:

Main Database Tables

Table Name Description Relationships
learnpress_sections Stores course sections (curriculum groups) Related to courses via course_id
learnpress_section_items Maps items (lessons, quizzes) to sections Related to sections via section_id and items via item_id
learnpress_user_items Tracks user enrollment and progress in courses, lessons, and quizzes Related to users via user_id and items via item_id
learnpress_user_itemmeta Stores metadata for user item records Related to user_items via learnpress_user_item_id
learnpress_quiz_questions Maps questions to quizzes Related to quizzes via quiz_id and questions via question_id
learnpress_question_answers Stores answer options for questions Related to questions via question_id
learnpress_order_items Stores items within orders Related to orders via order_id
learnpress_order_itemmeta Stores metadata for order items Related to order_items via learnpress_order_item_id

These custom tables work alongside WordPress’s native tables:

  • wp_posts – Stores the main post data for courses, lessons, quizzes, etc.
  • wp_postmeta – Stores metadata for LearnPress post types
  • wp_users – Stores user accounts (students, instructors, admins)
  • wp_usermeta – Stores user-related metadata