| 开发者 | inspirelabs |
|---|---|
| 更新时间 | 2026年9月7日 18:27 |
| 捐献地址: | 去捐款 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv3 or later |
| 版权网址: | 版权信息 |
admin.php?page=bookinghive&tab=general), Modules (&tab=modules), Support (&tab=support) and Partners and services (&tab=partners_and_services). The Reservations dashboard has its own entry in the same menu.
Every booking product gains a Price List tab in WooCommerce's Product data box, next to Linked Products and Advanced. It holds the quantity mode and the changeover day for this product, a year switcher, the table of price rows — date range, rate, period rule, Edit and Delete — and an Add row button.
The Modules tab lists all three modules. Core is marked Always enabled and has no toggle: it is what registers the Booking product type, the price list, the calendar and the reservation logic, so the plugin has no purpose without it. Spectator Views and Stay Notifications can be switched off freely — their features leave the storefront and the admin, while their settings stay in the database and come back unchanged when the module is enabled again.
Changeover days, spelled out
By default the day a stay ends stays open for the next guest's arrival, so a turnover costs you nothing — bear in mind the departure day is still billed to the departing guest, so that day is effectively sold twice. Rentals that need preparing between customers — a boat, a camper, a car — can switch Changeover day to Blocked for a service day, plugin-wide under BookingHive → Global settings or per product in its Price List tab. Either way a day in the middle of a stay is never offered, a departure day already claimed as someone else's arrival closes as well, and a one-day booking blocks its whole day, being an arrival and a departure at once. The setting takes effect immediately, including for reservations already placed — so switching to Blocked for a service day can turn away, at checkout, a customer who already has a changeover day sitting in their cart.
What BookingHive does not do
wp-cron.php once a day.A new product type called Booking. Such a product gains a Price List tab in the admin, where you define date ranges with their nightly rates and booking rules, and a booking calendar on the storefront, where the customer picks a date range and sees the price recalculated instantly. Everything else — cart, checkout, orders, e-mails, reports — stays standard WooCommerce.
From the price list, on the server. Each selected day is charged at the rate of the price list row covering it, and the total is the sum of those days, the last selected day included. A range from 18 to 22 August at a rate of 512 therefore costs 2,560. The amount that arrives from the browser is never trusted: the plugin recalculates it from the stored price list before the item enters the cart.
Yes, and that is the point of the price list. Every row covers a date range and holds its own rate, so a single product can price off-season, shoulder season and peak weeks differently. Rows are kept per year, so next year's rates can be prepared without touching the current season.
Three. Any range lets the customer book any interval inside the period. Week allows whole weeks only, starting on the weekday you choose — the usual pattern for boat charters. Whole range allows only the entire period, for a fixed event or a full-season lease. The rule belongs to the price list row, so one product can use different rules in different seasons.
Yes. It reads existing reservations and blocks dates held by orders in the processing, completed, pending and on-hold statuses. Cancelled, refunded and failed orders release their dates. A day that is only a check-out for one booking and a check-in for another stays available, so back-to-back stays are possible. Where a price period declares a capacity the calendar counts seats instead of blocking outright: the day closes only when they are all taken.
No. Availability is validated on the server when the product is added to the cart and again on the cart and checkout pages, and the reservation write itself is serialised: two checkouts completing at the same instant are processed one after the other, and each re-checks the dates immediately before saving. The first one takes the dates and the second is refused with a clear message, so a double booking cannot go through.
It depends on the price period. A period with a Capacity is sold per seat, so the count multiplies the price; a period without one is sold per stay, and the count is recorded for your information only. Declaring a capacity is the single switch for both — a shop that never sets one keeps the pricing it has always had. The Quantity mode setting decides what the count means rather than whether it counts: Guests keeps the stay as one cart line carrying the number of people, Units makes the count the WooCommerce cart quantity, which suits renting several identical items. It is set globally and can be overridden on any product.
Yes. Put a Capacity on the price-list row — four pitches, six kayaks, ten seats — and the plugin counts how many are taken on each day instead of treating the day as free or blocked. A day is offered until its seats run out, the quantity selector on the product page cannot be raised above the fewest free seats in the selected range, and the same check runs again on the server when the product is added to the cart and once more, under a lock, as the order is saved. A customer asking for more seats than remain is told how many are left. Capacity lives on the price-list row rather than on the product, so high season can offer a different number of places than low season. An empty field means one booking a day, which is how every price list written before this feature behaves.
On the Reservations screen the plugin adds to the admin menu. It lists stays rather than orders, grouped by month, with tiles for the totals and revenue, filters by guest, order number, product, status and date range, and a details modal holding the guest's contact data, the price of every night, the reminders already sent and a control to change the order status.
Yes, if the Stay Notifications module is enabled. Every booking confirmation includes a cancellation link signed for that reservation, and a cutoff setting — 24 hours before arrival by default — decides how late it still works. A confirmation e-mail is sent once the cancellation goes through, and the released dates return to the calendar.
The interface is in English and ships with a Polish translation. Other languages come from the WordPress.org translation platform at translate.wordpress.org, where anyone can contribute them, and WordPress installs them on its own — nothing needs to be copied into the plugin folder. Multilingual sites are supported through Polylang and WPML.
No. No reservation or diagnostic data leaves the shop as part of normal operation: there is no call home to iLabs and no third-party service involved. Reminder and cancellation e-mails are sent by the shop's own WooCommerce mail system, and the plugin does not synchronise with channel managers or external booking platforms.
Spectator Views and Stay Notifications, yes — under BookingHive → Modules, at any time. Their features leave the storefront and the admin while their settings stay in the database, so switching a module back on restores its previous configuration unchanged. Core cannot be turned off: it provides the Booking product type, the price list, the calendar and the reservation saving, so the plugin would do nothing without it.
Because the cutoff passed. The link is signed for one reservation and works only until the Cancellation cutoff (hours) setting is reached — 24 hours before arrival by default. After that it refuses the cancellation on purpose; that is the setting doing its job, not a broken link.
2.0.0 is a rewrite and it does not migrate 1.0.x data: price lists move from the booking_price_list_<year> product meta to bookinghive_price_list_<year>, and reservations from the {prefix}inspirelabs_bookings table to {prefix}bookinghive_bookings. Nothing is deleted, but 2.0.0 does not read the old names — so booking products come up with an empty price list, and dates already sold stop blocking the calendar until the reservations are re-created. Update on a copy of the shop first and write to kontakt@ilabs.dev; with so few 1.0.x installs left we will help move the data across by hand.
Write to kontakt@ilabs.dev, or visit https://bookinghive.ilabs.dev, where the user manual, the FAQ and technical support live. The same contact is repeated inside the plugin, under BookingHive → Support.
bookinghive_powered_by_html and bookinghive_powered_by_text filters restyle or remove it.bookinghive_show_partners_tab and bookinghive_show_sitecare_banner filters bring either one back.[ilabs_ibooking_form] shortcode — instead of on every page of the shop. A page builder that keeps its content out of the post body can force them back with the bookinghive_load_booking_form_assets filter.opcache.use_cwd=0, the plugin could pick up another site's bootstrap file, and every front-end request then died with a missing-class fatal error.