There are many ways to collect recurring subscription fees from customers. Today I’m going to cover how I use WooCommerce Subscriptions here at Anchor Hosting and why I think it’s a solid platform to build on.
First off I make money by providing WordPress hosting services to my customers. For me using WooCommerce is an opportunity to invest my time in something which directly helps me do my job. Learning WooCommerce deeply is a good thing. I mean I could be learning other non-WordPress solutions however I’d rather force myself to stay in the WordPress ecosystem where it makes sense.
WooCommerce is widely used for eCommerce and supported by the folks over at Automattic 💪. WooCommerce specifically for subscriptions is a very versatile solution due it’s extendable. Let’s begin with an overview of my setup.
Variable products for each hosting plan.
So each of my hosting plans are added as a variable subscription product as shown below. I add attributes for billing terms and details. I use the details section later for adding unique information per each subscription.
I don’t actually use a shop page or have a way for a customer to signup for a subscription directly. I suppose I could however I still like the idea that I’ll handle everything even most of the signup process for my customers. At Anchor Hosting there is no signup process. Just me to generate and send you the subscription.
A subscription for each customer.
Before creating a subscription, a user is necessary. I, again, do this manually. Nothing fancy just needs at minimal an email address for the username and email fields. A subscriber or customer role is recommended.
Create subscriptions manually then process the renewal.
Now that we have a user the next step is to add a subscription for each customer. Each month I do this for all new customers. The flow is add new users, add new subscriptions then process new renewals. Below is an overview of what that looks like. Important to note when adding subscriptions manually to mark the status as active and setup the schedule with the first bill cycle in place. This means the customer can pay whenever within that first bill cycle without affecting the next automatic renewal.
Avoid creating Parent Orders
You may have noticed one of the options when creating the subscription is to “Create pending parent order”. Always avoid parent orders. You can read an official description on what parent orders are here. From my experience they just add extra complications and aren’t necessary. In fact after dealing with multiple support tickets with WooCommerce support, their recommendations to me was to not use them as they are optional.
Extending with addons and custom code.
- WooCommerce Order Status Control – Sets status to complete when payment is successful.
- WooCommerce Stripe – Who I use to process credit cards.
- WooCommerce Xero – Integrates WooCommerce with my accounting system.
- Advanced Custom Fields PRO – I use ACF to add a custom field on the subscription page. This is used to collect additional email address which is powered by some custom code.
I have written a bunch of custom code which also streamlines things further. Most of these features I’ve explained in detail separately so I’ll outline them here.
- Multiple Email Recipients for WooCommerce Subscriptions
- Speedy Checkouts with WooCommerce Subscriptions
- Auto Payments with Manual WooCommerce Subscriptions
Shortcomings and room to grow.
WooCommerce Subscription provides a ton of functionality out of the box. The biggest thing is the
/my-account/ page which allows customers to sign in and manage their subscriptions and credit cards. That said I’d really like an even simpler way to manage subscriptions with a tighter integration with my management toolkit. Currently the billing system and how I manage websites are two separate things. Doing a deep integration with WooCommerce Subscription makes a lot of sense. Just need to work on that. 😅
Most of my customers pay me via credit card which is what I prefer. That said some still send me a check in the mail. Dealing with checks is somewhat of a hassle. WooCommerce isn’t a full accounting system. So if someone pays the wrong amount with a check there isn’t a good way to track overpayments or underpayments.
One other hassle is dealing with unpaid customers. My preferred way to handle is give grace and accept the payment late but still keep their subscription renew dates fixed. As long as it’s paid before their next renewal I really don’t care. Well with WooCommerce Subscriptions, paying late means the subscription renewal date gets pushed forward. This is something I’ve been manually resetting when I notice and can definitely be improved.
Transitioning from other systems can happen gradually.
Before I switched to WooCommerce Subscriptions I was using a hosted SASS product called ReRun. There was no way to transfer card details between systems so I just gradually moved everyone to WooCommerce. Each month I would manually deactivate renewals from the old system, add the customer to WordPress, generate and email them a subscription from WooCommerce Subscriptions. I did also reach out to my customers and inform them I was transitioning system and that their next payment would need to be paid manually. However after that initial payment was made they were switched to automatic payments. 1 year later everyone way fully transitioned to WooCommerce.
Getting started with WooCommerce can be as simple as adding a few existing customers and trying it out. It doesn’t need to be all that fancy. 💰