SleekView for LearnDash WooCommerce
SleekView joins wc_orders (or shop_order on legacy stores) with learndash_user_activity through the buyer's user_id. Order total, status, linked course and post-purchase activity sit as real columns in WP Admin instead of two separate report tabs.
♾️ Lifetime License available
Selling courses through WooCommerce splits the trail across two systems
The LearnDash WooCommerce integration sells courses as WooCommerce products and enrols the buyer through the standard hook on payment. The order trail lives in wc_orders (or shop_order on legacy stores). The enrolment trail lives in learndash_user_activity. The link between them is the buyer's user_id, written by the integration on completion.
Reading the two together is the operational question that matters: which orders converted into actual course activity, which buyers paid and never started, which courses produced high revenue with low completion. SleekView joins both schemas and renders the result as one sortable, filterable table.
Order ID, status, total, customer, linked course, enrolment status and last activity sit as real columns. Filter to paid orders with zero post-purchase activity, sort by date, or pull every refunded order on a single course, all without opening either WooCommerce or LearnDash reports.
Workflow
How SleekView joins WooCommerce and LearnDash data
Pick the order source
Compose the column set
Save and scope the view
Edit inline or export
Sample columns
A typical course-order audit table
wc_orders + wc_orders_meta + learndash_user_activity
| Order | Customer | Course | Status | Total | Last activity |
|---|---|---|---|---|---|
| #10248 | alex@acme.co | Welcome to Acme | Completed | $199 | May 12 |
| #10247 | ria@acme.co | Compliance Basics | Completed | $249 | May 11 |
| #10246 | tom@acme.co | Welcome to Acme | Processing | $199 | — |
| #10245 | mia@acme.co | Welcome to Acme | Completed | $199 | — |
| #10244 | jordan@acme.co | Compliance Basics | Refunded | $249 | Apr 30 |
Comparison
Default WooCommerce + LearnDash admin vs SleekView
Default WooCommerce + LearnDash admin
- Orders live in WooCommerce, enrolments live in LearnDash, the two don't join
- Paid-but-not-started buyers require manual cross-referencing
- Refund-on-course views need a custom SQL query
- Bulk inline edits across joined rows aren't built into either side
- No saved per-role view for finance vs L&D vs marketing
SleekView
- Read directly from wc_orders joined with learndash_user_activity
- Course, total, status and last activity as sortable, filterable columns
- Inline-edit order status through WooCommerce CRUD so emails still fire
- Save filtered tables per role ("Paid not started", "Refunded on Compliance")
- Switch between table and kanban views of the same joined dataset
Features
What SleekView gives you for LearnDash WooCommerce
Orders and enrolments, one table
Join wc_orders with learndash_user_activity through the buyer's user_id. Revenue and completion sit in the same row instead of two admin tabs.
Inline edits through CRUD
Update order status, trigger a refund or correct a course assignment in the row. Edits flow through WooCommerce's CRUD so payment and stock hooks still fire.
Compose precise filters
Combine order status, product (course), enrolment status and last-activity threshold into a saved filter. The weekly paid-but-not-started outreach becomes one view.
Audience
Who uses SleekView for LearnDash WooCommerce
Course business owners
Filter to paid orders with no post-purchase activity in seven days and trigger an onboarding email. The list comes from the joined table, not from a spreadsheet.
Finance and ops
Pull every refunded order grouped by course. The pattern surfaces from the row data, not from clicking through WooCommerce reports.
Marketing leads
Filter orders by source attribution and check the linked completion rate. Channels delivering finishers vs window-shoppers surface from the same table.
The bigger picture
Why course orders and enrolments belong in one table
Selling courses through WooCommerce produces two definitions of success. Finance defines success as revenue per course. The course team defines success as completion per course.
Both live in tables the integration already maintains, but the default admin renders them in two separate tabs that never join. SleekView puts wc_orders and learndash_user_activity on the same row, joined through the buyer's user_id. The paid-but-not-started cohort surfaces from a filter, refund patterns surface from a sort, and the renewal conversation runs on the same data both sides see.
Same plugin, same database, very different operating posture.
Questions
Common questions about SleekView for LearnDash WooCommerce
WooCommerce's wc_orders, wc_order_addresses and wc_orders_meta when HPOS is on (or shop_order with postmeta on legacy stores), plus LearnDash's learndash_user_activity and learndash_user_activity_meta. The buyer's user_id ties them together.
 Yes. Subscriptions stores subscriptions as the shop_subscription post type (and optional custom tables in recent versions). SleekView joins the subscription to the parent order and to the learner's activity, so recurring-access course businesses get the same table with subscription status added as a column.
 Yes. Select rows and trigger refund through WooCommerce's CRUD. Standard payment-gateway hooks fire, refund emails send and stock adjustments run as if each order had been refunded individually.
 Only that SleekView reads the schema WooCommerce is using. With HPOS enabled (default since WooCommerce 8.2) it reads wc_orders directly. On legacy stores it reads the shop_order post type and postmeta. The table looks the same either way.
 Filter the joined table to orders with status of completed and learndash_user_activity with no rows for the linked course_id. The result is a row list ready for outreach or for a triggered email sequence.
 Yes. Where SleekView writes through each plugin's CRUD layer (order status, course enrolment), the standard hooks fire normally so emails, certificates and stock changes propagate as expected.
 No. wc_orders is indexed on status, date_paid and customer_id, and learndash_user_activity is indexed on user_id and activity_started. The join uses indexed columns on both sides, so tables with hundreds of thousands of orders render in well under a second.
 Yes. Any filtered table exports to CSV with the same columns the view shows. Useful for revenue reporting, for marketing attribution exports or for sending a course owner their per-course numbers.
 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.
Lifetime ♾️
Most popular
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
€749
Continue to checkout