This is a step-by-step guide to setting up your own property rental website using WordPress, WooCommerce, and Bookings for WooCommerce. You’ll be able to enter details for one or multiple properties and allow your users to book and pay for their stay.

Property rental bookings

Property rentals could be for vacation or holiday lets. They could also be for letting your house or apartment while you’re on holiday yourself or away for another reason. Alternatively, you may be a landlord or letting agent with one or more residential or commercial properties that you let, perhaps on a longer term basis. This article covers all these eventualities:

  • Vacation rentals
  • Apartment rentals
  • Villa rentals
  • Holiday homes
  • Holiday lets
  • Flat shares
  • Residential lettings
  • Commercial lettings
  • Short-term lettings
  • Long-term lettings
  • Variable booking periods
  • Fixed booking periods

If you think I’ve missed one, please let me know in the comments below.

Why use WordPress to let your property?

There are many places on the web where you can list your property. The most well-known include Airbnb and Gumtree but there are probably thousands in all – some covering the entire globe, others specializing in their local area. There are undoubted advantages to using one of these listing services, not least the hassle factor and the fact that they often have strong SEO.

However, there are drawbacks too – primarily that your property risks getting buried among its competitors, especially on the larger sites. By creating your own property rental website, you keep your own properties front and center.

Better for your users

You will also ensure you have control over every aspect of your rental. You can include as many properties as you wish, upload as many photos as you want, and add peripheral information such as activities and places to visit. If your website needs a section on local beaches, you can just add it. If your site needs an article on places to eat nearby, you can write and post it straightaway.

As you build up content on your site, you’re creating a single point of reference for your users. It’s their own online guidebook, entirely focused on your properties and what your users need to know.

SEO benefits

The added benefit of all this focused content is the search engine optimization boost it gives you. Because it’s your own site, you can maintain a blog which means you can keep everyone up to date with news, forthcoming events, and other points of interest. If you are renting out a holiday home or vacation property, a blog is an essential way of promoting not just the property but the entire area. Anyone researching their trip wants to know what’s happening nearby, not just how many bathrooms are in the house.

With a blog, you can write ad hoc pieces as they occur to you or you can build a structured campaign. And because you’re writing about the local area, you should never be short of content: you can provide details of local specialities, new places to eat that you’ve found, recommendations from other guests, festivals and events, shows, concerts, and anything else in the locality.

Your own marketing

With your own site, you can market it exactly as you want. This might include pay per click campaigns in Google or even advertising in local press.

Your entire property portfolio in one place

If you have several properties that you’re letting, either holiday / vacation rentals, short-term or long-term residential lettings, having your own site means that you can provide a choice to your users. Sites like Airbnb offer a huge choice to their users but, unfortunately, most of those properties aren’t yours. With your own site, you’re only promoting your own properties.

Control your reviews

Reviews are a key measure used by potential customers when assessing products, especially rentals. However, sites like Airbnb and TripAdvisor often don’t quality control reviews placed on their sites and, if you’re a business owner, this can be costly.

With your own site, you’re able to moderate and manage all reviews so any malicious or intentionally misleading reviews can be filtered out. You’re in complete control of what gets posted and by whom.

No third party fees

By having your own property rental site, you’ll avoid having to pay any charges or fees for listing your property on third party sites.

Taking bookings online with WordPress

With all the above in mind, WordPress is the obvious and natural choice for accepting online bookings and, in combination with WooCommerce and Bookings for WooCommerce, it’s extremely easy to take bookings online.

You can see a demo site using these plugins here.

WordPress themes for property rentals

In theory, you could use pretty much any WordPress theme for your property rental website. In this article, I am using Spaced, the theme I developed specifically for property rentals. Spaced has additional fields for information related to your property, such as amenities, check-in times, and other essential details. It also has a custom post type for activities so you can list things to do and places to go near your properties.

Here’s an example of a property listing using the Spaced theme:

Spaced converts the product gallery into a lightbox slider and it lays out the WooCommerce tabs as standard content which makes for a nicer browsing experience for the user. It’s ideal for any kind of property rental site.

However, you do have a huge choice of other WordPress themes that you could also use and this article doesn’t require you to be using any particular theme.

Setting up WooCommerce

WooCommerce is the most popular ecommerce plugin for WordPress and, in fact it’s becoming the most popular ecommerce solution on the web as a whole. Two of its biggest advantages are that it’s free and that it integrates with a massive number of payment gateways. I would recommend Stripe as possibly the easiest way to take credit card payments via WordPress. The Stripe plugin for WooCommerce is also free.

Once you install and activate WooCommerce, you’ll be prompted to go through its set-up wizard.

This is quick and painless and will create, among other things, all the ecommerce pages you need on your site such as Cart and Checkout. Note that if you’re only using WooCommerce for your bookings and you’re not selling any physical products, you can skip the Shipping step in the wizard.

Create a booking product in WooCommerce

With WooCommerce installed and set up, you should install and activate Bookings for WooCommerce. When these plugins are both enabled, you’ll need to create a product for each of your properties. Go to Products > Add New and enter your content. Remember that WooCommerce adds its ‘short description’ to the top of the page and the longer, main content appears below, the reverse of the layout in the admin.

In the Product Data table, select ‘Booking’ for the Product Type. A new Booking panel will appear where you can set the parameters for your booking.

Explanation of settings

Booking unit

Booking units can be either daily, nightly or weekly. Generally speaking, for property rentals you will most probably want to set this to either nightly or weekly. As a rule, shorter-term lets would be measured by night and longer-term lets would be measured by week.

Bookings start

This is an optional field that allows you to define a set day when each booking must start. This is especially important if you have a check-in / check-out day. As an example, you have a villa that you let out over the summer. Departing guests leave on Saturday mornings, you clean and ready the villa during the afternoon, then the new guests arrive on Saturday evenings. In this example therefore, you’d set the ‘Bookings start’ field to Saturday.

Min booking length

The minimum booking length is defined using the booking unit that you’ve set. So if your booking unit is weekly and you enter 2 as the minimum booking length, then users will need to book a minimum of 2 weeks.

If you leave this field empty, there will be no minimum booking length.

Max booking length

This is also defined using the booking unit you’ve set. So, if your booking unit is nightly and you enter 3 as the maximum booking length, your users will only be able to book a total of 3 nights maximum.

If you leave this field empty, there will be no maximum booking length.

Buffer period

The buffer period is an optional field. However, if you wish, you can set a buffer period between one booking ending and the next booking starting.

The buffer period is set in days. If your weekly booking starts on a Thursday but you wish it to end on a Wednesday, you can set your ‘Bookings start’ field to Thursday and enter 1 as the ‘Buffer period’.

Standard cost

This is the default cost per booking unit. For instance, if you charge $500 per week for your apartment, you should set your booking unit to weekly and enter 500 as the standard cost. If you are charging $100 per night for your bed and breakfast, you should enter nightly as the booking unit and 100 as the standard cost.

Last bookable date

You can define how far into the future you want to take bookings. Enter a date in this field using the date-picker to define the last date you’re taking bookings on this property. Perhaps you only want to take bookings till the end of the year – you can just enter the date in this field. When you’re ready to start taking bookings further into the future, you can change the date and update the property.

Non Standard Costs

Many properties will be priced differently at different times of the year. If you have a holiday / vacation let, you will possibly want to charge more during high season and offer discounts during times of less demand. You can do this easily by entering different start and end dates and the non-standard cost. You can also block dates out when the property is not available for rental.

In the example below, there are two date ranges entered. The first date range has a 0 for its cost: this means that the property is not available during these dates. The second date range has a cost of 125: this means that the property will cost this amount per night during these dates.

Note that the first date range is actually within the second date range. In this case, when date ranges overlap, priority is given to the highest range. So here, the higher range is blocked out and all other dates in the range below are charged at a non-standard rate.

Once you’ve set your parameters, you can publish the product and your property will be live on your site.

The booking calendar

The key feature of the Bookings for WooCommerce plugin is its ease of use for the user. They simply need to choose their check-in and check-out dates. The plugin will use the parameters you’ve set for the property booking to ensure that it offers the correct check-out dates. For instance, if you have a weekly booking that starts and ends on a Saturday, users will only be able to choose bookings that start on Saturdays and end on Saturdays:

Check in date

You can above and below that only Saturdays are available in the calendar.

Check out day
The completed form

The form automatically updates with calculated cost and duration for the stay. If the duration of the stay includes any non-standard date ranges then the non-standard costs will be factored in.

To make the booking the user just clicks Book Now and they’re directed through to the cart:

The details of the user’s stay are presented in the cart for the user to review before proceeding to the checkout.

Note that once the booking has been added to the cart by the user, those dates will become unavailable to other users. This is to avoid any risk of properties getting double-booked.

If the user doesn’t go ahead with paying for the booking, the cart will automatically get cleared after 30 minutes and the dates that had been booked will become available again.

If, by any chance, two users simultaneously select the same dates, the system will only accept one booking – again, this is to ensure your property can’t be booked out twice for the same dates.

Viewing your bookings in your dashboard

You can view all your bookings in the admin. Click on WooCommerce > Bookings to see the list of bookings. You can see each property name and the dates that it’s been booked for.

Click any booking to see further details:

Bookings are associated with the user and order number.

Example booking settings

Here we’ll just look at some different scenarios for bookings and how to set them up in the plugin.

Weekends-only booking

In this scenario, you only want to allow users to book your property over the weekend. Typically this would look like the following settings:

This works by setting the booking unit to ‘Night’ and setting the day that bookings start to Friday. The minimum booking length is 2 nights, meaning that guests will have to stay Friday and Saturday night. The maximum booking length is 3, meaning that guests can choose to stay the Sunday night as well if they wish. The standard cost is 85 per night.

If you only wanted guests to stay Friday and Saturday, you’d set the maximum booking length to 2.

Weekly booking

A weekly booking is pretty typical for holiday / vacation lettings as well as commercial or residential lets. The settings would look similar to:

In this example, the booking would run from Saturday to Saturday. It’s very simple.

Check-in and check-out days are different

Perhaps you need some extra time to prepare a property between guests. In this case, you might add a buffer period to give you a gap between the end of a booking and the start of the next booking. The settings would look something like this:

This booking is almost identical to the weekly booking above apart from the buffer period, which is set to 1. The booking will start on Saturdays but will end on Fridays, giving you a day between old guests leaving and new guests arriving.

Note that the buffer period is always set in days, even when the booking unit is set to week.

Further resources

Hopefully this article has covered everything you need to know about setting up a property rental website with WordPress. However, you might find the following links are useful:

Any questions, feel free to leave a comment below.


Do you develop plugins?

You should try Wisdom, a plugin designed specifically for plugin developers that allows you to track your plugin's usage and provides invaluable data on how your plugin is being used. Find out more.

Leave a Reply

Your email address will not be published. Required fields are marked *