By Hour

The Rental by Hour type calculates rental cost based on the number of hours between the pickup time and the dropoff time. It supports a base hourly rate, volume discounts per number of hours, and seasonal special pricing.
How it differs from Rental by Day
Base price field
Regular price / Day
Regular price / Hour
Daily pricing plan
✓ Per-weekday prices
— Not available
GD duration unit
Day(s)
Hour(s)
ST price column
Price/Day (rt_price[])
Price/Hour (rt_price_hour[])
DST duration unit
Day(s)
Hour(s)
Booking conditions
Min/max days, preparation days
Min/max hours, preparation minutes, same-day only
Services applicable
/Day or /Order
/Hour or /Order
1: Quick Start
Add General fields
Read in overview
Shared Fields
The following fields are shared across multiple rental types.
Common Fields
The following fields are shared across all rental types.
Customize Fields in Product Editing
You can add/remove fields in product editing.
2: Choose Rental Type
Step 1: Add new product
Step 2: Setup
Product data: Rental
Rental Type: Hour

3: Pricing Settings
Rental by Hour has three pricing layers. They stack in priority order — higher layers override lower ones when their conditions are met.
3.1: Regular price / Hour
The base price charged per hour of rental. This is the fallback price used whenever no Global Discount or Special Time rule applies.
Regular price / Hour regul_price_hour
Price per hour (WooCommerce price field). Displayed on the product page as $X / Hour.

3.2: Global discount (GD)
Set volume discounts based on the number of hours booked. When a booking's duration falls within a GD row's range, the Price/Hour in that row replaces the regular price.
Price/Hour global_discount_price[]
The discounted price per hour applied when the duration matches the From–To range.
From (number) global_discount_duration_val_min[]
Minimum number of hours (inclusive) for this discount to apply.
To (number) global_discount_duration_val_max[]
Maximum number of hours (inclusive). Use a large number (e.g. 9999) for open-ended upper limits.
Duration global_discount_duration_type[]
Fixed to Hour(s) for the Hour rental type. Rows are matched against the booking's total hours.

3.3: Special time (ST)
Define date/time windows with a different hourly rate — useful for peak seasons, holidays, or off-peak promotions. Each ST row can optionally contain its own volume discount table (DST).
ST columns:
Price/Hour rt_price_hour[]
The hourly rate applied when the booking falls inside this ST window. Replaces the regular price and GD.
Start Date rt_startdate[]
Start of the special pricing window — datetime picker (date + time).
End Date rt_enddate[]
End of the special pricing window — datetime picker (date + time).
Discount in special time (DST)
Optional nested volume discount table active only within this ST window. See below.
DST sub-table columns (per ST row):
Price/Hour rt_discount[i][price][]
Discounted price per hour within this ST window for the given hour range.
From (number) rt_discount[i][min][]
Minimum hours for this DST row to activate.
To (number) rt_discount[i][max][]
Maximum hours for this DST row to activate.
Duration rt_discount[i][duration_type][]
Fixed to Hour(s).

3.4: 🏆Pricing Priority
When multiple pricing layers apply to a booking, the plugin uses the highest-priority rule that matches and ignores lower ones.
> > >
Special Time (ST)
Booking window overlaps an ST date/time range
Replaces regular price with ST Price/Hour. GD is skipped.
DST (within ST)
Booking is in an ST window AND total hours match a DST row
Replaces ST price with DST Price/Hour.
Global Discount (GD)
Total booking hours fall within a GD row's From–To range (and no ST applies)
Replaces regular price with GD Price/Hour.
Regular price / Hour
No ST or GD matches
Base hourly rate applies.
4: Shared Fields
The following fields are shared across multiple rental types and are documented on the Shared Fields page to avoid repetition. Click any card to go directly to that section.
5: Common Fields
These fields are shared across all rental types and documented on a dedicated reference page. Click any card to go directly to that section.
6: Customize Fields in Product Editing
When you create a product and want to remove unnecessary fields, you can follow these steps in Customize - Rental Type
Last updated

















