It can be a pain to sell subscriptions on WordPress. You are pretty much at the mercy of the plugin you are using, which generally tend to be missing a lot of capabilities as well as being a huge pain to get configured to your liking. Also, many WordPress payments plugins focus on physical products while subscriptions are a side-note (Woocommerce for example) .
Stripe Billing is a subscription management system loved by developers for their great API and rich set of subscription billing features. Stripe is ideal for many use-cases you see on WordPress; the problem is if you are using WordPress you might not be a developer, and those great APIs may look like a foreign language to you. In this article, we are going to dive into how you can utilize the power of Stripe Billing and WordPress by using the Billlfow WordPress Plugin, a drop-in UI designed explicitly for Stripe Billing so you can have customers signup and manage their subscriptions right in your web app.
Getting Started With Stripe
Sign up for a Stripe Account
The first thing you will need to do if you haven't already is to sign up for Stripe. The process is pretty straightforward, but you will need to enter your bank account details if you want to receive funds.
Define your Products and Plans in Stripe
You will need to create some products and plans in your Stripe account. If you haven't registered for Stripe, you can do so here. For a more in-depth walkthrough of getting started with Stripe, check out this article.
For an example strategy, you can create a two-tiered pricing strategy, with a Basic $50/month tier and a Premium at $300/month tier defined as separate Products in Stripe.
For the plugin to pick up what tier is which, you will need to add metadata to these Products. In Stripe you should add
sb_tier to each product you created, for example, the Basic product will have
sb_service set to "MyService" and
sb_tier equal to
Similarly, the Premium product will have
sb_service = "MyService" and
Premium. For a more detailed guide on how to setup your Stripe, see this article.
Now that your Stripe is set up for subscriptions, you can move onto the WordPress plugin.
Using the Plugin in WordPress
Install The Plugin
In your WordPress, go to the "Plugins" sections and click "Add New". Search for "Billflow" and install the plugin on your WordPress.
Configure your Billflow Settings
If you haven't already, sign up for Billflow, it's free to get started. Once you connect the Stripe account you created earlier, you can get your Billflow Secret Key which will be used to configure the WordPress Plugin.
Be sure to also check the checkbox in step 2 to allow WordPress to generate a new user every time a new customer signs up.
Gating Content by Tiers (Optional)
Set Up User Roles
In order to successfully gate your content by tiers, you will want to map WordPress user roles to specific tiers. For example, users in the Basic tier = "subscriber" while users in the Pro tier = "contributor".
You can achieve this using the Billflow "User Roles" tab on your dashboard.
To customize user role titles beyond what WordPress generates, you can use the "Members" plugin by Memberpress. This would allow you to generate more clear names such as, "Basic Subscriber" or "Pro Subscriber" which you could then map to the Basic and Pro tier respectively.
Set Up User Role Permissions
Now that you've let WordPress know what to call users from different tiers, it's time to define what each role is permitted to view.
With Billflow's library of shortcodes, you can gate single pages that you want to restrict for members of a specific tier (more on this at the end of this article).
To gate content on a larger scale (such as, by author, category, etc.), you can also install the free "Restrict User Access" plugin. This would allow you to set rules such as:
"Basic Subscriber" = can only access X and Y Pages that have "bob" as the author "Pro subscriber" = can access X, Y, and Z Pages without any other restrictions
You can get as crazy as you'd like with it.
Set Up Stripe Webhooks
To handle events that occur outside of WordPress, you need to define the information you need Stripe to relay back to WordPress so that user permissions are honored when a user upgrades, downgrades, or cancels.
To do this, add your endpoints in Stripe. Then, add your live and test secret and signing keys to the Billflow "Stripe Webhooks" tab in WordPress.
Embed Your Billing Pages
Embed the Pricing Page
Now that you have configured the plugin, let's add your pricing and plans to a Wordpress page to display your plans and allow customers to pick and subscribe.
In your Billflow Dashboard, create a new Pricing Page, name it, and configure it to your liking. Once your pricing page is configured, save the page and copy the WordPress embed code for that page.
To redirect new customers to a specific page after sign up, make sure to toggle on "Redirect to a link after checkout" and paste in the designated slug.
Go to your designated pricing page in WordPress, and in the body, type
/, and pick "Shortcode" as the block to insert.
Paste the shortcode you copied from Billflow. If you view the page you just created as an anonymous user, you will see your subscription tiers, and when you subscribe to one, a new WordPress user will be created (as part of the configuration in the plugin setup).
Embed a Subscription Portal
Next, let's create a customer billing portal for your customers. Just like in the previous step, we create a new billing page in Billflow, and in WordPress, paste the shortcode for your Customer Portal.
If you view the page as a logged-in user with a subscription, you will see your subscription information, and the user will have the ability to add a credit card, change their plan, or download their invoices.
Now that we have the plugin configured and our pages setup, you can add to the embeds various customizations to get your onboarding flow just right. For a complete list of properties, see this article.
You can add these configurations to the shortcode directly, for example, the shortcode
[billflow billing_page_id="9c7ECmmhey47zZsmEtWC" loggin_in_only="true"] will redirect user to a standard login page.
Using Billflow and Stripe Billing, you can turn your WordPress into a subscription powerhouse in a short amount of time, as we have just demonstrated. The power behind this combination is that Billflow allows you to utilize all of the features of Stripe Billing, such as coupons, customizable invoices, proration, and more. Other Subscription software in WordPress is generally lacking in capability and those that do integrate with Stripe, don’t integrate with Stripe Billing.
To try it out for yourself, go to wp.billflow.io and let us know how you like it!