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
