How To Accept Recurring Payments In WordPress

Dec 27, 2020

Recurring billing is handy because it allows you to charge your customers at a specific time interval automatically: weekly, monthly, quarterly, annually, or custom. Since it’s an automated process, it saves you time, so you don’t have to generate and send invoices manually and then wait for your customers to complete payment. In addition to that, the automated process helps reduce any errors and delays, so it dramatically improves customer experience and gives you, the business owner, efficiency and control over a billing system and operations.. 

By default, WordPress doesn’t have a billing system, so you’ll have to use a third-party plugin for billing functionality. 

In this article, we will cover one free and three premium plugins that will help you build out the recurring payment functionality on your WordPress website. 

Buy Now Plus

Free plugin

Buy Now Plus is a free WordPress plugin that allows you to accept payments and set up recurring billing securely. Buy Now Plus works with Stripe (a popular payment processor), and once you connect the two, you’ll be able to create a payment button and place it anywhere on your website.

Let’s set it up!

1. Head to the Buy Now Plus website, and click Start Selling:

2. Next, you’ll need to either connect your existing Stripe account (by clicking Sign In in the top-right corner) or create a new Stripe account.

3. Once your account is connected with Stripe, you’ll be routed back to the Buy Now Plus website.

4. Click the Add New option to add a new button, and enter the product name, description, price, and select the desired currency.

5. Click Advanced Options to adjust optional settings. Here, you can specify the information you’d like to receive from your customers during the order process, such as their name, billing address, shipping address, etc.

6. Next, we need to configure the button. Input the button text (Buy Now, for example), leave the Return URL and Cancel URL fields empty. Then select the Recurring checkbox, configure the time interval (weekly, monthly, quarterly, or annually), and input the Trial Period Days number.

7. Click Create to proceed further, and you’ll be forwarded to the Buy Now Plus dashboard. 

8. Click the blue arrow icon next to your newly created button to copy the code so we can set it up on the website. In a new pop up, copy the Website Embed Code value to your clipboard.

9. Now, you can paste that code anywhere you want to display the button on your website (widgets, posts, etc.). For example, in the Gutenberg WordPress editor , click the + sign, select the Custom HTML option, and paste the code in the HTML field, then publish the post to see the button in the article.


Subscription plan required

WPForms is one of the best form builder plugins for WordPress and allows you to create payment forms with a recurring payment option. This is a premium plugin, and you’ll need at least the Pro plan to access the Stripe addon to set up recurring payments.

Let’s start!

1. Log in to your WordPress Dashboard, and install the WPForms plugin. Once installed, activate the plugin.

2. Once the plugin is activated, go to WPForms > Settings and fill in your license key, which you can find in your account on the WPForms website.

3. Head to WPForms > Addons, and install and activate the Stripe addon. Stripe is a payment processor that allows you to accept and process credit card payments on your website out of the box.

4. Once the Stripe addon is installed and activated, head to WPForms > Settings > Payments and click Connect with Stripe.

5. You will be taken to the Stripe website, where you need to allow WPForms to connect with your Stripe account. Sign in using the existing account or create a new one, and click the Connect my Stripe account button to provide access to WPForms.

6. You will be automatically redirected to the WPForms settings page, and you should see a green checkmark next to the connection status setting to ensure everything was set up correctly.

7. Head to WPForms > Add New to create a new online order form, and select the Billing / Order form template via the Create a Billing / Order form button.

8. Fill in the form fields in the WPForms form builder, and add the Stripe Credit Card field to the new form. Click the Payments tab, select the Enable Stripe payments option, and then Enable recurring subscription payments under the Subscriptions tab.

Enter a plan name (to see it in your Stripe transactions), and configure the recurring period (daily, weekly, monthly, annually, etc.). Click the Customer Email drop-down menu and select Email to contact your customers.

WPForms allows you to use conditional logic to create smart forms, so the fields change automatically depending on the user selection.

9. Once the form is completed, we need to add it to the website. Edit the post/page where you want to add the form, click the + sign in the WordPress Gutenberg editor, and then select WPForms block.

10. Select the created form from the drop-down menu, and you’ll see a preview right inside the Gutenberg editor. If you’re happy with the results – go ahead and publish the post/page.


Premium extension required

WooCommerce is a free plugin, but we need to use the WooCommerce Subscriptions extension to set up recurring payments, a paid plugin.

Let’s go!

1. First, we need to set up the payment gateway, and WooCommerce supports multiple; however, in this guide, we’ll use Stripe. WooCommerce doesn’t include Stripe by default, but we can install the free plugin to add this functionality. 

2. Log in to your WordPress Dashboard, head to Plugins > Add New, and fill in WooCommerce Stripe Payment Gateway in the search field in the top-right corner.

3. Install and activate the plugin. Head to WooCommerce > Settings, click the Payments tab, and click Set up next to the Stripe option.

4. Select the Enable Stripe checkbox, uncheck the Enable Test Mode option (unless you want to test things out), and click Save Changes.

5. Now, we need to install the WooCommerce Subscriptions extension  to go to the next step and set up recurring payments. 

You can purchase the extension here

6. Once the extension is installed and activated, head to Products > Add New, and find the Product Data meta box (under the post field).

7. Select Simple Subscriptions from the drop-down menu, and enter the following information:

  • Subscription price
  • Billing interval
  • Expiration period
  • Sign-up fee
  • Free trial 
  • Sale price

8. Once you’re happy with the product setup, click the Publish button to save the changes.


Premium plugin

Memberpress is one of the best membership website plugins on the market, and it allows you to sell subscriptions, offer paid content, sell digital downloads, and online courses. You can collect payments, configure membership tiers, restrict access to the content, etc.

Please note that this option requires you to have an existing membership website created with the Memberpress plugin.

Let’s start!

1. Head to MemberPress > Settings, navigate to the Payments tab, and click + to add a new payment option.

2. Select Stripe from the drop-down menu, give your payment option a name and click Connect With Stripe.

3. Log in to your Memberpress account on the next screen, and then sign in to your Stripe account.

4. Once signed in to Stripe, click Connect my Stripe account to finish the setup.

You will then be redirected back to your MemberPress Payments page, and you should see a successful Stripe connection.

5. Head back to your WordPress Dashboard > MemberPress > Memberships, and click Add New.

6. Locate the Membership Terms section on the right, and enter/select the following details:

  • Price
  • Set Billing Type to Recurring
  • Configure time interval for recurring payments (weekly, monthly, yearly, custom, etc.)
  • Select Trial Period if you offer one
  • Select Limit Payment Cycles if needed

7. Scroll down and find the Membership Options meta box under the post editor. Here you can adjust permissions, select registration details, change price box details, etc.

8. When ready, hit the Publish button to save changes.

That’s it!