Showing only paid entries: filtering a View by payment status
This functionality requires the Advanced Filter Extension, which is included in GravityView Pro and All Access licenses. Learn how to install this extension.
If your form takes payment, Gravity Forms records a payment status on every entry. The Advanced Filtering extension can filter on that status directly, so a View can show only the entries that were actually paid for.
This is how you build a paid directory, a paid job board, or a members-only listing where an entry disappears on its own when the customer stops paying. No code required.
What you can filter on #
Edit your View and open the Settings panel. Click the Filter & Sort tab, then click Add Condition under Advanced Filter. In the field dropdown, these payment properties are listed under Entry Properties:
| Filter | Operators | Value |
|---|---|---|
| Payment Status | is, is not | A dropdown of the statuses below |
| Payment Amount | is, is not, greater than, less than, contains, does not contain, is empty, is not empty | Free text |
| Payment Date | is on, is not on, is after, is before, is empty, is not empty | Today, Yesterday, Tomorrow, or a custom date |
| Transaction ID | is, is not, greater than, less than, contains, does not contain, is empty, is not empty | Free text |
Payment Status offers these values: Authorized, Paid, Processing, Failed, Active, Cancelled, Pending, Refunded, and Voided.
Paid is the status for a one-time payment. Active and Cancelled are the subscription statuses.
Show only entries that were paid for #
- Edit your View.
- Open the Settings panel and click the Filter & Sort tab.
- Click Add Condition under Advanced Filter, then set the condition to Payment Status is Paid (Payment Status is under Entry Properties in the field dropdown).
- Update the View.
Entries whose payment failed, is still processing, or was refunded no longer appear.
Show only listings with an active subscription #
This is the setup for a directory that charges a recurring fee. When a subscription is cancelled or fails, Gravity Forms updates the entry’s payment status, and the listing drops out of the View by itself.
- Edit your View.
- Open the Settings panel, click the Filter & Sort tab, then click Add Condition under Advanced Filter.
- Set the condition to Payment Status is Active, then update the View.
The Gravity Forms payment add-on has to be the one managing the subscription for the status to stay current. Gravity Forms updates the entry when the payment gateway reports a change. Payments recorded manually, or collected outside Gravity Forms, will not update on their own.
Accept both one-time and subscription payments #
Add the first condition, click + CONDITION to add a second, then set the group toggle to OR:
- Payment Status is Paid
- Payment Status is Active
Show a “renew now” button instead of hiding the entry #
Filtering removes the entry entirely. If you would rather keep the listing visible and prompt the owner to pay, use the [gvlogic] shortcode in a Custom Content field instead:
[gvlogic if="{payment_status}" is="Paid"]
Your listing is active. Thanks!
[else]
<a href="/renew/" class="button">Renew your listing</a>
[/gvlogic]
{payment_status} is a standard Gravity Forms merge tag, so it works anywhere merge tags do.
Not sure which tool to reach for? See When to use Advanced Filtering vs Field Conditional Logic vs gvlogic.
Combining with an expiry date #
Payment status answers “did they pay?” It does not answer “was it recent enough?” For listings that lapse after a fixed period regardless of payment, combine the payment filter with a date filter. See Making entries expire after a certain amount of time.
A common paid-directory setup uses both conditions together:
- Payment Status is Paid
- Payment Date is after a custom date one year ago
Common problems #
“No entries match your request” after adding the filter
Check the actual status on the entry in Gravity Forms (Forms, then Entries, then open the entry and look at Payment Details). Stripe Checkout in particular leaves entries at Processing when the visitor closes the payment window before returning to the site. If most of your entries are Processing rather than Paid, that is a gateway configuration issue rather than a filter issue.
The filter works, but a cancelled subscriber is still visible
Confirm the subscription is cancelled in the payment gateway, not just in your own records, and that the Gravity Forms payment add-on is connected. The entry status only changes when the gateway notifies Gravity Forms.
Entries paid by check or cash have no payment status
Entries created without a payment feed have an empty payment status, so an is Paid filter will exclude them. Either set the payment status on those entries manually in Gravity Forms, or add a second condition on your own “payment method” field with the group toggle set to OR.
