Giving your customers the option of paying up in installments is one of the oldest tricks in the book to get more conversions. But, as some of you might know, providing installment payment plans on WooCommerce isn’t a default feature of the plugin.
That leaves us with one of three options:
1) Develop a WordPress plugin for ‘WooCommerce installment payments’ from the ground up
2) Purchase a ‘Deposits’ plugin that also has the functionality to offer the installment payments option
3) Use WooCommerce Subscriptions to formulate a workaround
While installments are a great option to provide on any eCommerce store, we’ve seen a large number of clients building subscription-based online stores take this route. Another popular category is clients with Learning Management Systems.
If you have a similar use case, we recommend using the same approach.
How to use Subscriptions to Offer Installment Plans on WooCommerce
So, first things first, let’s discuss how to use WooCommerce Subscriptions plugin to enable the installment functionality for products in your WooCommerce store.
1. Install Subscriptions Extension
The first step would be to install the WooCommerce Subscriptions extension on your WooCommerce website. As the name suggests this plugin provides users with a functionality to sell products as subscriptions as opposed to selling them outright.
2. Set Product Type to Variable Subscription
The product that needs to be sold with an installment plan should be set as ‘Variable Subscription’.
3. Select Payment Mode
This where you’ll need some help from a WooCommerce expert. The WooCommerce Subscriptions plugin will need to be customized to allow customers to opt for paying in installments. Additionally, to enable this option for products another payment mode ‘Installment Mode’ will need to be made available. Once that’s done, all you’ll need to do is select the ‘Installment mode’ as the preferred mode of payment to apply the WooCommerce installment payment functionality.
4. Add Subscription Attributes
In the attributes tab on the product page of the dashboard, the user will have to define an attribute with various values. The attributes and its values are primarily the various installments plans the user can avail on your WooCommerce store. The image below is an example of the attribute with values.
5. Link Values
All the values defined in the attribute tab should now be linked to the variations that are added to each product. Now once all values are linked to variations the customer can add and subtract variations as per requirement. Take a sneak peek of how it will look below.
6. Settings for each Variation
The final step of the process would be to set values like subscription price, the number of months, etc and the variation should be enabled for use.
How Do the WooCommerce Installment Payments Actually Work?
- Let us assume certain courses are being sold under the installment payment plan. Now, when a customer lands on a course page he can choose any one of the payment methods that have been defined in the attributes tab of the dashboard. Let us assume the customer chooses the 3-month installment plan which requires the customer to pay an X amount per month for three months.
- The user will make the first payment and get access to the course. After the end of the first month, the customer will be required to pay the second installment of the course. In case the customer defaults on installment the customer’s access to the course will be suspended.
- At the end of the subscription period, the system will check the payment mode of the course. If the payment mode selected is Installation Mode then all further payments will be suspended and the product will be available to the user continually. This check is made by customizing the WooCommerce Subscriptions plugin using hooks provided by the plugin.
Some might argue that this is a crude workaround.
Well, it is! But if you’re getting the WooCommerce installment payments plans functionality along with subscription functionality then, it’s the perfect cost-effective solution fulfilling the requirements with only a few added customizations.
If there are any questions or suggestions related to the post feel free to drop us a line in the comment section below.
Images by freepik
Works in 2017! Tweaking it now actually. Will have some quirks but nice little crude layaway system.
Can anyone confirm this method still works in 2016?
The “Instalments Mode” doesn’t work any more does it? I bought the plugin because of this article and I can’t do it??
Thanks for this great tutorial but can you please tell me how you were able to set up AT ONCE option under variations. Because When I selected AT ONCE and go the settings of Variations how to charge only one time. I see every month, week, day or year.
Any advice is appreciated it
Ganesh pawar :
you just need to select Subscription Length: 1 day . so Subscription will be for one day only
hi, i am wondering how to make this installment payment in a multi vendor plugin such as wc-vendors or dokan. Their Support said, the checkout item is woo related and their plugin has nothing to do it with. but If i want vendor 1 to have payments in 6x and vendor 2 payments up to 3x, how that would Works.
Thanks so much for sharing this information , But i have the question regarding installment
if user goto subscription detail there is two button suspend or cancel, so user can suspend or cancel subscription .
so please could you let me know how to disable suspend or cancel for this particular order or Any idea of how this could be done ?
Please send us how to add the dropdown payment mode list and how to add this two options.
Many thanks for your help
David Alexander :
Does this still work? I tried the plugin but that option is not there and there isn’t any instructions above as to what needs to be customized to create the dropdown?
Jeff Burger :
Thanks so much for sharing this information. Unfortunately, I’m missing something. (I only know enough coding to make myself dangerous!)
In the thread above, regarding the custom field to create the dropbox, you provide code starting with “woocommerce_product_options_general_product_data”. Can you help me understand exactly how to get that code into the system?
I do see the Custom Fields pane on my product page. If that’s where I’m supposed to enter this, the left field is a pulldown with the only recognizable option being “attribute_pa_payment-mode” (roughly related to my attribute slug “payment-mode”). Anything I try to get your code into the custom field flashes yellow and doesn’t produce the “Installment Mode / Subscription Mode” pull-down in the General tab.
Similarly, where and how do I customize the subscription_expired hook?
Thanks so much!
Bharat Pareek :
Hey Jeff, you’ll have to add the code in the functions.php file of the theme you are using.
Beware though, should you update your theme or change it the changes will be lost. Unless you’re not doing any of this you should be good to go. Should you have to update your website theme you should look at the option of creating a child theme.
Hope that helps!
Marcus Freudenmann :
How much would you charge for an install like that. We have sensei with guru theme and only 4 products that need this payment plan setup. I could not do it myself and require your help.
Bharat Pareek :
Hi Marcus, i’ll have someone from the business development team get in touch with you regarding your requirement!
Greetings, I am curious if this modification still works. I am unable to tell because the comments do not have dates. I am trying to add the suggested code to my functions file and it seems to be incomplete. Would it be possible to be emailed more detailed instructions?
Thank you in advance for your kind consideration and answer to my comment,
Adam Apollo :
“At the end of the subscription period the system will check the payment mode of the course. If the payment mode selected is Installation Mode then all further payments will be suspended and the product will be available to the user continually. This check is made by customizing the WooCommerce Subscriptions plugin using hooks provided by the plugin.”
What is the hook you are using to customize the Subscriptions plugin and keep it from removing access groups etc upon expiration of the Subscription (which is now an Installment Plan)?
Bharat Pareek :
Hi Adam, the ‘subscription_expired’ hook provided by the Subscriptions plugin is used to perform the check that you have mentioned.
Anes Belfodil :
Is it possible to divide the course in different parts with a corresponding installment ?
For example: My course is divided in 6 parts (it is a single course in moodle). The customer chose 1 installment, so he gets access to 6/6. If he chooses 2 installments, he gets 3/6 for each installment, etc.
Any idea of how this could be done?
This is 90% of the perfect solution I’m looking for! Here’s the tricky part–my client is a midwife and only wants to offer a number of installments equal to the number of months until the client’s due date, but that will be different for each client. Any ideas on how to dynamically offer different variations? (for example, a client with a baby due in 3 months would have the options “At once” and “3 installments.” But a client with a baby due in 7 months would have “At once” and “7 installments.”)
Any thoughts? TIA!
Bharat Pareek :
What you can do is define an attribute with different variations (See Image: Add Subscription Attribute). Now the client can choose the installment plan based on his requirement.
I haven’t really explored the option to dynamically offer different variations but you might have to take an input from the client to be able to dynamically offer variations.
How do I customize my woocommerce subscriptions plugin to enable installment mode?
How did you get the WooCommerce Subscriptions Plugin customized to allow the user to select payment option in step 3?
Bharat Pareek :
I have added a custom field to the product dashboard in step 3 to display the drop down. Now when a user selects Subscription Mode a value ‘1’ is assigned in the product meta, whereas when the user select Installment mode a value ‘0’ is assigned in the product meta. Now when the subscription period ends this value for the product will be checked and based on the value continued access to the product will either be provided or not.
Hi Bharat, great explanation. Following on from Fidel’s questions. What did you place in the custom field to create the drop down box. Thank in advance for the help
Bharat Pareek :
I have used the following action for the custom field. woocommerce_product_options_general_product_data
echo ‘<div class=”options_group show_if_variable-subscription”>’;
‘id’ => ‘_wdm_payment_mode_select’,
‘label’ => __( ‘Payment Mode’, ‘woocommerce’ ),
‘options’ => array(
‘instalment’ => __( ‘Instalment Mode’, ‘woocommerce’ ),
‘subscription’ => __(‘Subscription Mode’,‘woocommerce’)
This is no longer an option. WooCommerce has now broken this functionality out of the Subscriptions extension, and you have to purchase ANOTHER extension on top of the Subscriptions extension called WooCommerce Deposits in order to get this installment payments option back. And BTW, it’s another $180/yr for that extension…