How to Create a Subscription Store with WooCommerce

subscription store with WooCommerce featured

Subscriptions are an important part of sales for any ecommerce store. This is the list of your gold users who are ready for repeat purchases, since sales by recurring subscription is a very popular and easy to maintain channel of income that doesn’t incur big expenses compared to the usual marketing techniques and every step can be managed by the software.

Subscription means recurring sales of products or services by your customers. You may recognize the subscription model everywhere on the internet, ranging from simple grocery stores to retailers like SaaS. It can be used everywhere to drive more sales. Customers love stores offering subscription plans because it automates the purchasing of products that last a short period of time, such as subscribing to receive shaving cream once every two months.

There are many different types of subscriptions for ecommerce. For example, you may subscribe to physical products or services, you may open different levels of support service or access different areas of the website.

If you are not using WooCommerce Subscriptions in your store, it’s a must try feature. In this article, we will dive into setting up one the most popular subscription plugins and we will also review some other popular plugins. You will learn how to quickly set up a subscription store with WooCommerce plugins and sell subscription-based products and services with a recurring payment. Those plugins can be used for any products, virtual or physical, over a predefined time interval. As with all of the transactional and marketing emails, you’ll want to customize WooCommerce subscription emails to be consistent with your brand voice.

YITH WooCommerce Subscription

In this article, we will dedicate more attention to this free plugin since it’s a very popular and widely used subscription based website, setting up this plugin is easy and can be done in several minutes.

First of all, you need to install the plugin from the WordPress repository. You can directly search it from your WordPress dashboard > plugins > Add new, and search for “YITH WooCommerce Subscription.” Here is the direct link to the plugin, so install and activate it.

Once you activate the plugin you can immediately start using it. Open any product and you will see a new checkmark in the product details tab. By selecting it, new options will appear on the General tab:

As you can see there are several settings options. However all you need to do is enable the subscription plan for this product, select price for a selected period of the time. While there is no option to set a time period of years, you may use a combination of months or days instead.

In the same tab you also have the option to set the time when a subscription period ends and options for subscription limits. For example, you may limit users to allow only one active subscription.

Once you’re done with the product setup it’s ready for publishing. You will see a notice about subscriptions on the product page:

That’s it, we’ve made it, so now when visitors check this page they will see this is a subscription-based product.

How does payment work?

By default, you need to configure payment in WooCommerce > Settings. PayPal is the payment option configured by default here, so during the predefined period of time (set in the product page) the payment system will charge users the amount of funds predefined in the product page. If funds are not enough, subscription will automatically be canceled and the user will be notified about this.

Users can also use different payment methods and the system will use that method for recurring payments. Please note that the system stores user payment methods and data, so customers will be charged automatically based on their payment method and details.

Where are my subscribers?

You can see all your subscribers in YITH > Subscription > Subscriptions. Here you can view all your current and canceled subscriptions. You also have different types of filters to filter subscriptions by date, status, payment method and customer. You can also bulk delete subcategories manually.

That’s pretty much everything that you need to start subscription-based products sales. We will not cover every piece of the settings in this blog post, so for more information check out the official documentation
The premium version of the plugin offers some other features and full control over subscription management. If you feel you are missing some configuration settings in the free version it probably is already covered in the premium version. Check this link for more information about Pro.

WooCommerce Subscriptions

WooCommerce Subscriptions, is managed by WooCommerce and is an excellent tool for setting up all kinds of subscription plans. It comes with 25 payment gateways for automatic recurring payment and you can set daily, weekly, monthly or annual billing to renew user subscriptions.

Plugin has great support and natively works with WooCommerce plugin It’s a paid plugin and costs $199 per year.


subscription store with WooCommerce - subscriptio

Subscriptio is a premium plugin you can purchase on You can use it to sell subscriptions by default and it also has recurring revenue scheme options. This plugin is a great way to sell e-learning courses, magazine memberships, premium levels of profiles and more.

A regular license for the plugin costs $69 and if you want to extend the license it will cost $299.

SUMO Subscriptions by Fantastic Plugins

subscription store with WooCommerce - sumo

SUMO Subscriptions is a universal tool you can use to create a subscription store with WooCommerce. It can be used for any kind of product and it also can add a subscription feature to your existing products as well. It has 4 built-in payment options, including PayPal and Stripe.

A SUMO subscription varies between $49 to $490 depending on which option you choose.

Subscriptions for WooCommerce by WebToffee

subscription store with WooCommerce - webtoffee

WebToffee for WooCommerce Subscriptions is a simple yet powerful plugin that allows you to set up basic subscription plans to any kind of products in your store. This plugin also supports major payment gateways such as PayPal and Stripe. 

The plugin can be tested as a free trial before making a final decision. For a single site it costs $89 and a business license for five sites costs $129.


Now that you have a little bit more of an understanding of how subscription for ecommerce works I believe you will have all the necessary information to choose the right plugin. Using the plugins we mentioned here you can quickly sell subscriptions-based products and services and create a subscription store with WooCommerce successfully. If you need more clarification or have any questions please leave a comment below.

Freelancer’s guide to Building a Dynamic Hotel Website with Jupiter X – Part 3 (Booking a room)

building a dynamic hotel website featured

In the first part of this series, we dove into creating a dynamic room listing with room attributes and a nice template that includes those custom attributes, both of which will be filled out by the receptionist. In the second part of the series, we saw how you can create archive lists and add filtering capabilities to them. Picking up from where we left off, we will now build a dynamic hotel website by creating booking forms along with pricing calculators and we’ll see where the entry data goes if someone books a hotel on our website. 

As you’ll recall, we created a custom post type for our room called Rooms and then created a listing for it. A listing is an embodiment of the meta fields in a custom post type with a particular design. In the first part, we built a custom post for our rooms and a listing and beautiful design for a single page. What we are going to do now is work on building a dynamic hotel website by modifying the single page template for our Room post type and using Jet Engine forms to add a booking form to each room page.

Enabling Jet Engine Forms

Jet Engine Forms are disabled by default. If you want to make booking forms using this feature, you first need to enable it via Jet Engine settings. Open the Jet Engine -> Jet Engine and make sure the Forms module is enabled.

Enabling the Forms module in Jet Engine

After that, the Forms menu will be available under the Jet Engine menu. Open the Forms panel and click on Add New to create a new booking form.

building a dynamic hotel website - add new form
Adding a new form in Jet Engine

The first step is to define a name for your form. Then, add the post ID as a hidden value in order to be able to use the form in dynamic pages. This will give you the option to see on what post the user submitted the form.

Defining a name for the form

Make sure the post_id field has these settings:

Type: Hidden
Required: checked
Field Value: Current Post ID

Post_id hidden field will be automatically populated by the current post ID value

Now we need to add other essential fields to our form to get the user booking information. I will add the check in date, number of nights of stay and number of guests in three separate fields. 

The Check In Date should be a datepicker field, so I will set its type as Date.

Inserting a date field to the form

The good thing about these fields is that you can change the width of the fields and change their alignment by simply dragging and dropping them into position. I want my fields to be placed in one line, so I will change the width of each field to approximately 33%.

Making the fields inline

I want to show the price of that room as soon as the viewer changes the numbers on the form. If I didn’t know that Jet Engine provides a “Calculated” field type, I would have to write this part via Javascript. Fortunately, I can do this easily if I just define my formula in a “Calculated” field type. In order to do that, I will add a new field named “cost” and then define a formula for how to calculate the cost. However, I need to get the price of the room from the meta fields first and then we can use it in our formula. So, let’s add a hidden field named “price”.

Get the price field by defining a hidden field populated by post meta

Now set the Field Value to be “Current Post Meta” and put the meta key “price” inside the “Meta Field to get value from” section. 

Now It is time to add a calculated field into the form. Add a new field and set it to be  “Calculated”. Then define the formula as follows:


By using this formula, we are saying that we need to multiply the guest number by price of the room multiplied by duration in terms of nights.

building a dynamic hotel website - define formula
Defining the formula for our pricing calculator

So, if a room costs 50$ per night and a person, it would cost 50x2x3 = 300$ if there are two guests and they want to stay 3 nights in that room. 

After that, apply the changes and define how the form should act when the user submits it. Scroll down to the “Post-submit Actions / Notification Settings”  and add as much as you want. Here I just want to get notified via email but you can use MailChimp, Active Campaign, create a user or even call a webhook to connect your website to your hotel booking software (with a little bit of coding).

building a dynamic hotel website - define actions
Define actions on form submission

Now save your form and open the room’s single page template and edit that via Elementor. Then drop a “Form” widget from the jet engine widgets and then select the form you created.

building a dynamic hotel website - adding jet engine form
Adding the jet engine form as the booking form on the room’s page template

That’s all. Now save the page template and visit one of the hotel’s pages.

By submitting this form, since I set the notification email to be sent to my website admin, she will receive an email as soon as someone books a room.

building a dynamic hotel website - the booking form
The booking form within the page

Building a dynamic hotel website series ends here and we hope that it shed some light on the possibilities and features offered by the Jupiter X theme and its bundled plugins. Some users may need advanced booking forms. The booking forms here can get really advanced and complex. However, advanced features such as integration with WooCommerce or storing the data in custom tables are possible via the Jet Bookings plugin, which is not bundled with Jupiter X. 

If you have any questions or feedback on building a dynamic hotel website and this series in general, feel free to post it in the comments below. We love getting feedback and would like to hear from you.

Common WordPress Mistakes to Avoid

common WordPress mistakes featured

WordPress is the most popular CMS platform out there. If you’re reading this article, you probably already use WordPress for your site, but it’s important to be mindful. Many users, especially beginners, make mistakes when they start managing a website. But many of these mistakes are easy to avoid, and if you read further, you’ll be able to fix mistakes before they harm your website. Let’s check out the list of the most common WordPress mistakes you should avoid

Ignoring website backups

A lot of website users think “It won’t happen to me,” but that’s wrong. One day you can find that your site was compromised and all data was lost. The server may crash or the site may be hacked. You’ll be so upset if you need to start everything from scratch. If you didn’t make a backup, that will be your only option.

If you don’t know how to create a backup, you can do this with plugins. The article “How to Backup Your WordPress Database Like a Pro” will be helpful for you.

When installing WordPress, you are provided with setup options. One of the options is to set a username for your account. By default the username is set as “admin”, but you should change it ASAP. The security of using “admin” as your username is weak and if you use a weak password as well your website will definitely be hacked. You should avoid using short and weak passwords. Your password must be long and consist of a letter, number, and symbol combination. Avoid using any common usernames, like “admin” or “administrator”.

You can also add two-factor authentication to your WordPress website. This article will give you more information about it.

Ignoring updates

There are regular updates for WordPress plugins and themes. When you install these updates, you’re getting new features and security improvements. Many users choose not to update as they are afraid their website will crash. If you are afraid of this too, you can run updates on a staging site and then proceed on a live site to see if everything runs smoothly. If you keep old versions, your website will be open for hackers. You should always update as soon as a new version is released, whether it’s for your WordPress sites, themes or plugins.

Forgetting to install a caching plugin

Deciding not to use a cache plugin is a bad idea. These plugins will help you speed up site loading and optimize your site. If your website loads too long, your visitors will probably close the page and move to another website.

There are a lot of great WordPress cache plugins out there and you’ll definitely see the benefits if you install one of them. If you are using the Jupiter X theme and want to optimize the site to speed up loading times, you can follow the instructions from this article.

Leaving images unoptimized

common WordPress mistakes - image optimize

Using data-heavy images will slow down your website, causing it to take too long to load. So, before uploading images to your WordPress site, you need to optimize them. We already have the article “How to Optimize Your Images for SEO and Speed” where you’ll find detailed instructions on how you can optimize images to improve performance.

Adding Forms to your website without anti-spam validation

When creating a contact form on your website, it’s important to protect it from spam. If you don’t do it, one day you’ll wake up and find your mailbox full of spam. To prevent such issues, it’s recommended to use captcha for the contact form. You can read about custom contact forms in this article.

If you created a website with the Jupiter X theme, you can find how to enable captcha for Jupiter X Contact Form here .

Allowing spam in the comments

It’s a great idea to allow your visitors to leave comments under posts, but a mistake you may make is failing to moderate the comments and deactivating the Akismet plugin. If you approve spam comments, it will hurt your SEO.

The Akismet plugin is one of the best methods of protection. It will block blog comments and pingback spam. Keep it activated to filter out spam messages.

Using ugly plain permalinks 

Permalink structure is very important in a WordPress website. Many website owners use a default URL structure like yourdomain.tld/?p=18. It’s bad practice to leave permalinks like this, since it’s bad for both SEO and for user experience. 

Creating custom permalinks in WordPress is not difficult. To avoid this common WordPress mistake, log in to the WordPress dashboard, go to Settings > Permalinks and update your permalinks.

common WordPress mistakes - permalinks

Forgetting to remove a default favicon

WordPress themes come with a default favicon. It is a mistake if you don’t remove it! Instead, it’s better to replace it with a favicon of your own, so your site looks professional. Usually a company logo is used as a favicon. It’s displayed in the tabs and bookmarks of a browser, and users will identify the site by its icon.

Leaving test pages published

Sometimes you create test pages to test some elements or features on your site or leave sample pages that come with WordPress themes or plugins. You’re making a mistake if you are not deleting them. Such pages will be indexed by search engines and will be recognized as duplicate content or even spam and your SEO score will decrease. So, before publishing the site, make sure you have deleted demo content and test pages.

Wrapping up

WordPress is a great choice to manage your website. While it’s an easy and powerful tool, it’s also easy to make mistakes with it, especially if you’re a beginner. To avoid such mistakes, it’s better to pay attention to each step in this article. If you are aware of other common WordPress mistakes that are missing here, feel free to share them in the comments.