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.
- WP Simple Pay is a standalone payments plugin that connects Stripe with WordPress. Since it’s not an add-on, no other plugins are required. Simply set up a payment form and start accepting credit cards on your WordPress site. It’s no secret that we believe Stripe is the best payment processor.
- 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.
Secure Payment Processing All payment processing and data storage uses Stripe's ultra-secure servers keeping your WordPress database size small and website loading fast. Secure Customer Authentication (SCA) is also supported. Stripe Payments is a free Stripe payment plugin for WordPress websites that makes it easy to accept credit card payments with Stripe online. You can do this by adding a Buy Now button right onto your website by using shortcode. And if you’re looking for a free payment gateway plugin for WordPress, this could be an excellent choice for you.
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_service
and sb_tier
to each product you created, for example, the Basic product will have sb_service
set to 'MyService' and sb_tier
equal to Basic
.
Similarly, the Premium product will have sb_service
= 'MyService' and sb_tier
= 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
Stripe For Wordpress
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.
Customizations
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.
Conclusion
Stripe Payment Plugin
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.
Stripe Wordpress Subscription
To try it out for yourself, go to wp.billflow.io and let us know how you like it!