SleekView for LearnDash PayPal IPN: course payments as tables
Reads sfwd-transactions posts plus the IPN postmeta keys LearnDash writes after PayPal payments. Build payment audit logs, refund queues, and course-access reports without exporting from PayPal.
♾️ Lifetime License available
Course payments as a real ledger, not a profile drilldown
LearnDash records PayPal IPN payments as sfwd-transactions custom posts, with details (transaction ID, payer email, payment status, course or group ID, gross amount) stored in wp_postmeta. The default LearnDash admin lists transactions as posts but doesn't expose the metadata as first-class columns, so reconciling payments with course-access grants means clicking into individual records or running custom SQL against wp_postmeta.
SleekView reads wp_posts filtered by post_type=sfwd-transactions and pivots the relevant postmeta keys into columns: payer email, transaction ID, PayPal payment status (completed, pending, refunded), course or group ID, gross amount, and IPN timestamp. Finance teams get a clean ledger sortable by date or amount, support gets a payer-lookup view by email, and L&D admins can confirm which learners received access in response to which payments.
Inline status edits route through LearnDash's transaction APIs where supported so the standard hooks fire and any integrations (membership grants, certificate issuance) run normally. Refund workflows can be paired with a saved view that filters where ipn_track_id exists but payment_status shows refunded, surfacing the records that need access revocation as a queue rather than a hunt.
Workflow
Build the IPN ledger LearnDash doesn't ship
Pick the transactions CPT
sfwd-transactions as the base source. SleekView reads wp_posts and joins wp_postmeta for the IPN-specific keys.
Pivot the PayPal meta keys
payer_email, txn_id, ipn_track_id, payment_status, and gross as columns. New keys appear automatically when present in postmeta.
Save filtered views per workflow
payment_status = refunded), pending queue (= pending), per-course revenue (group by course_id with summed gross). Each saved per role.
Edit through LearnDash APIs
Sample columns
A typical LearnDash PayPal transactions view
sfwd-transactions postmeta with PayPal IPN fields surfaced as columns.
wp_posts (post_type=sfwd-transactions) + wp_postmeta
| Payer | Course | Txn ID | Status | Gross | Date |
|---|---|---|---|---|---|
| alex@studio.co | Intro to Photoshop | 4F2849... | Completed | $79 | Apr 24 |
| ria@design.io | CSS Fundamentals | 8K3920... | Completed | $129 | Apr 24 |
| tom@hello.dev | Full Stack Bootcamp | 2P9183... | Pending | $499 | Apr 23 |
| mia@brew.coop | JS Basics | 1L0276... | Refunded | $59 | Apr 22 |
Comparison
Default LearnDash PayPal IPN admin vs SleekView
Default LearnDash PayPal IPN admin
- Transactions display as posts without payment metadata as columns
-
Filtering by PayPal
payment_statusisn't a saved view -
Reconciling
ipn_track_idwith course access requires custom SQL - No grouped totals by course or by date range in the default UI
- Refund records sit alongside completed payments without a queue view
SleekView
-
Pivot
postmetakeys (payer_email,ipn_track_id,payment_status) into columns - Filter transactions by status, course ID, and date in one saved view
- Sum and group by course or date range with inline totals
- Surface refunded transactions as a queue for access revocation
- Export reconciliation-ready CSV with payer, txn ID, course, and gross
Features
What SleekView gives you for LearnDash PayPal IPN
Payment ledger from postmeta
Pivot sfwd-transactions postmeta keys (payer_email, ipn_track_id, payment_status, gross) into a flat ledger. Sort by date or amount and reconcile against PayPal exports without per-record drilldowns.
Refund queue
Filter where payment_status is refunded or reversed and group by course. Match refunds to enrollments needing revocation and process them inline through LearnDash's APIs.
Course revenue audits
Group transactions by course ID, sum gross, and filter by date range. L&D leads see which courses earn and which underperform, with raw IPN data behind every total.
Audience
Who uses SleekView for LearnDash PayPal IPN
Finance
Daily reconciliation between PayPal payouts and LearnDash transactions, sorted by ipn_track_id. Disputes get tagged in a saved view filtered to payment_status reversals.
Student support
Look up a learner by payer_email to see every PayPal payment they've made, which courses they unlocked, and whether anything's pending. One screen instead of post-by-post lookup.
L&D leads
Per-course revenue and enrollment trends from real IPN data, filterable by quarter. Identifies bestsellers and stalled launches before the quarterly review.
The bigger picture
Why payment ledgers need first-class columns
Course payments through PayPal IPN are LearnDash's oldest commerce path, and many established LMS sites still rely on it because it works and avoids the cost of a full WooCommerce stack. The trade-off is that the data lives as sfwd-transactions posts with PayPal IPN values buried in wp_postmeta, which makes the standard LearnDash admin acceptable for a single record lookup and frustrating for everything else. Finance teams reconciling monthly want a flat ledger sorted by date with payer email, transaction ID, and gross amount in plain columns, not a stack of expandable post rows.
Support staff handling refund disputes want to filter by payer email and see every payment that email made, across courses, in one view. L&D leads planning the next course launch want revenue trends grouped by course over six months, not a sum that requires exporting and pivoting in a spreadsheet. SleekView's job is to make the IPN postmeta addressable as columns, with the same access controls and inline-edit safety the rest of LearnDash provides.
Same data, no SQL, dramatically less context-switching.
Questions
Common questions about SleekView for LearnDash PayPal IPN
Yes, this view set assumes the LearnDash PayPal IPN add-on (or its current equivalent) is writing sfwd-transactions posts with PayPal IPN metadata. If LearnDash moved your payments to a different gateway integration, point SleekView at the post type and meta keys that integration uses, the mechanism is the same.
Yes. payment_status, payer_email, ipn_track_id, txn_id, and gross are pivoted from wp_postmeta into proper columns, so each can be filtered, sorted, and grouped without writing SQL. Custom IPN keys added by your integration appear automatically once present in postmeta.
Where SleekView updates transactions through LearnDash's APIs (granting course access, revoking access, marking refunded), the standard hooks fire so any group memberships, certificates, and notifications behave normally. Direct table writes are available for back-fill scenarios when you don't want side effects to run.
 
Yes. Export a SleekView view to CSV with txn_id, ipn_track_id, gross, and payment_status, then match against a PayPal activity CSV by transaction ID. Any mismatches (PayPal shows refund, LearnDash shows completed) become a follow-up list for support.
Yes. LearnDash Groups granted via IPN postmeta (course_id or group_id) appear as columns. A saved view filtered to group_id not null lists every paid group enrollment, useful when corporate buyers purchase bulk seats and finance needs an audit trail.
Yes. Finance sees a full ledger with payer email and amounts, support sees a payer-lookup view without revenue totals, and L&D admins see a course-grouped revenue report. Each view is gated by WP capability so sensitive financial detail stays scoped appropriately.
 
Pivoting wp_postmeta is heavier than a flat custom table. SleekView only fetches the meta keys present in the view's columns, uses keyset pagination on post_date, and lets you cache aggregate revenue views for dashboards. Tens of thousands of transactions remain workable on modest hardware.
The LearnDash PayPal IPN add-on uses a CPT plus postmeta, not HPOS, so SleekView reads the standard wp_posts and wp_postmeta tables. If LearnDash moves transactions to a custom table in the future, point a new view at the new table, the column-pivot model adapts to either source.
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 checkoutBrowse more
- Woocommerce Aftership
- Woocommerce Fast Checkout
- Woocommerce Conditional Shipping
- Woocommerce Customizer
- Woocommerce Subscriptions
- Woocommerce Braintree
- Affiliate Aliexpress
- Woocommerce Advanced Flat Rate Shipping
- Woocommerce Ccavenue
- Woocommerce Conditional Discounts
- B2b For Woocommerce
- Woocommerce Conditional Shipping And Payments
- Woocommerce
- Woocommerce Octobat
- Yith Woocommerce Quick View
- Ultimatemember Mailchimp
- Ultimatemember Paid Content
- Profile Builder
- Armember
- Memberpress Emails
- Cimy User Extra Fields
- Buddypress Docs
- Members Content
- Private Content Restricted Content
- Members Management Pro
- Wp Private Content Pro
- Paid Memberships Pro
- Simple Membership Pro
- Ultimate Membership Pro
- Memberpress Bundle