=== Sales Igniter Rentals & Bookings Lite ===
Contributors: salesigniter
Tags: woocommerce rental, rental booking, booking calendar, equipment rental, rental
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.0.18
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Rent products out through your WooCommerce store: an availability calendar, quantity-based inventory, daily and hourly rates and a bookings admin.

== Description ==

Rent anything out from the WooCommerce store you already have. Mark a product as rentable, set a daily or hourly rate, and customers pick their dates (or dates and times) in a guided popup calendar on the product page. The plugin checks the dates against your stock, prices the hire, and books it the moment the order is placed.

https://www.youtube.com/watch?v=K40dGm2SGNk

Everything in this plugin works with no time limit and no licence key. It is used for equipment and tool hire, camera and AV rental, bike hire, party and event rental, boat and kayak rental, costume hire, camping gear and medical equipment. You keep your theme, payment gateways, shipping, tax and customer accounts, and rentals sit in the same orders as anything else you sell.

= What you get =

**The booking calendar**

* **Popup Range Picker** on the product page: pick-up date, pick-up time, return date, return time, one step at a time, with a progress row so customers always know what to pick next
* **Date rentals and date-and-time rentals**, with time slots grouped by morning, afternoon and evening
* **Stays by the night** for holiday lets, rooms, cabins and campsites: customers pick a check-in and a check-out day, the check-out day stays free for the next guest, and prices, turnover and emails count nights
* **Guests and party size**: a cottage that sleeps 4, rooms for 2 (5 guests need 3 rooms) or seats on a tour where each guest takes a place; ask for a single count or for adults, children, seniors, students, up to three types of your own ("Youth 13-17"), infants and pets, with age notes, limits per product and infants on a lap or in a free seat
* **Hours already booked**, and the turnaround after them, are greyed out in the time grid
* **The rental total appears** as soon as the last step is done, before the customer reaches the cart
* **Calendar Styler**: four looks (Airy, Card, Bold, Classic), your own accent colour, corner radius, slot interval, editable labels, price per day and units left inside each day
* A **global availability calendar shortcode** for category pages and the homepage
* **Follows the site language** and start of week, right-to-left included

**Real inventory**

* **Quantity-based inventory**: a product with stock 5 can be hired five times on the same dates, and the sixth customer sees it sold out
* **Bookings are the source of truth.** Availability is worked out from the bookings table on every request, so two customers cannot both take the last unit
* **Turnover time** before and after every hire, in minutes, hours or days, so a unit that comes back Monday is not offered for Monday morning
* **Store hours, closed days and holidays** with a reason customers can read on the blocked day
* **A hire may run through a closed day**, it just cannot start or end on one
* **Start-date padding, minimum and maximum hire length**, and how far ahead customers may book
* **Product pages served from a page cache** (WP Rocket, LiteSpeed, Cloudflare and friends) refresh their availability in the background, so a cached page cannot offer a day that sold out an hour ago

**Pricing**

* **Fixed, daily and hourly rates**
* **Modern Pricing layout**: a pricing card under the title with a From price and the rate table
* **Prices flow through the cart, checkout, order and emails** as normal WooCommerce line items

**Running the rentals**

* **Rentals menu in wp-admin** with a Bookings list (upcoming, in progress, past) and a Bookings Calendar with day counts of what is going out and coming back
* **Inventory Report**: availability per product per day for the week ahead, with closed-day shading and totals
* **Edit rental dates on the admin order screen** with two calendars that grey out days other orders have sold out, re-check availability and re-price the line
* **Manual bookings** for phone and walk-in customers
* **Pickup and return reminder emails** on a schedule you set, in each customer's language
* **CSV and ICS calendar export**
* **Rental dates on every order**, in the customer's account and in the order emails

* **Theme Import / Export**: import a ready-made rental theme (products, pages, calendar colours) or export your own shop as one

= Separate paid plugins =

Sales Igniter also sells separate add-on plugins for rental businesses that need more, sold and installed on their own; the Upgrade page under Rentals compares them. Everything described above is in this free plugin.

= Who uses it =

* Equipment and tool hire
* Camera, lens and AV rental
* Bikes, e-bikes and scooters
* Party, event and furniture rental
* Boats, kayaks and paddleboards
* Costumes, dresses and formal wear
* Camping and outdoor gear
* Medical and mobility equipment
* Construction and access equipment
* Tours, classes and experiences

= Documentation, demo and support =

* [Sales Igniter Rentals & Bookings Lite full details](https://rentalbookingsoftware.com/free-woocommerce-rental-booking-plugin/)
* [Documentation and setup guides](https://rentalbookingsoftware.com/doc/woocommerce-wordpress-bookings-tours/)
* [Screencast training videos](https://rentalbookingsoftware.com/screencast-training-videos-learn-how-to-use-sales-igniter-rental-software/)
* [Try the live demo store](https://rentalbookingsoftware.com/free-live-demo-rental-software-system/)
* [Full feature list](https://rentalbookingsoftware.com/rental-features/)
* [Changelog](https://rentalbookingsoftware.com/docs/changelog/)
* [Feature requests and roadmap](https://rentalbookingsoftware.com/woocommerce-rental-feature-requests/)
* [Pricing for the Regular and Pro editions](https://rentalbookingsoftware.com/woocommerce-bookings/)

Support for Lite is on the WordPress.org forum.

= Languages =

The plugin is fully translatable, the calendar's own texts and the reminder emails included, and lays the admin and the booking calendar out right to left for right-to-left languages. Translations come from [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/sales-igniter-rentals-bookings-lite/). Translation files made for the standalone Sales Igniter Bookings & Tours plugin (text domain sibooking) keep working.

== External services ==

= Google Maps: the "Map to the Store" link in reminder emails =

The pick-up and return reminder emails can link your store address to Google Maps. The default email wording does this with the {map_link} merge tag, which the plugin fills with a Google Maps search address (https://www.google.com/maps/search/) built from the store address under WooCommerce > Settings > General: street, city, state, postcode and country.

* What is sent, and when: only your store address, and only if the customer clicks the link in the email.
* Service provider: Google LLC. [Google Terms of Service](https://policies.google.com/terms), [Google Maps Additional Terms of Service](https://maps.google.com/help/terms_maps/), [Google Privacy Policy](https://policies.google.com/privacy).

= Sales Igniter mailing list: the sign-up form on the Upgrade page =

Rentals > Upgrade (also the last tab of Rentals > Settings) has an optional form for joining the Sales Igniter mailing list, which sends how-to guides for this plugin and offers on the paid editions.

* What is sent, and when: the email address typed into the form, to rentalbookingsoftware.com (Sales Igniter), only when an administrator presses "Send me the templates". The list is managed with Brevo, and every email has an unsubscribe link.
* Sales Igniter: [Terms and conditions](https://rentalbookingsoftware.com/terms-conditions/), [Privacy policy](https://rentalbookingsoftware.com/privacy-policy/). Brevo: [Terms of use](https://www.brevo.com/legal/termsofuse/), [Privacy policy](https://www.brevo.com/legal/privacypolicy/).

== Installation ==

1. Install and activate WooCommerce.
2. Install and activate the free [Secure Custom Fields](https://wordpress.org/plugins/secure-custom-fields/) plugin. WordPress activates the rentals plugin only once WooCommerce and Secure Custom Fields are active. If Secure Custom Fields is switched off or removed later, the rentals plugin pauses and shows a notice with a one-click link to activate or install it again.
3. Install and activate Sales Igniter Rentals & Bookings Lite.
4. Edit a product, open the Rentals & Bookings tab, switch on Enable Booking, choose Date or Date and Time, and enter a daily or hourly price.
5. Set store hours, closed days and buffers under Rentals > Settings, and pick the calendar look under the Calendar Styler tab.

== Frequently Asked Questions ==

= Can I rent products with WooCommerce? =

Yes. WooCommerce sells products outright; this plugin adds a rental option to any product. Switch on Enable Booking on the product, set a daily or hourly rate, and the product page shows a rental date picker instead of a plain Add to cart button. The rental goes through the normal WooCommerce cart, checkout, payment and order emails.

= Is this a WooCommerce booking plugin or a rental plugin? =

Both, because a rental is a booking of a physical item for a date range. It is built for rental businesses first: quantity-based inventory, turnaround buffers, closed days and return reminders. Tours, classes and appointments by date or by date and time work too.

= Do I need WooCommerce? =

Yes. The plugin is a WooCommerce extension, so it needs WooCommerce installed and active. That is deliberate: your payment gateways, taxes, shipping, coupons and customer accounts keep working, and rentals sit in the same orders as anything else you sell.

= Can several customers rent the same product on the same dates? =

Yes, up to the stock quantity. A product with stock 5 can be rented five times over the same dates, and the sixth customer sees it sold out for those days. Availability is worked out from the bookings table on every request, so two customers cannot both take the last unit.

= Why does the plugin need Secure Custom Fields? =

The product fields and the settings screens are built on the field framework that Secure Custom Fields provides, so the plugin does not ship a copy of its own. Install the free Secure Custom Fields plugin once and the rentals plugin picks it up.

= Do I keep my data if I add one of the paid plugins later? =

Yes. They work with the same products, settings and bookings, so nothing is migrated.

= Does it work with my theme? =

The calendar is rendered through WooCommerce's own product page hooks and styled by the Calendar Styler, so it fits any theme that uses the standard WooCommerce product template, block themes included. The accent colour and corner radius follow your choices.

= Can a rental start on a closed day? =

No, and it cannot end on one either, but it can run through one. A weekend closure blocks Saturday pick-ups and returns while a Friday-to-Monday hire still works.

= Does it support hourly rentals? =

Yes. Set the product to Date and Time and enter an hourly price. Customers pick a start and end time from the slot grid, and hours inside an existing booking or its turnaround are greyed out.

= Where do I report a bug or ask for a feature? =

Bugs go to the WordPress.org support forum. Feature requests go to the [feature requests and roadmap page](https://rentalbookingsoftware.com/woocommerce-rental-feature-requests/), where you can vote on what others have asked for.

== Screenshots ==

1. The Popup Range Picker walks the customer through pick-up date, pick-up time, return date and return time, with booked hours greyed out and the hire total shown as soon as the last step is done.
2. The pricing card on the product page: a From price, the rate table and the per-day equivalent.
3. Quantity-based inventory: five units means five hires on the same dates, with turnover buffers and closed days applied per unit.
4. The Inventory Report shows availability per product per day for the week ahead, with closed-day shading and a totals row.
5. The Bookings list and Bookings Calendar in the Rentals admin menu, with day counts of what goes out and comes back.
6. Store rules: hours, closed days with a reason, buffers before and after each hire, minimum and maximum length, and how far ahead customers may book.
7. Works with Composite Products, Product Bundles, Dokan, Make an Offer, the Store API, HPOS, WPML and Polylang.
8. Time slots that know what is already out: booked hours and the turnaround after them are greyed out, and buffers keep a unit off the calendar until it is really back.
9. Closed days customers can understand: holidays and closures with a reason, weekly or yearly repeats, start-only or end-only rules, and a hire that may run through them.
10. Calendar Styler: four looks (Airy, Card, Bold, Classic), your accent colour and corner radius, the availability badge colours and low-stock threshold, slot interval, editable labels, price per day and units left in each day.
11. Change rental dates on the order itself: two calendars on the WooCommerce order screen, an availability re-check, an optional re-price and a note on the order.
12. Pickup and return reminder emails on the schedule you set, sent as normal WooCommerce emails.
13. CSV and ICS export for spreadsheets and calendar apps, and the global availability calendar shortcode for any page.
14. Cached product pages refresh their availability after the page loads, so a page stored hours ago cannot sell a day that is gone.
15. Manual bookings for phone and walk-in customers, and rental dates that travel with the order into the cart, My Account, the emails and the admin order.
16. Built for the way rental businesses work: equipment and tool hire, camera and AV, bikes, party and event, boats, costumes, camping, medical, construction, tours and classes.

== Changelog ==

= 1.0.18 =
* New admin menu: a top bar on every Rentals page (Day to day, Reports, Setup) with the open page's tabs under it, a shorter WordPress menu, Ctrl+K to jump to any Rentals page or tab, no Help or Screen Options on the Rentals pages, and the Calendar's ICS feed in a dialog. New guest types: Seniors, Students and up to three types of your own (Rentals > Settings > Guests), on the product page, in the cart, the order and the price breakdown. No WooPay button on rental product pages, and no express pay buttons on any product page while the cart holds a rental. Extension points for add-ons whose rentals travel to the customer and back (the stock check, add to cart, the date picker and the reminders count the days away). An extension point for kits of other product types: a plugin's own bundle products get the kit calendar, the order screen's date editor and Swap item, as composites and bundles do; and one for order lines that are not lent out (a seat on a tour has no rental status and no Swap item). Pricing engine 1.9.0, no price changes. Fixes: a party is charged exactly what its guests cost (two adults at $45 and a child at $25 are $115.00, not 3 × $38.33 = $114.99), and a price for the whole party is charged once, not once per guest; dates searched without times price the days the search showed, and a clock change adds no day to a rental; "From" prices of products sold by blocks of hours or per person; the booking fee shown above the product page total; price lines read "4 hours × $29.00"; a return day reads Fully booked, not Preparation day, and a closed day keeps its reason; the guests dialog and a closed day's reason stay readable on every style and column; searched dates that do not fit a product are not half applied; stay check-in and check-out times in the store's time format; the headline price choice "From the rates" shows the product's own headline; the Calendar Styler saves only what was changed; Theme Import / Export cards show what is imported; the product box summary follows your edits; Swap item searches names and SKUs; items added on the order screen keep their price (the save waits for the add); long notices wrap on a phone. Calls for add-ons: a product's bookings in a window, moving an order line's dates as the order screen does, and when a unit back early is free again; the availability check sees what a Store API add to cart chose for the line. [Full changelog](https://rentalbookingsoftware.com/docs/lite-changelog/)

== Upgrade Notice ==

= 1.0.15 =
New 'Booked by' setting: choose whether a rental's return day is booked or free. Updating from 1.0.12 or older: unified pricing changes some rental prices (Settings > Advanced has a legacy pricing switch).
