WP Cashier
How It Works
WP Cashier utilizes the Stripe API to setup subscriptions in WordPress, and also provides your users with a link to their Stripe Billing Portal, which you can brand to your business identity.

For end users it goes like this;

1 > Create an account - Cashier uses ajax to dynamically check if username and email are available. Users will appreciate the time saved.
2 > Enter Payment Method - Cashier uses Stripe Elements for the payment form so you can customize it to match your sites design.
3 > Anytime user logs into your site they can click a link to go to their Stripe Billing Portal.

Under the hood it goes like this;

1 > When user creates account on your WordPress site, Cashier calls the Stripe API to create a Stripe Customer. The Stripe Customer ID is stored as user meta data. Cashier creates and applies a custom WordPress role to the new user, called Customer. You may change that to any role.

2 > When user adds payment method Cashier stores payment method on Stripe, and also stores payment method as user meta data ( in case you need it for special charges later ). Stripe Subscription is also created for user at this time.

3 > When user logs into your site, a unique and secure URL is created so they can access their Stripe Billing Portal. At the billing portal they can add/remove payment method, upgrade/downgrade/cancel subscription, and see billing history.

Stripe Elements - https://stripe.com/payments/elements

Stripe Billing Portal - https://stripe.com/billing

Note: This plugin is for developers, we've developed dozen of custom Stripe subscription checkouts (often integrating other APIs like CRMs) Hire us to build your ideal subscription cashier. We have included a simple and basic checkout for getting started.