One of my favorite plugins got an update last week, so today I’ll be taking a look at the changes and what’s new.
WooCommerce Subscriptions 2.0 came out last Monday, and it completely re-architects the plugin to improve support for multiple subscriptions (and lets customers purchase more than one per order), support for digital subscriptions via file dripping, new statuses, and one-time shipping charges, and subscription management for shop admins.
It also makes Subscriptions much more developer-friendly — it now uses the WordPress custom post type architecture for subscriptions so data can be access easily, and has custom REST API endpoints to make integrations with other systems easier.
There’s a What’s new guide available if you want a recap, and we’ll take a more detailed look at each new feature here.
WooCommerce Subscriptions ($199) is a phenomenal tool for managing recurring billing, and supports almost any subscription product type (digital subscriptions, shipped goods, memberships, and more). Prior to this update, it had excellent support for subscription switching and pro-rating fees.
The good news is that version 2.0 still keeps these features:
- customers can switch subscriptions to change, upgrade, or downgrade their subscription
- customers can suspend subscriptions to pause them
- sign up fees and subscription fees can leverage advanced proration rules for switching
- renewal payment dates can be synchronized for easy management
And some great new ones are added 🙂 We’ll take a look through major changes in version 2.0 in this WooCommerce Subscriptions review rather than looking into every feature the plugin offers.
One thing I should note is that if you’re upgrading from an older version, WooCommerce 2.3 or newer is now required.
One of the first changes you’ll notice about Subscriptions is that the subscription data is now stored independently from the initial order. This makes managing the subscription much easier, as you can adjust any details about the subscription by viewing it, rather than tracking down the order in which it was purchased.
This also lets you manually create subscriptions for customers and add products, fees, and / or download access. (Here’s a helpful document on doing so.)
If a subscription was purchased, the original order will also link to this view / edit screen for the subscription so you can manage it.
You can view and edit all subscriptions from WooCommerce > Subscriptions:
The change in structure to create a unique subscription object also means that multiple subscription products can become part of the same subscription as line items (more on that in a second!).
For example, if I buy two subscription products with monthly billing, these become part of my “monthly subscription” and are stored as part of the same subscription object.
The ability to purchase more than one subscription in an order was added in version 2.0, which means that your customers can sign up for as many subscriptions as they want to, saving them hassle while subscribing, and potentially saving you money on transaction fees.
Multiple subscriptions will be added to the cart at once, and their costs will be grouped together if their renewal periods are the same (monthly, yearly, etc).
Each “group” of subscriptions will then become a unique subscription for the customer to manage from his or her account.
Speaking of the customer account, it’s been improved in version 2.0 as well. Previously the “My Subscriptions” section showed basic details, then several actions, like “View”, “Cancel”, or “Suspend”. Now the “My Subscriptions” list shows all subscriptions with an action to view more details.
Viewing a subscription gives the customer the ability to edit the subscription details (such as the address or payment information) and to view complete details for the subscription.
If subscription switching is available, or if the customer has multiple items in the subscription, they can also manage these parts of the subscription while viewing it. Customers can cancel individual items to remove them from the subscription, or they can switch out one product in the subscription for another if switching is enabled.
This makes it much easier for customers to take actions related to their subscriptions, and it’s easier to manage subscriptions to several products.
A new status was also added to subscriptions: the “Pending Cancellation” status.
In previous versions of Subscriptions, once a subscriber cancelled a subscription, the status would immediately change to “cancelled”, even if the customer had paid for a length of time. For example, if I’d paid for a new month on October 1, but cancelled on October 10, technically my “paid period” lasts until October 31, but my subscription was marked cancelled on the 10th.
This could cause issues for downloadable file or content access, and it wasn’t clear to customers that they still had the “benefits” of the paid period. Now when a subscription is cancelled, it moves into “Pending Cancellation” status until the end of the pre-paid period. After the paid period is over, it moves to completed cancelled.
This allows plugins that offer special access to subscribers, such as WooCommerce Memberships, to continue to provide that access until the pre-paid term is over.
There are tons of other minor changes and improvements to Subscriptions in this version, which are covered in the What’s New guide. However, one I do want to point out is the basic digital file dripping.
This improvement is designed to support digital content providers that serve files to members each month / year / etc. If enabled, it allows you to add files to the subscription, but subscribers cannot access the file until the next renewal payment is processed.
This helps sites like digital magazines add new content, but ensure that the next payment is processed before it can be accessed.
Since the plugin has been completely re-architected with version 2.0, there are also tons of changes that developers will be interested in, along with updated developer docs.
As we mentioned initially, Subscriptions uses a unique order type (which was introduced in WooCommerce 2.2) for a subscription rather than tying data to the initial order. This paved the way for multiple subscription support, while it also makes it easy and familiar to access subscription data.
This also means that accessing subscription data is easier, as a subscription is its own object and data can be queried with something as simple as a unique subscription ID. As subscriptions are a unique shop_subscription
post type, developers who are familiar with WordPress will find working with subscriptions easier and more familiar.
Subscriptions has also added its own REST API endpoints so that subscription data can be accessed or updated by external applications, making it even easier to integrate your site with other services. For example, you can get all subscriptions using wc-api/v2/subscriptions
Looking to test the changes? This WooCommerce Dev Helper plugin will let you manually trigger renewals for Subscriptions 1.5.x and 2.0.x so you can test the changes thoroughly.
Since the data structure of the plugin has been re-done, this also makes some other new features possible. One that’s coming very soon is the ability to charge once for shipping for a subscription, which can be enabled on a per-product basis.
This will help support stores that sell a digital subscription, but the initial sign up / action requires a shipped item (such as a membership card, welcome package, etc).
There are also some other great things on the way from the fabulous Prospress team. We hinted at one previously when we wrote about WooCommerce membership sites: a new extension to add the ability to sell group subscriptions or parent-child subscriptions so one user can pay while others get the benefits.
There are also other great plugins on the way, such as the ability to add products to an existing subscription. Definitely stuff I’d keep an eye on our weekly roundups for 🙂
WooCommerce Subscriptions still holds is place as one of the best ways to manage recurring billing for eCommerce sites. The version 2.0 changes are pretty incredible (they took over a year to develop), and they make the plugin much more flexible.
There are improvements for stores that sell digital subscriptions via the addition of one time shipping costs, file dripping, and “pending cancellation” status. The plugin also supports different business models by allowing multiple subscriptions in an order, as well as the ability to manage several products in a single subscription. The improved customer management is also a plus.
If you’re looking to build a business based on the subscription / recurring charge model, there aren’t very many plugins or apps I’d put in the same class or above WooCommerce Subscriptions.
Thanks for the great summary. I would like your thoughts on if it is possible to use the Subscription/Membership together with Booking and create a certain number of appointments for example that are included in a subscription that a client can then use and book their appointments. Once the included number of appointments are exhausted they would get the next set with the auto (or manual) renewal of the subscription again. Really cool would be if any unused appointments could be rolled over into the next subscription term period (unless subscription is expired/canceled).
I’m afraid this isn’t possible out of the box, as the number of purchases isn’t restricted, just the product itself. I’d recommend generating a coupon with each renewal as per this guide instead that would be valid for appointments.