WP-CLI Commands
Free & ProLearnomy adds a wp learnomy command group. It is useful for the jobs that are painful in the browser: enrolling a list of people, checking why one student's progress looks wrong, repairing data after an import, and migrating from another LMS.
Everything here runs on your own server over SSH or a local shell. If you have never used WP-CLI, the only thing you need to know is that commands run from your WordPress directory.
Run commands as an administrator
Several commands check that the person running them may do the thing being asked. WP-CLI has no logged-in user, so those checks fail with a permissions error unless you say who you are:
wp --user=1 learnomy enroll --user-id=42 --course=17
Use --user=1 (or any administrator's ID) on anything that writes. Read-only commands like stats and inspect do not need it.
Everyday commands
Enrolling and unenrolling
wp --user=1 learnomy enroll --user-id=42 --course=17
wp --user=1 learnomy enroll --user-id=42 --course=17 --source=manual
wp --user=1 learnomy unenroll --user-id=42 --course=17
--source records how the enrollment happened. Leave it off unless you are reproducing a purchase.
Checking one learner
wp learnomy progress --user-id=42 --course=17
wp learnomy earnings --user-id=7
progress prints where a student has got to in a course, which is the fastest answer to "the site says I have not finished". earnings does the same for an instructor's revenue share.
Site overview
wp learnomy stats
Counts across courses, students, enrollments and revenue. Useful as a before-and-after when you have run something that changes data in bulk.
Looking things up
inspect prints one record in full, which is quicker than clicking through the admin when you are chasing a specific problem.
wp learnomy inspect course 17
wp learnomy inspect user 42
wp learnomy inspect enrollment 512
wp learnomy inspect quiz 8
wp learnomy inspect attempt 91
wp learnomy inspect cert 30
wp learnomy inspect subscription 14
wp learnomy inspect transaction 260
wp learnomy inspect db
Fixing data
Repair
wp learnomy repair data-integrity --dry-run
wp learnomy repair data-integrity
wp learnomy repair lesson-content
wp learnomy repair student-count
data-integrity is the one to reach for after an import or a bulk delete. It finds orphaned rows, drifted counters and progress that no longer matches the curriculum, and reports what it would change. Always run it with --dry-run first and read the report before letting it write.
student-count recomputes the enrolled figure shown on course cards when it has drifted. lesson-content repairs lesson bodies left malformed by an older import.
Cleanup
wp learnomy cleanup orphan-enrollments --dry-run
wp learnomy cleanup orphan-certs
wp learnomy cleanup orphan-commissions
Removes rows whose parent is gone. Same rule: dry-run first.
Modules
wp learnomy module list
wp learnomy module info membership
wp learnomy module enable membership
wp learnomy module disable pwa
Most Learnomy features are modules, and several ship switched off. This is the scriptable equivalent of the Modules screen, which is handy when you set up sites repeatedly. See Enabling Features and Modules.
Content
wp learnomy course list
wp learnomy course create --title="Course title" --author_id=7
wp learnomy course delete 17 --yes
wp learnomy membership list
wp learnomy membership create --name="Pro" --price=19 --interval=monthly
Snapshots before a risky change
wp learnomy content snapshot
wp learnomy content restore
wp learnomy content migrate
snapshot saves lesson content before a migration so restore can put it back. Take one before any bulk content operation you have not run on this site before.
Migrating from another LMS
wp learnomy migrate preview
wp learnomy migrate run
wp learnomy migrate status
wp learnomy migrate runs
wp learnomy migrate undo
preview reports what would be imported without writing anything. runs lists past imports and status reports on one; undo reverses an import that went wrong, which is the reason to prefer the CLI over the browser importer on a site with real data.
The browser importer covers the same ground with a UI. Use the CLI version for very large sites, where a browser import can time out. See Migrating from Another LMS.
Exports
Three types are available: courses, students and earnings.
wp learnomy export students --file=/tmp/students.csv
wp learnomy export courses --file=/tmp/courses.csv
wp learnomy export earnings --file=/tmp/earnings.csv
Health checks
wp learnomy selfcheck run
wp learnomy db migrate
selfcheck run verifies the install: tables present, routes registered, scheduled jobs in place. Run it after an update if something feels wrong. db migrate applies any pending schema change, which normally happens automatically on update.
Attachment protection
wp learnomy protect-attachments --dry-run
wp learnomy protect-attachments
Moves lesson attachments behind a permission check so a direct URL cannot be shared outside the course.
Commands that are not on your install
seed, seed-cleanup, seed-model-site, seed-quiz-attempts, seed-usecase and test are development and demo tools. They live in a directory that is stripped from the distributed plugin, so they will not appear on a normal install. If you see them, you are on a development checkout.