1. Documentation
  2. Plugins
  3. WooCommerce
  4. Extensions

Rental Products

Documentation for the Rental Products WooCommerce extension.

Installation ↑ Back to top

Login to your WordPress dashboard and install and activate the extension.

Activation ↑ Back to top

Upon activating the extension you will see a notice with links to settings and the rentals dashboard:

To get started configure the settings. You can dismiss this notice from appearing again by clicking the dismiss notice button.

Settings ↑ Back to top

The settings page can be accessed within your WordPress dashboard through the activation notice (if you have just activated the extension) or at: WooCommerce > Settings > Products > Rental products.

We recommend using the default settings but you may wish to configure these settings inline with your store. Once you have finished configuring the settings use the save button at the bottom of the page to save them, once done you can start adding rental products.

Categories ↑ Back to top

With the settings page you can configure the settings within the following setting categories:

  • Rental date format
    • Configure the date format used for rental date periods such in cart/order items, emails, etc.
  • Rental form
    • Configure the rental form used for customers to select dates. Rental form date format/styling is also used for the availability checker. The rental form is optimized for physical/emulated mobile and tablet devices (not by reducing desktop browser size).
  • Disable rental dates
    • Configure specific dates to be disabled for rental.
  • Rental or purchase toggle
    • Configure the rental/purchase toggle used by customers on rental or purchase based products.
  • Rental price display
    • Configure how the rental price should be displayed.
  • Rental information
    • Configure the rental information display.
  • Availability checker
    • Configure the availability checker.
  • Text
    • Configure the various text references used. Applied to frontend and within order line items in backend.

Rental date format ↑ Back to top

Rental date format

Allows you to change the format of rental dates used on the front and backend of the website such as in the cart, checkout, orders, emails, etc with the exception of the rental dates within the rental form used by customers to select dates (see Rental form date format). Use a PHP date format (see description column). Using an incorrect format may cause dates to be displayed incorrectly.

Rental form ↑ Back to top

Rental form calendar styling

Click the link within the settings page to see technical information on amending the calendar styling via CSS.

Rental form date format

Allows you to change the format of rental dates displayed when a customer selects dates using the rental form on product pages. Allowed formats are D, DD, M, MM, MMM, MMMM, YY, YYYY. Using an incorrect format may cause dates to be displayed incorrectly.

Rental form first day

The first day of the week in the rental form.

Rental form after quantity

Displays the rental form after the quantity field on product pages, if disabled this will display the rental form before the quantity field.

Disable rental dates ↑ Back to top

Disable rental dates

Disable rentals on specific dates. Used in addition to any disabled dates which have been set at product level.

Rental or purchase toggle ↑ Back to top

Rental or purchase toggle position

The position of the toggle for rental or purchase based products. Low is in the position below the add to cart button and high is in the position below the price.

Rental or purchase toggle type

The toggle type for rental or purchase based products. Note that the button type requires CSS for .button which is normally included in your theme.

Rental or purchase toggle loops/blocks display

Displays the view rental options toggle link/button on rental or purchase products within loops/blocks. View purchase options toggle link/button will not display as the purchasable part of a rental or purchase product is always shown on loops/blocks. Rental or purchase toggle position does not apply to this setting.

Rental price display ↑ Back to top

Rental price display prefix

Set text to appear before a rental product’s price. You can also have rental prices substituted here using one of the following: {rental_price_including_tax}, {rental_price_excluding_tax}. Note this can also be filtered via the wcrp_rental_products_rental_price_display_prefix filter.

Rental price display suffix

Set text to appear after a rental product’s price. You can also have rental prices substituted here using one of the following: {rental_price_including_tax}, {rental_price_excluding_tax}. Note this can also be filtered via the wcrp_rental_products_rental_price_display_suffix filter.

Rental price display override prefix/suffix

Displays the rental price display prefix/suffix when rental price display is overridden on the product.

Rental price display rent text

Displays rent from/to text in the rental price display.

Rental information ↑ Back to top

Rental information title

Title used as the rental information tab and it’s heading displayed on the product page. Note this can also be filtered via the wcrp_rental_products_rental_information_title filter.

Rental information heading

Displays the rental information title as a heading within the rental information tab.

Rental information

Adds rental information to a tab on the product page. This will be used in addition to any rental information which has been set at product level.

Availability checker ↑ Back to top

Configure availability checker settings. Use the Availability Checker block and/or [wcrp_rental_products_availability_checker] shortcode to allow customers to select preferred rental dates and quantity, this then shows availability status on rental products (where variation/grouped product selection is not required and subject to the settings below) and auto populates rental dates on product pages (if available). We recommend using the availability checker in a sidebar so it is visible to customers as they browse products in your store.

Availability checker status on rental only products

Display availability checker status in loops/blocks on rental only products (if availability checker in use).

Availability checker status on rental or purchase products

Display availability checker status in loops/blocks on rental or purchase products (if availability checker in use). It is recommended this is disabled as the price/add to cart of the purchasable part of a rental or purchase product is shown on loops/blocks, if availability checker status is displayed a customer may confuse the price/add to cart as being for the rental.

Below is a screenshot of the availability checker being used to select dates and quantity, once these dates are set as the customer browses the store the products show an availability status (subject to the 2 settings above). If a rental is available if the user visits the product page these dates will automatically be populated in the rental date selection field ready to add to cart.

Misc ↑ Back to top

Return days display

Displays return days in customer facing areas such as the product rental form, cart, checkout and emails. Return days threshold is still used for availability but does not display. This is useful if you wish to instruct the customer to return a product within x days but need to set the return days higher. An example of this would be if you had a rental that needs to be returned within 3 days but allow an additional 3 days to service the product before it is available for rental again. You would set the return days threshold to 6 but instruct the customer to return it within 3 days. In this scenario if this setting was enabled it would instruct the user to return within 6 days and therefore would not allow for the service period.

Text ↑ Back to top

Configure various text references used on the frontend and within order line items in the dashboard. Below are the most commonly used but there are lots more, if you require control over all of the text and/or multi-language translations we recommend using a translation plugin. See field tool tips for optional filter usage.

Rental products ↑ Back to top

To use a product as a rental navigate to the WooCommerce products page within your WordPress dashboard and add a new product or edit an existing product.

Rental products can be used with simple, variable and grouped product types.

Note that grouped products are simply a collection of other products so you will not see a rental option for products of this type but you can select rental based products to be grouped with the product.

Rental option ↑ Back to top

Upon adding or editing a product you will see a rental tab within the product data section, click on this to reveal the rental product settings:

Rental product options ↑ Back to top

Once you have clicked the rental tab the rental settings will appear:

The settings are split into the following categories:

  • Rental
  • Pricing
  • Availability
  • Deposits
  • Calendar
  • Information
  • Advanced

Each option has a tool tip (question mark icon) and/or descriptive text to describe what each setting is for.

Note that some of these options are conditionally used and therefore maybe hidden depending on the combination of settings you have set.

Rental product

Enables rentals of this product. On change the selected option and product/variation stock options will be amended and saved. Click the more info link for further details on how this option relates to pricing and stock.

Pricing type

Define the type of pricing. The period pricing type allows you to define a number of days the price is for and the fixed pricing type uses the same price regardless of the number of days selected.

Pricing period (days)

Define the period of the price set in days (e.g. entering 7 would make the price set be for a 7 day rental). If empty uses default of 1 (which means price set is per day, if a customer selected 5 days the total rental price would be the price set multiplied by 5).

Pricing period multiples

Allow a customer to select multiples of this pricing period (e.g. if pricing period is 7 the customer can select a 7, 14, 21, etc day period). If the customer selects multiple pricing periods the price is multiplied by the amount of pricing periods.

Pricing period multiples maximum

Maximum number of multiples that can be selectable by customer (e.g. if pricing period multiples is enabled, pricing period is 7 and this option is 4 a customer can select a 7, 14, 21 or 28 day rental but no more). Set to 0 for unlimited.

Pricing tiers

Increase/decrease price by percentage by number of days selected.

For each pricing tier you add you can enter the amount of days greater than and a percentage increase (e.g. 10) or decrease (e.g. -10), this percentage is used to calculate the price in relation to the base rental price.

Price + Additional periods %

When enabled the price will be the period price + a percentage of the period price multiplied by the amount of periods selected (e.g. 7 day pricing period product is $100 with additional period % at 10% then if a customer selects a 14 day rental (2 x 7 day periods) the price will be $100 + $10 as the second period is 10% of $100).

Price + additional period %

Define additional period percentage used (e.g. enter 10 for a 10% additional period percentage).

Price display override

Override the rental price display with specific text entered. The rental price display suffix/prefix will be applied, this can be disabled in settings. This is simply the price displayed to the customer near the product title, it has no bearing on rental price calculations.

Total overrides

Overrides of the total based on the number of days rented. Enter in format of 1:5.00|2:10.00 (this example makes a 1 day rental 5.00 and a 2 day rental 10.00). This should be entered based on quantity of 1, if quantity greater than 1 the price entered will be multiplied by the quantity. Note when using total overrides the rental price display remains as calculated based off the non-overriden pricing, therefore it is recommended you also override the price display.

Minimum days

Minimum number of days that must be selectable by customer. If empty uses default of 1.

Maximum days

Maximum number of days that can be selectable by customer. If empty or 0 uses default of unlimited.

Start days threshold

Number of days from the current day before rental dates selectable by customer. If empty uses default of 3.

Return days threshold

Number of days after the rental dates for the customer to return rented products. If empty uses default of 3.

Disable rental dates

Disable rentals on specific dates. These will be used in addition to any disabled dates which may be set via rental settings.

Manually disabled rental dates will disable the exact dates selected from selection by the customer, if you require these to include dates based on your return days threshold these should be manually selected too.

Disable rental days

Disable rentals on specific days of the week.

Disable rental start/end days

Rental cannot occur if the dates selected start/end on these days, but can occur if dates selected go through these days.

Security deposit amount

Security deposits are taken upon order and may be refunded upon return of the product. Enter a monetary amount. Can be overridden on variations.

Security deposit calculation

Define how security deposit is calculated. Fixed is the same value regardless of quantity, the quantity option multiplies the security deposit amount by the quantity.

Security deposit tax status

Define whether the security deposit be taxable.

Security deposit tax class

Define the security deposit tax class.

Security deposit non-refundable

Define whether the security deposit is non-refundable.

Months

Number of months to show within the calendar before pagination. On mobile/tablet devices this option may be ignored to ensure the calender is legible. If greater than 1 the calendar may be cut off if there are any overriding CSS styles that hide overflow. If this occurs consider a CSS style override on the parent elements with hidden overflow.

Columns

Number of columns to show within the calendar before pagination. On mobile/tablet devices this option may be ignored to ensure the calender is legible. If greater than 1 the calendar may be cut off if there are any overriding CSS styles that hide overflow. If this occurs consider a CSS style override on the parent elements with hidden overflow.

Inline

Allows the customer to select dates immediately without first selecting the date selection field.

Rental information

Adds rental information to a tab on the product page. This will be used in addition to any rental information which may be set via rental settings.

Advanced

There are various advanced settings, these are mostly used to override tax/shipping on the rental part of “rental or purchase”products.

Pricing & stock ↑ Back to top

Once you have configured the rental product settings above you can define the rental price in the general or variations tab and stock within the inventory or variations tab.

Availability ↑ Back to top

Rental dates selectable by the customer are determined by the amount of rental stock in-conjunction with the existing booked rentals for the product and any dates manually disabled via the general/product settings. Note that this will also disable dates around the dates unavailable based on any return days threshold set.

Product columns ↑ Back to top

In the listing of products in the WooCommerce dashboard any rental products will show rental information such as price (or rental also available text for “rental or purchase” products) and stock.

Filter products ↑ Back to top

The listing of products in the WooCommerce dashboard can be filtered by rental products by selecting the rentals filter and applying the filter, this can be used in-conjunction with other filters.

Clone/import/export ↑ Back to top

Rental product options can be cloned from one rental product to another product or set of products. In addition rental products can be imported/exported. For further details see the tools section within the rentals dashboard.

Rentals dashboard ↑ Back to top

Accessing ↑ Back to top

The rentals dashboard is where you can get an overview of rental orders in a calendar, view rental inventory and access tools.

Within your WordPress dashboard go to WooCommerce > Rentals:

The count pip (in orange) is the total number of rental items scheduled from today’s date. Rental items which have been marked as returned or cancelled are not included in this total.

Buttons ↑ Back to top

Once in the rentals dashboard you can use the top buttons as a shortcut to other areas within the WordPress/WooCommerce dashboard to view all rental products and orders which contain rentals:

Tabs ↑ Back to top

The rentals dashboard is split up until different tabs:

Calendar ↑ Back to top

The calendar tab shows all past, current and scheduled rentals with information on the products included and the order they were placed. Rentals are shown in a number of colors depending on their status, use the color key at the top of the page for details on how each color relates to the rental:

There are different views allowing you to view the rentals calendar by month, week, day or as a list (click buttons near the top of the page).

Use the pagination arrows towards the bottom of each calendar view to move to the next or previous page.

Inventory ↑ Back to top

The inventory tab shows all published rental products and stock total, in and out levels. You can search, sort, print and export the inventory:

Tools ↑ Back to top

The tools tab has a number of tools to manage rental products such as cloning rental product options from one rental product to another rental product or set of products, import/export information and debugging tools:

Orders ↑ Back to top

Managing orders ↑ Back to top

You can manage rental orders like normal WooCommerce orders, simply select an order containing rentals via the WooCommerce orders section.

Each order that contains rentals will display as “includes rentals”:

Order status ↑ Back to top

Orders containing rentals should not be marked as completed until all rental orders have been returned.

Note that setting order status to completed will return all rentals within the order and cancelled will cancel all rentals within the order.

Line items ↑ Back to top

Upon editing an order with rental products you can see rental information on each order line item and you can mark individual line items as returned, reduce rental dates and cancel rentals using the buttons provided.

Line items marked as returned will appear green on the rentals dashboard calendar, rentals which haven’t been returned which are over the rental return threshold will appear red. Remember that if you mark the entire order complete this will mark all rentals within the order as returned.

Meta box ↑ Back to top

See the rentals meta box on the edit order page for further details on how to manage orders with rentals.

Manual rental orders ↑ Back to top

Rental orders can be added via the dashboard using the Add rental order button displayed within the orders section of WooCommerce.

Filter orders ↑ Back to top

The listing of orders in the WooCommerce dashboard can be filtered by orders including rentals by selecting the rentals filter and applying the filter, this can be used in-conjunction with other filters.

Store/email rental information ↑ Back to top

This extension shows rental based information to the customer throughout their journey around your store and within emails as highlighted below:

Product archives ↑ Back to top

Product archive pages shows rental pricing:

Product pages ↑ Back to top

Shows rental pricing and rental information defined in the product settings is displayed within the page and when the customer selects dates to rent the product they are shown a summary of the total rental cost, amount of days rented and the amount of days allowed to return the product:

Rental information defined on the product and/or via settings is also shown:

Cart ↑ Back to top

All the information above is included on each cart line item so the user can review the information before checking out:

Checkout ↑ Back to top

Each line item includes the information above for the customer to review before payment:

Account ↑ Back to top

Account order history shows rental information for each item within an order:

Emails ↑ Back to top

Emails sent to the customer such as order confirmation include rental information so the customer has a reference of the rental and understands allowances for returning the items in the order:

Functions ↑ Back to top

For custom development you can use the functions below:

FunctionReturn
wcrp_rental_products_availability_checker_data()Array of availability checker options when user has selected availability checker dates/qty
wcrp_rental_products_default_rental_options()Array of the default rental options
wcrp_rental_products_check_availability( $product_id, $rent_from, $rent_to, $quantity )String of availability status
wcrp_rental_products_is_rental_only( $product_id )true/false
wcrp_rental_products_is_rental_purchase( $product_id )true/false
wcrp_rental_products_order_has_rentals( $order_id )true/false
wcrp_rental_products_rental_date_format()String of the rental date format
wcrp_rental_products_rental_form_date_format()String of the rental form date format
wcrp_rental_products_rental_form_first_day()String of first day number (0-6, 0 is Sunday)

Filters ↑ Back to top

For custom development you can use the filters below:

FilterReturn
wcrp_rental_products_cart_item_price( $price, $addons_total )Cart item price
wcrp_rental_products_default_rental_options( $options )Array of default rental options
wcrp_rental_products_rental_information_title( $value )String from settings*
wcrp_rental_products_rental_price_display_prefix( $value )String from settings*
wcrp_rental_products_rental_price_display_suffix( $value )String from settings*
wcrp_rental_products_rental_price_html( $rental_price_html, $rental_price, $product )Rental price HTML markup
wcrp_rental_products_text_rental_cancelled( $value )String from settings*
wcrp_rental_products_text_rental_dates( $value )String from settings*
wcrp_rental_products_text_rental_returned( $value )String from settings*
wcrp_rental_products_text_rental_return_within( $value )String from settings*
wcrp_rental_products_text_rent_for( $value )String from settings*
wcrp_rental_products_text_rent_from( $value )String from settings*
wcrp_rental_products_text_rent_to( $value )String from settings*
wcrp_rental_products_text_select_dates( $value )String from settings*
wcrp_rental_products_text_availability_checker_applied( $value )String from settings*
wcrp_rental_products_text_check_availability( $value )String from settings*
wcrp_rental_products_text_disable_rental_start_end_days_notice( $value )String from settings*
wcrp_rental_products_text_non_refundable( $value )String from settings*
wcrp_rental_products_text_refundable( $value )String from settings*
wcrp_rental_products_text_rental_available( $value )String from settings*
wcrp_rental_products_text_rental_unavailable( $value )String from settings*
wcrp_rental_products_text_reset_dates( $value )String from settings*
wcrp_rental_products_text_security_deposit( $value )String from settings*
wcrp_rental_products_text_view_purchase_options( $value )String from settings*
wcrp_rental_products_text_view_rental_options( $value )String from settings*

*Note that these filters have a setting to input the returned value via the settings page. These filters are available to override the data provided via the setting but we only recommend these are used where you require further conditions applied on top of the existing functionality where the value is retrieved.

Cookies ↑ Back to top

This extension sets 3 cookies:

  • wcrp_rental_products_availability_checker_rent_from
  • wcrp_rental_products_availability_checker_rent_to
  • wcrp_rental_products_availability_checker_quantity

These cookies are set when the user selects preferred rental dates/quantity via the Availability Checker block/shortcode, they are removed after 30 days or when the user resets the availability checker.

WooCommerce Product Blocks ↑ Back to top

Rental products work in all WooCommerce Product Blocks with the exception of the “All Products Block”, this is because all the other blocks have a filter to allow extensions like ours to conditionally change elements of the product display in each block using a filter. Currently the “All Products Block” does not include this. Unfortunately this means if you have a rental only product displaying within this block a user can click add it to cart without selecting any dates.

Due to this we strongly recommend you do not use the “All Products Block” if you are using this extension.

As WooCommerce Product Blocks are fairly new there is lots of talk around how blocks can be extended in future, for the latest on this please see this GitHub issue. We expect extending blocks to be changed as blocks continue to be developed

Elementor Theme ↑ Back to top

If you are using the Elementor theme we recommend reading the following information:

Quantity, calendar and add to cart button position ↑ Back to top

If you are using the Elementor theme to design a product page you may notice that the rental calendar may not be positioned well, like this:

This occurs because Elementor uses a CSS rule of display: flex on the outer container of the add to cart elements. It does this because it is attempting to position the quantity field next to the add to cart button. With rental products it is also attempting to fit the rentals calendar horizontally and it doesn’t fit well.

To get around this you can override the display: flex rule on the outer container of the add to cart elements with display: block (you may need to add an !important rule) in your theme’s stylesheet or via the additional CSS section in your theme’s customizer.

Elementor does not include all of the standard WooCommerce actions/filters which WooCommerce templates normally include, our extension uses some of these actions/filters to modify the product page template. The rental/purchase toggle link is added using the woocommerce_single_product_summary action, to use this ensure you add this action into your product page template.

FAQs ↑ Back to top

I have translated the extension, can you include my translation in the extension’s code? ↑ Back to top

While the extension is translatable we currently do not include individual translation files within the extension, but we will be in a future update once we have an internal process for maintaining translation files going forward – therefore please feel free to send us any translation files you have and we’ll collate them all for future use. Including the language files out of the box is a priority for us.

Is it possible to use this extension for hourly/half day rentals? ↑ Back to top

This extension is for day based rentals (or multiples of e.g. 3 days, 7 days, 14 days, etc).

If you just require a customer to select a time when ordering a rental product you can use this extension in-conjunction with WooCommerce Product Add-Ons to have a customer request specific times when ordering a rental product – but the availability of the quantity required on the date(s) selected would be to the day and not to the date and time. Using this method with “rental or purchase” based rentals is not recommended as it would require custom development to remove the fields from the purchasable part of the product conditionally.

Is it possible to setup a rental product where the customer must select the amount of days before using the rental form calendar? ↑ Back to top

This can be achieved by creating these products separately (which allows you to specify all rental settings on each one) and then linking them together via a grouped product, e.g. 1 x grouped product (TV Rental) containing 3 products (TV Rental – 3 days, TV Rental – 5 Days, TV Rental – 7 Days). If you do not want to show the 3 inner products in categories/search you can use the catalog visibility option on each product to hide. You’ll want to ensure your grouped product remains visible.

I use the WooCommerce Stripe payment gateway and the mobile cart/checkout buttons have disappeared? ↑ Back to top

This extension uses various calculations and checks based off the standard WooCommerce add to cart/checkout functionality and therefore the additional mobile payment buttons included within the WooCommerce Stripe extension would not work correctly and therefore they are disabled leaving the standard cart/checkout functionality provided by WooCommerce intact.

Sometimes rental information isn’t added to orders or customers rented something which should not have been available? ↑ Back to top

It is likely you are using a payment gateway which uses a quick pay option (sometimes this is only shown for mobile users and may have other names like Request Payment, Google Pay, Apple Pay, etc), depending on the payment gateway it may completely bypass the standard cart/checkout process (and therefore rental information and availability checks are bypassed too). Usually the payment gateway settings will allow you to disable this.

On rental or purchase products the rental or purchase toggle is not displaying? ↑ Back to top

The rental or purchase toggle is added to the product page via the woocommerce_single_product_summary filter. This is a standard WooCommerce filter that lots of extensions use to extend the product page. If the toggle is not displaying it is highly likely your theme has removed the filter. You will need to contact your theme developer and request instructions/assistance in reinstating the filter for you.

WooCommerce - the most customizable eCommerce platform for building your online business.

  • 30 day money back guarantee
  • Support teams across the world
  • Safe & Secure online payment