UM Stripe Extension: Approve & Capture Payment + One-Time Plan Expiration
Overview
The new Approve & Capture Payment feature and One-Time Plan Expiration setting offer powerful new tools for site admins. These features allow for greater flexibility in managing user access, payments, and memberships for one-time payment plans. Admins can now control the expiration of member access and capture payments manually upon approval, offering better workflow management and user role control.
What’s New in v2.3.0
Version 2.3.0 introduces new controls for managing one-time payment plan expirations, manual payment captures upon approval, and advanced role assignments based on payment status. These enhancements give site administrators greater flexibility over membership lifecycles and access control.
Key Features
- Expire Member by One-Time Plan
- Manual Payment Capture on Approval
- Pending Account Role
- Role on Payment Success/Refund
1. Expire Member by One-Time Plan
Purpose:
The Expire Member by One-Time Plan feature allows you to set a fixed expiration period for users who subscribe to a one-time payment plan. After the specified duration, the user’s access automatically expires, and their role is updated to the "Expired Access Role."
How it Works:
- Expiration Duration: Set how long the user will have access to the plan. This is measured in days, weeks, or months.
- Expired Access Role: Define a role to which the user will be assigned once their access expires. This role is automatically applied based on the expiration date.
Where to Find It:
- Go to: WP Admin → Ultimate Member → Stripe Plans → Add a new Stripe Plan or edit a One-time plan type.
- If you add a new plan, select the plan type as One-Time from the subscription setup. When you select One-Time as the payment type for a plan, additional Expiration Settings will appear.
- These allow you to control how long a user's access lasts after they subscribe and what happens when their access expires. Here’s a breakdown of each setting:
- Set the Expiration Period: Choose the time unit that defines how long the user’s access will last after subscribing. You can select from: day(s), week(s), month(s), year(s). This makes it flexible to offer time-limited access for different kinds of one-time plans.
- Expiration Interval: Set the number of days, weeks, months, or years that the user’s access should remain active. For example:
- Set 30 and select Day(s) to grant 30 days of access.
- Set 3 and select Month(s) for 3 months of access.
Once this period is over, the system will automatically update the user’s role based on the next setting. - Expired Access Role: Choose the user role that should be assigned to users whose one-time access has expired. This is useful for:
- Restricting access to premium content or features after their access ends.
- Moving users to a default or limited-access role (like “Expired” or “Free Member”).
- Encouraging users to renew or upgrade their membership.
The role switch happens automatically when the expiration period is reached. This is handled daily via WP Cron, so it works even if the user doesn't log in. - Restricting access to premium content or features after their access ends.
Notes:
- The expiration check is performed daily via WP Cron — this runs automatically, even if the user does not log in.
- If no action is taken, the user will automatically lose access after the set period and be assigned to the specified Expired Access Role.
2. Manual Payment Capture on Approval
Purpose:
This feature allows an admin to authorize payment during user registration, but only capture the payment after the admin manually approves the account. This is ideal for applications where manual review of new users is required before billing them.
How it Works:
- Payment Authorization: When a user registers and completes the checkout process, Stripe creates a payment intent but does not capture the funds immediately.
- Approval Process: The admin must manually approve the user via WP Admin → Users. Once approved (either individually or in bulk), the payment is captured.
- Role on Success: After the payment is captured, the user is automatically assigned the role defined in the Role on Payment Success setting.
Where to Find It:
- Go to: WP Admin → Ultimate Member → Stripe Plans → add or edit a plan
- Select the plan type as One-Time.
- The Manual Payment Capture on Approval setting will appear. This setting allows administrators to manually review and approve new user accounts before capturing their payment.
- When a user signs up, their payment is authorized (reserved by Stripe) but not yet captured.
- An admin can then review the user and choose to approve or reject the account via WP Admin → Users.
- If approved, the payment is immediately captured, and the user is assigned the role specified in the Payment Succeeded Role setting.
- Pending Approval Role: You can assign a specific role to users while they await admin approval.
For example:
- Pending Approval Role:
Pending
This separates pending users from active members, allowing you to manage permissions and visibility for those who haven’t been approved yet. This is especially useful for applications, memberships, or services that require account review before granting access and charging a payment.
- Pending Approval Role:
Important:
Stripe allows a 7-day window to manually capture a payment after authorization. If approval happens after 7 days, the user will be approved, but no payment will be captured. - When a user signs up, their payment is authorized (reserved by Stripe) but not yet captured.
Notes:
- Stripe’s payment intent is valid for only 7 days after authorization. If the user is approved after 7 days, no payment will be captured, though the user will still be marked as approved.
- This feature is ideal for situations where account verification or manual approval is required before payment is processed.
3. Pending Account Role
Purpose:
Assign a Pending Account Role to users who are waiting for manual approval. This role isolates users until the admin approves them, providing a clear distinction between approved and pending accounts. To create a user role, read this article
How it Works:
- Once a user registers and submits payment (but before they are approved), they are assigned the Pending Account Role.
- Once approved by the admin, their role will change to the one set in the Role on Payment Success setting, and the payment will be captured.
Where to Find It:
- Go to: WP Admin → Ultimate Member → Stripe Plans
- Select and edit, or add the plan with the One-Time plan type.
- The Pending Account Role setting will appear.
4. Role on Payment Success/Refund
Purpose:
Automatically assign roles based on the payment status. The Role on Payment Success is applied when a payment is successfully captured, and the Role on Refund is assigned if the payment is refunded.
How it Works:
- Role on Payment Success: Define the role to assign to the user after the payment is successfully captured.
- Role on Refund: Set the role that should be assigned if the user’s payment is refunded by the admin.
Where to Find It:
- Go to: WP Admin → Ultimate Member → Stripe Plans
- Add a new plan and select the plan type as One-Time.
- The options "When Payment has been SUCCEEDED, assign this role to the user" and "When Payment has been REFUNDED, assign this role to the use" settings will be available in the plan configuration.
Important Notes:
- Stripe Payment Intent Expiry: Payments authorized during registration must be captured within 7 days. If not captured within that window, the payment intent expires, and no payment will be collected, even if the user is approved.
- Cron Dependency: The expiration check runs daily via WP Cron. Ensure your WordPress Cron jobs are functioning properly, as this process happens automatically in the background.
How to Set Up These New Features
This guide explains configuring a One-Time Payment Membership Plan in Ultimate Member using the Stripe extension, with manual payment capture for account approval workflows. This setup is ideal for clubs, associations, or communities that require admin approval before granting membership access.
A real-world scenario is included to illustrate how this setup works in practice.
Steps to Set Up the Plan
1. Access Stripe Plans Settings
Go to: WP Admin → Ultimate Member → Stripe Plans
2. Create or Edit a Plan
Click Add New Plan or edit an existing one.
Set:
- Type: One-Time
- Subscription Price: e.g., One-Time with Lifetime Subscription – £5.00
3. Configure Role Assignments
Assign roles for different payment states:
- When Payment has been SUCCEEDED: Subscriber
- When Payment has been REFUNDED: Expired
4. Configure Stripe Checkout Options
- Display Promotion Code field on Stripe Checkout form: Enable this if you’re offering discount codes.
- Display Tax on Stripe Checkout form: Enable to show tax details.
Note: If the selected price has an adjustable amount, the promotion code option will be disabled at checkout.
5. Enable Manual Payment Capture & Set Pending Role
- Manual Payment Capture on Approval: Set to Yes
- Pending Approval Role: Subscriber
This authorizes payment during registration but defers capturing funds until an admin approves the user.
6. (Optional) Set Plan Expiration
Define how long a user's access will last after subscribing:
- Leave blank for lifetime access, or
- Enter a period (e.g.,
365 days
) for limited memberships.
Example Scenario: Photography Club Membership
Use Case:
You manage a photography club website offering a lifetime membership plan for £5. You want to review new applicants before activating their membership and charging their payment.
Workflow:
- Samantha signs up for the Photography Club Lifetime Access (£5) plan.
- Payment is authorized but not captured.
- Samantha is assigned the Subscriber (Pending Approval) role.
- You receive a pending user notification via WP Admin → Users.
- After reviewing her sample photo submission, you approve her application.
- The system captures her payment and upgrades her role to Subscriber.
- Samantha gains full access to the club’s resources.
- If a refund is issued later:
- Her role switches to Expired.
- Access is automatically revoked.
Summary
Action | User Role | Payment Status |
---|---|---|
After signup | Subscriber (Pending Approval) | Authorized (not captured) |
After admin approval | Subscriber | Captured |
If refunded | Expired | Refunded |