Boat Rental Manager
Complete boat rental booking system for WordPress & WooCommerce
Welcome
Thank you for purchasing Boat Rental Manager. This plugin provides a complete boat rental booking solution built on top of WooCommerce — no expensive add-ons required.
No WC Bookings Required
Custom booking engine with its own database table. No paid add-ons needed.
Double-Booking Protection
Atomic SQL transactions with SELECT FOR UPDATE prevent concurrent conflicts.
Any Payment Gateway
Works with Stripe, PayPal, Viva Wallet, bank transfer — any WC gateway.
Revenue Reporting
Built-in dashboard with earnings overview, VAT breakdown, and date filters.
Translation Ready
Full i18n support with POT file included for any language.
HPOS Compatible
Fully compatible with WooCommerce High Performance Order Storage.
Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 6.4 | 6.7+ |
| WooCommerce | 9.0 | Latest |
| PHP | 8.1 | 8.2+ |
| MySQL | 5.7 | 8.0+ |
Installation
- Upload the
boat-rental-managerfolder to/wp-content/plugins/via FTP, or install via Plugins → Add New → Upload Plugin in WordPress admin. - Activate the plugin through the Plugins menu in WordPress.
- Make sure WooCommerce is installed and active.
- Go to Boat Rental Manager → Settings to configure your season dates, location, and slot limits.
- Create your boats as WooCommerce products (see Setting Up Boats below).
- Add
[boat_grid_2to11]to your search page and[boat_grid_results]to your results page. - Test a booking end-to-end before going live.
brc_bookings database table on activation. No manual SQL required.Quick Start
The fastest way to see the plugin working is to use the Demo Import:
- Go to Boat Rental Manager → Demo Import in the admin menu.
- Click Import Demo Data — this creates sample boats, pages, and settings.
- Visit the search page that was created to test the booking flow.
- Delete the demo data (or deactivate
demo-import.php) before going live on a production site.
Settings
Navigate to Boat Rental Manager → Settings to configure the plugin.
Global Booking Limit
| Setting | Description |
|---|---|
| Max Boats per Slot | Maximum boats that can depart at the same time. When reached, customers are shown the next available slot. |
| Buffer Before Sunset | Minutes before sunset that the last booking can start. Default: 120 (2 hours). |
| Show "Other Times" | Toggle whether alternative time slots are shown on search results cards. |
| Show Fuel Banner | Toggle the "Fuel Included" banner on boat cards. |
| Duration Badges | Custom labels shown next to each duration in the pricing table (e.g. "Most Common" for 4h). Leave empty to hide. |
| Slot Interval | Time interval between available slots: 15, 30, or 60 minutes. |
Season
| Setting | Description |
|---|---|
| Season Start / End | Main operating season. Outside these dates, bookings are not available. |
| Location (Lat/Lng) | Used for automatic sunset time calculation. |
Pricing Surcharges
| Setting | Description |
|---|---|
| Weekend Surcharge (%) | Percentage added to base price on Saturdays and Sundays. |
| High Season Surcharge (%) | Percentage added during defined high season dates. |
| High Season Dates | Start and end dates for the high season surcharge period. |
Pricing Table
Set the title and route descriptions for the pricing table shown on each boat product page. Descriptions appear below each duration option (e.g. "Kelifos Island & Nearby Beaches").
Slot Management
Define up to 3 seasonal periods (Very Low, Low, High) with custom allowed departure slots and return buffers. Dates outside these periods use the default 30-minute return buffer.
Setting Up Boats
Each boat is a standard WooCommerce Simple Product. After creating the product, fill in the Boat Rental Manager fields in the product edit screen.
Specs Fields (via ACF or Custom Fields)
| Meta Key | Description |
|---|---|
_brc_capacity | Total capacity (persons) |
_brc_max_weight | Maximum weight (kg) |
_brc_year | Build year |
_brc_engine | Engine description (e.g. "40HP Yamaha") |
_brc_length | Boat length in meters |
_brc_max_speed | Maximum speed (km/h) |
_brc_licence | Licence requirement (e.g. "No licence required") |
Pricing Fields
Set the rental price per duration in the Boat Rental Manager — Pricing section of the product edit screen. Leave a duration empty to hide it from the pricing table.
| Field | Description |
|---|---|
| 2h / 3h / 4h / 5h / 6h Price | Price in € for each duration |
| Extra Hour Price | Price per additional hour beyond the selected duration |
| Min / Max Hours | Range of durations the customer can select |
Pricing & Seasons
Boat Rental Manager supports three layers of dynamic pricing:
- Base price — set per boat per duration in the product edit screen.
- Weekend surcharge — flat percentage added on Saturdays and Sundays.
- High season surcharge — flat percentage added during defined high season dates.
Surcharges stack — a weekend during high season applies both percentages.
Deposit vs Full Payment
The plugin supports two payment modes selectable at checkout:
| Mode | Behaviour |
|---|---|
| Deposit | Customer pays ~1/3 of the total online. Remaining balance collected on site. |
| Full Payment | Customer pays the full amount online. |
Slot Management
Control which departure times are available based on the time of year.
| Period | Description |
|---|---|
| High Season | Peak period — earliest slots, shortest return buffer |
| Low Season | Shoulder period — mid-morning slots |
| Very Low Season | Off-peak — fewest slots available |
| Free (default) | Outside all defined periods — standard slots, 30 min buffer |
For each period you can define: date range, allowed first slots (comma-separated, e.g. 09:30,10:00,10:30), and return buffer in minutes.
Shortcodes
[boat_grid_2to11]
Search form with date, adults (2–11), and children selectors. Place on your search/home page.
[boat_grid_results]
Results grid showing available boats. Place on a dedicated results page. The search form automatically redirects here.
[boat_specs]
Displays the technical specifications table for a boat. Place inside the product description.
Search Form Parameters
| Parameter | Default | Description |
|---|---|---|
results_page | From Settings | Page ID of the results page |
style | default | Visual style: default or transparent |
[boat_grid_2to11 results_page="42" style="transparent"]
Bookings
Go to Boat Rental Manager → Bookings to view and manage all reservations.
Filters
Filter bookings by status, date, boat, or payment type using the filter bar at the top.
Booking Statuses
| Status | Description |
|---|---|
| confirmed | Payment received, booking active |
| paid | Marked as fully paid on site |
| pending | Awaiting payment confirmation |
| completed | Trip has taken place |
| cancelled | Cancelled by customer or admin |
Actions
From the bookings list you can: view order details, change booking status, and delete a booking.
Calendar
Go to Boat Rental Manager → Calendar for a monthly calendar view of all bookings. Navigate between months using the arrow buttons. Click any booking to view its order.
Revenue
Go to Boat Rental Manager → Revenue for earnings reporting.
Quick Date Ranges
Use the quick range buttons: Today, This Week, This Month, This Year, Last 3 Months — or set a custom date range.
Revenue Breakdown
The report shows net revenue (ex VAT), VAT amount, and total per booking, grouped by date. VAT rate is automatically read from your WooCommerce tax settings.
Capacity Rules
Each boat supports two booking modes for flexible capacity management.
Standard Mode
Simple check: adults + children × 0.5 ≤ max_total. Children count as half a person.
Custom Family Mode
Three separate rules applied simultaneously when children are present:
| Rule | Description |
|---|---|
| Max Adults (no children) | If children = 0, adults must be ≤ this value |
| Max Adults (with children) | If children > 0, adults must be ≤ this value |
| Max Children | Number of children must be ≤ this value |
| Max Total (weighted) | adults + children × 0.5 ≤ this value |
Example — A boat displayed as "5 persons" that allows up to 4 adults OR 4 adults + 2 children:
Display Capacity: 5
Booking Mode: custom_family
Max Adults (no children): 5
Max Adults (with children): 4
Max Children: 2
Max Total (weighted): 5 (4 + 2×0.5 = 5 ✓)
Email Notifications
The plugin automatically sends two emails when a booking is confirmed:
| Recipient | Content | |
|---|---|---|
| Booking Confirmed | Customer | Booking details (boat, date, time, passengers, duration) + order link |
| New Booking | Admin | Order ID, customer details, booking summary + admin bookings link |
Emails are sent via wp_mail() and respect any SMTP plugin you have configured (e.g. WP Mail SMTP).
Import Existing Bookings
Go to Boat Rental Manager → Import Bookings if you have existing WooCommerce orders that were placed before the plugin was activated and are not yet in the brc_bookings table.
- Open the Import Bookings page — the counter shows how many orders are pending import.
- Click Run Import and confirm.
- Review the results table: each order is marked as Imported, Already exists (skipped), or Error.
Demo Import
Go to Boat Rental Manager → Demo Import to quickly populate your site with sample boats, pages, and settings for testing purposes.
demo-import.php after testing. It is not needed on a live site.File Structure
assets/
flatpickr/ — date picker library
glightbox/ — gallery lightbox library
includes/
admin.php — admin panel, settings, revenue
admin-bookings.php — bookings list & calendar
bookings.php — booking engine, DB, capacity
frontend.php — product page, cart, checkout
search.php — search form, results grid, slots
languages/
boat-rental-manager.pot — translation template
boat-rental-manager.php — main plugin file
demo-import.php — demo data import tool
uninstall.php — cleanup on plugin deletion
readme.txt
Changelog
v1.0.0 — Initial Release
- Custom booking engine — no WC Bookings dependency
- Atomic double-booking prevention via SQL transactions
- Seasonal pricing with high season and surcharges
- Slot-based availability with flatpickr calendar UI
- Custom Family capacity mode for boats with mixed-group rules
- WooCommerce HPOS compatibility
- Email notifications on booking confirmation
- Revenue reporting dashboard with VAT breakdown
- Admin bookings list with filters
- Admin calendar — monthly visual view
- Import Existing Bookings migration tool
- Demo import for quick setup
- i18n / POT file included
- Bundled assets — no CDN dependencies
Support
If you need help, please use the Comments tab on the CodeCanyon item page or contact us via our profile page.
Before You Ask
- Check PHP error logs for any fatal errors
- Confirm the
brc_bookingstable exists in your database - Verify your boats have
_brc_pricingmeta with at least one price set - Test with a default WordPress theme to rule out theme conflicts
Thank you for purchasing Boat Rental Manager. We hope it serves your marina or boat rental business perfectly! ⚓