SleekView for Ninja Forms Stripe: payments as customizable tables
Ninja Forms Stripe writes charge IDs, amounts, and statuses to postmeta on the same nf_sub post that holds the submission. SleekView pivots both into one row so finance sees customer, amount, charge ID, and status without per-entry click-through.
♾️ Lifetime License available
Stripe data is in postmeta, not a payments table
Ninja Forms Stripe is an add-on layered on the standard nf_sub custom post type. There is no nf_stripe_payments table: the charge ID, amount, currency, and status are written to postmeta on the submission post (typical keys include _stripe_charge_id, _stripe_amount, _stripe_status). The default Ninja Forms admin shows you the submission, but not those payment columns in the list view.
SleekView reads wp_posts filtered to nf_sub, joins wp_postmeta, and pivots both the entry field values (_field_<id>) and the Stripe meta keys into named columns. Finance gets a payments table sorted by date with customer email, amount, currency, gateway status, and charge ID all visible. Filter by status to find failures, by amount range for refund prep, by date for monthly reconciliation against Stripe payouts.
Inline edits route through Ninja Forms' submission update API for entry fields, and through direct postmeta writes (with conflict detection and audit logging) for Stripe meta. SleekView does not move money: refunds still go through Stripe; SleekView is for reading and annotating what already happened.
Workflow
From Stripe metadata to a finance-grade table
Point at nf_sub
wp_posts filtered to post_type = nf_sub as the source. SleekView joins wp_postmeta automatically and lists every meta key actually present in the column picker.
Add Stripe columns
_stripe_charge_id, _stripe_amount, _stripe_status). They appear as named, sortable, filterable columns. Add entry-field columns alongside for customer email and form name.
Save the view
Reconcile inline
postmeta with audit logging so you can see who closed which row.
Sample columns
A typical Ninja Forms Stripe payments view
nf_sub submissions with their Stripe postmeta. Status pivots from _stripe_status.
wp_posts (post_type=nf_sub) + wp_postmeta (_stripe_charge_id, _stripe_amount, _stripe_status)
| Sub # | Date | Customer | Amount | Charge ID | Status |
|---|---|---|---|---|---|
| #612 | Apr 24 | alex@studio.co | $95.00 | ch_3PqZ...A2 | Succeeded |
| #611 | Apr 24 | ria@design.io | $45.00 | ch_3PqY...11 | Pending |
| #610 | Apr 23 | tom@hello.dev | $150.00 | ch_3PqX...K0 | Failed |
| #609 | Apr 23 | mia@brew.coop | $25.00 | ch_3PqW...77 | Succeeded |
Comparison
Default Ninja Forms Stripe admin vs SleekView
Default Ninja Forms admin
-
Stripe data lives in
postmeta, not visible in the submissions list - No payments-only view: failed and successful charges sit beside non-paid submissions
-
Filtering by
_stripe_statusrequires custom code or a CSV export - Charge IDs are buried inside the per-submission detail screen
- Bulk reconciliation against a Stripe payout means exporting and joining manually
SleekView
-
Pivot
_stripe_charge_id,_stripe_amount,_stripe_statusinto columns - Filter submissions to paid only, failed only, or pending only
-
Cross-form payment audit with
_form_idas a column - Inline-annotate refund decisions in a SleekView meta column
- Save named views per role (finance vs sales vs support)
Features
What SleekView gives you for Ninja Forms Stripe
Stripe meta as first-class columns
_stripe_charge_id, _stripe_amount, and _stripe_status become sortable, filterable columns. Reconciliation that previously meant exporting and VLOOKUP becomes one filtered view.
Status filters that exist
Filter by Stripe status (succeeded, requires_payment_method, failed), date range, and amount together. Saved views catch dunning candidates and failed-charge follow-ups daily.
Annotate without leaving the row
Add a SleekView-managed refund_note meta column inline, so finance can record refund decisions next to the original charge without switching tools or per-entry click-through.
Audience
Who uses SleekView for Ninja Forms Stripe
Finance reconciliation
Filter to _stripe_status = succeeded in a date range, sort by amount, and tick off each row against the Stripe payout. Failed charges become a separate saved view for dunning follow-up.
Support refund review
Pull a customer email, see every charge they ever made across forms, with charge IDs ready to paste into the Stripe dashboard for the refund itself. No CSV round-trips.
Owner / admin oversight
Weekly revenue at a glance: filter to succeeded charges this week, sum the _stripe_amount column. Catches gateway-config regressions (failed-charge spikes) before they snowball.
The bigger picture
Why submissions and charges belong in one view
Ninja Forms Stripe's storage model is consistent with the rest of Ninja Forms: everything attaches to the nf_sub post, the way third-party WordPress conventions usually demand. That makes the data trivially queryable but makes the default admin a bottleneck, because Ninja Forms was designed around per-form submission listings, not cross-form payment reconciliation. Finance teams need the opposite: payments first, with submission context attached.
The standard workaround is a CSV export from Ninja Forms and a separate CSV from Stripe, joined in a spreadsheet by hand. That's slow, error-prone, and ages badly as the submission count grows past a few thousand. SleekView's pivot of _stripe_* postmeta into named columns makes the database give you the report directly.
Sales sees pending and failed charges as a follow-up list. Support sees a customer's full charge history at a glance. Finance sees the reconciled-this-week view.
None of these are new database queries (the data has always been there); they're new compositions of the same data, which is the cheaper, safer thing to add.
Questions
Common questions about SleekView for Ninja Forms Stripe
No. SleekView reads from wp_postmeta on the nf_sub post, which is where Ninja Forms Stripe stores the charge ID, amount, and status when a webhook fires or a checkout completes. Refunds, captures, and dispute responses still happen in Stripe itself. SleekView is the WP-side reporting and annotation layer.
Whatever the add-on writes, automatically. Typically _stripe_charge_id, _stripe_amount, _stripe_currency, _stripe_status, and any custom-named keys the site has added. The column picker lists every meta key actually present on nf_sub posts, so add-on updates that introduce new keys surface without configuration changes.
Refund state isn't always written back to postmeta by the add-on. If your installation does sync refund webhooks to a meta key (e.g. _stripe_refund_id), SleekView will surface it as a column. If not, the cleanest pattern is a SleekView-managed annotation column where finance records the refund decision and date alongside the original charge.
No. Editing a SleekView cell writes to wp_postmeta only. Stripe's side of the world is unaffected by any annotation you add. This is deliberate, the connection from WP to Stripe stays one-way (webhooks in), so accidental edits in WP Admin cannot create reconciliation bugs.
Ninja Forms Stripe supports subscription products via the same nf_sub + postmeta pattern, with extra keys like _stripe_subscription_id. SleekView surfaces those as additional columns so you can filter by subscription status, sort by next-billing date if the meta is present, and group renewals by amount band.
Yes. SleekView's saved views are per-role scoped: finance can see the payments-joined view with charge IDs and amounts, support sees customer-centric views with masked payment data, and admins see everything. Views are config artefacts, so they can live in your codebase if you prefer them under version control.
 
SleekView queries posts + postmeta with indexed joins on post_id and pivots in SQL, not PHP. Tested through six-figure submission counts without pagination slowness. If your postmeta table is large for unrelated reasons, scoping the view to post_type = nf_sub keeps the working set small.
SleekView reads posts and postmeta, both of which are core WordPress tables. So long as Ninja Forms continues storing submissions as nf_sub posts (the documented and current model), SleekView views keep working. If a future major version moves to a custom table, SleekView would add a separate source adapter for it.
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