Boat Rental Manager

Complete boat rental booking system for WordPress & WooCommerce

Version1.0.0
RequiresWP 6.4+ / WC 9.0+
PHP8.1+
LicenseGPL v2

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

RequirementMinimumRecommended
WordPress6.46.7+
WooCommerce9.0Latest
PHP8.18.2+
MySQL5.78.0+
⚠️
Important: Do NOT activate WooCommerce Bookings alongside this plugin. Boat Rental Manager has its own booking engine and they will conflict.

Installation

  1. Upload the boat-rental-manager folder to /wp-content/plugins/ via FTP, or install via Plugins → Add New → Upload Plugin in WordPress admin.
  2. Activate the plugin through the Plugins menu in WordPress.
  3. Make sure WooCommerce is installed and active.
  4. Go to Boat Rental Manager → Settings to configure your season dates, location, and slot limits.
  5. Create your boats as WooCommerce products (see Setting Up Boats below).
  6. Add [boat_grid_2to11] to your search page and [boat_grid_results] to your results page.
  7. Test a booking end-to-end before going live.
The plugin automatically creates the 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:

  1. Go to Boat Rental Manager → Demo Import in the admin menu.
  2. Click Import Demo Data — this creates sample boats, pages, and settings.
  3. Visit the search page that was created to test the booking flow.
  4. 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

SettingDescription
Max Boats per SlotMaximum boats that can depart at the same time. When reached, customers are shown the next available slot.
Buffer Before SunsetMinutes 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 BannerToggle the "Fuel Included" banner on boat cards.
Duration BadgesCustom labels shown next to each duration in the pricing table (e.g. "Most Common" for 4h). Leave empty to hide.
Slot IntervalTime interval between available slots: 15, 30, or 60 minutes.

Season

SettingDescription
Season Start / EndMain operating season. Outside these dates, bookings are not available.
Location (Lat/Lng)Used for automatic sunset time calculation.

Pricing Surcharges

SettingDescription
Weekend Surcharge (%)Percentage added to base price on Saturdays and Sundays.
High Season Surcharge (%)Percentage added during defined high season dates.
High Season DatesStart 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 KeyDescription
_brc_capacityTotal capacity (persons)
_brc_max_weightMaximum weight (kg)
_brc_yearBuild year
_brc_engineEngine description (e.g. "40HP Yamaha")
_brc_lengthBoat length in meters
_brc_max_speedMaximum speed (km/h)
_brc_licenceLicence 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.

FieldDescription
2h / 3h / 4h / 5h / 6h PricePrice in € for each duration
Extra Hour PricePrice per additional hour beyond the selected duration
Min / Max HoursRange of durations the customer can select

Pricing & Seasons

Boat Rental Manager supports three layers of dynamic pricing:

  1. Base price — set per boat per duration in the product edit screen.
  2. Weekend surcharge — flat percentage added on Saturdays and Sundays.
  3. 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:

ModeBehaviour
DepositCustomer pays ~1/3 of the total online. Remaining balance collected on site.
Full PaymentCustomer pays the full amount online.

Slot Management

Control which departure times are available based on the time of year.

PeriodDescription
High SeasonPeak period — earliest slots, shortest return buffer
Low SeasonShoulder period — mid-morning slots
Very Low SeasonOff-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

ParameterDefaultDescription
results_pageFrom SettingsPage ID of the results page
styledefaultVisual 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

StatusDescription
confirmedPayment received, booking active
paidMarked as fully paid on site
pendingAwaiting payment confirmation
completedTrip has taken place
cancelledCancelled 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.

ℹ️
The calendar shows confirmed, paid, and pending bookings. Cancelled and completed bookings are hidden.

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:

RuleDescription
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 ChildrenNumber 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:

EmailRecipientContent
Booking ConfirmedCustomerBooking details (boat, date, time, passengers, duration) + order link
New BookingAdminOrder 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.

  1. Open the Import Bookings page — the counter shows how many orders are pending import.
  2. Click Run Import and confirm.
  3. Review the results table: each order is marked as Imported, Already exists (skipped), or Error.
It is safe to run multiple times — already-imported bookings are detected and skipped automatically.

Demo Import

Go to Boat Rental Manager → Demo Import to quickly populate your site with sample boats, pages, and settings for testing purposes.

🗑️
Production sites: Delete or deactivate demo-import.php after testing. It is not needed on a live site.

File Structure

boat-rental-manager/
  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 submitting a support request, please check that WooCommerce is active and up to date, and that WooCommerce Bookings is not installed.

Before You Ask

  • Check PHP error logs for any fatal errors
  • Confirm the brc_bookings table exists in your database
  • Verify your boats have _brc_pricing meta 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! ⚓