https://www.gpldownloads.com/downloads/woocommerce-bookings/changelog/
Latest Updates
Back to WooCommerce Bookings

WooCommerce Bookings changelog

Release notes for every version we have on record, newest first.

Latest 3.13.0 · 29 Oct 2026 40 versions Since Mar 2024

2026 20 versions

3.13.0 Latest 29 Oct 2026 1 new11 improved31 fixed
New
  • Add a filter for parent order statuses that exclude booking reminders.
Improved
  • Ordered bookings that start and end at the same time by product menu order, then name, on the admin calendar.
  • Added a person-limit warning when manually editing a booking.
  • Removed outdated copies of WooCommerce core data store classes that were never used.
  • Fixed PHPStan level 7 findings that needed a product decision.
  • Raised the PHPStan analysis level to 8.
  • Corrected docblock types reported by PHPStan level 9.
  • Corrected docblock types reported by PHPStan level 10.
  • Checked integrations in PHPStan against generated stubs from woocommerce/php-stubs.
  • Resolved PHPStan baseline entries without changing behavior.
  • Kept the PHPStan integration stubs up to date without manual changes.
  • Updated QIT CLI to 1.3.3.
Fixed
  • Fixed the booking calendar not enforcing the cutoff on pages served from a full-page cache, or when an hours cutoff ends in the next month.
  • Prevented the Bookings list, calendar, and Add Booking pages from running out of memory on stores with many bookable products.
  • Prevented overlapping bookings from covering each other in the admin Day calendar.
  • Honor the site's time format when editing booking times.
  • Fixed booked start times that could remain available on booking forms when requests updated the slots cache at the same time.
  • Fixed calendar event routing for booking and availability subclasses.
  • Fixed a fatal error in create_wc_booking() when given a deleted or non-bookable product; it now returns false.
  • Fixed a fatal error when reconnecting a Google Calendar account that had already granted access.
  • Fixed a fatal error when a request to the resources REST API included availability rules, and corrected their schema.
  • Reported a failed Google Calendar connection, instead of a successful one, when Google returned no refresh token and none was stored.
  • Fixed a fatal error when a booking whose order was deleted is restored from the trash by a scheduled task or WP-CLI.
  • Fixed the activation welcome note not reaching the WooCommerce inbox.
  • Showed how many places are left instead of "This block cannot be booked" when a group is too large for every automatically assigned resource.
  • Fixed importing Product Add-Ons unchecking the "Multiply cost by person count" and "Multiply cost by block count" options.
  • Added an awaiting-payment note to confirmed bookings whose linked orders still need payment.
  • Included every required person type and the overall minimum person count in bookable product starting prices.
  • Fixed booking costs not updating after order item edits, and manually created bookings storing a tax-exclusive cost.
  • Showed bookings in progress under Today on the My Account bookings page.
  • Retained valid booking dates and refreshed availability and pricing when customers switch resources.
  • Fixed booking confirmation emails using the administrator's language instead of the store language.
  • Fix 403 errors in the booking form on cached product pages with expired nonces.
  • Fixed admin calendar view links carrying another view's date and opening the wrong day or month.
  • Made the admin Day calendar heading follow the site's date format.
  • Fixed multiply and divide pricing rules not applying to resource costs. Booking totals change for products that combine them.
  • Allow day bookings that end the day before a fully booked date when rules are checked against the starting block only.
  • Make booking product templates keyboard accessible.
  • Fixed the end date not being shown on the product page, cart and checkout for hourly bookings that end on a different day.
  • Availability slots now restart when a resource reopens, without an extra product buffer; existing bookings on the previous slot times may block adjacent slots.
  • Require an explicit override before booking date edits can bypass availability rules.
  • Fixed multi-day bookings not appearing as one connected booking in the month view of the admin calendar.
  • Fixed calendars showing dates without a bookable start after converting times to the visitor's timezone.
3.12.1 21 Oct 2026 11 improved22 fixed
Improved
  • Added browser coverage for block booking form availability requests and independent forms.
  • Updated the release deployment to WooCommerce.com.
  • Raised the PHPStan analysis level to 3.
  • Fixed PHPStan level 3 findings that needed small code changes.
  • Raised the PHPStan analysis level to 4.
  • Fixed PHPStan level 4 findings that needed behavior changes.
  • Raised the PHPStan analysis level to 5.
  • Raised the PHPStan analysis level to 6.
  • Fixed PHPStan level 6 findings that needed behavior changes.
  • Raised the PHPStan analysis level to 7.
  • Fixed PHPStan level 7 findings that needed behavior changes.
Fixed
  • Prevented redundant availability requests when reopening the booking calendar.
  • Fixed a PHP warning, and a failure notice shown after a successful revoke, when disconnecting Google Calendar.
  • Fixed missing remove controls in booking availability and pricing tables when using AM/PM time format.
  • Fixed the booked product dropdown on the Edit Booking admin screen showing the resource name on its own when a resource was selected, instead of the parent product name as well.
  • Prevented guest booking reminders from reusing the previous customer's email address.
  • Showed the "select the options for your booking" message when Book now is clicked before a time is chosen, and stopped the focused time slot from looking selected.
  • Fixed booking form requests being blocked by some host firewalls, which stopped customers from selecting a time.
  • Fixed personal data exports never finishing for customers with 10 or more bookings.
  • Fixed the "View booking" link in customer cancellation emails pointing to the admin dashboard instead of the customer's order.
  • Prevented duplicate Google Calendar events when Google created an event but its response was lost.
  • Kept the booking form responsive when the selected team member changes during an availability request.
  • Disabled booking confirmation while adding to the cart and restored the controls after failed requests.
  • Displayed booking and availability request errors in the experimental booking modal and prevented failed HTTP responses from updating the cart.
  • Fixed a fatal error when adding a booking in the admin for a deleted or non-bookable product.
  • Fixed a fatal error when adding a booking to the cart without a valid timezone offset on products with many bookings.
  • Fixed a fatal error when saving a booking in the admin with a start or end time that is not in the hh:mm format.
  • Fixed the bookings and quotes REST endpoints returning a server error instead of an invalid product ID error for non-bookable products.
  • Fixed recurring availability rules saved as bookable being treated as unavailable in time slots and on the admin calendar.
  • Stopped the admin booking calendar from failing to load when a booking in the viewed range can no longer be loaded.
  • Stopped booking emails with an .ics attachment and the .ics export from failing for bookings whose product was deleted.
  • Stopped booking emails and admin screens from failing for bookings whose order ID points at a refund.
  • Fixed calendar labels for booked dates closed by availability rules.
3.12.0 14 Oct 2026 2 new12 improved18 fixed
New
  • Enabled filtering the bookings calendar by multiple products.
  • Logged booking reminder scheduling and sending events to WooCommerce > Status > Logs.
Improved
  • Improved booking calendar loading performance on stores with many bookings.
  • Clarified the booking timezone settings and timezone label display option.
  • Raised minimum requirements to WordPress 7.0 and WooCommerce 11.1.
  • Improved admin month calendar performance by avoiding unused product loads.
  • Used an explicit callback when filtering calendar product IDs to clear a QIT security warning.
  • Passed booking details script data through WordPress localization.
  • Updated @wordpress/scripts to 36.1.
  • Migrated the JavaScript unit tests from Jest to Vitest.
  • Updated development dependencies to address security advisories.
  • Added test coverage for Product Add-Ons charges on bookings.
  • Added browser coverage for Bookings Tracks events and tracking opt-out.
  • Restored store availability rule tests with the calendar feature enabled.
Fixed
  • Stopped add-to-cart from clearing the cached availability of unrelated products.
  • Added a Customer timezone field to the Add Booking screen, so bookings added from the admin keep their timezone information when "Display visitor's local time" is enabled.
  • Corrected the Customer dropdown placeholder on the Edit Booking admin screen, which always showed "Guest" for guest bookings instead of "Guest (Customer Name)".
  • Preserved quoted labels and kept Product Add-Ons details separate in the monthly calendar popup.
  • Kept the booking calendar visibly disabled until overlapping availability refreshes finish.
  • Stopped fully booked days from appearing partially booked on the calendar when the previous day's time blocks run up to midnight.
  • Kept multi-day booking start dates before an existing booking available when the selected resource allows more than one booking per block.
  • Attached person types to bookable products created with the CSV importer.
  • Prevented duplicate store availability rules when an interrupted update from a version before 1.13 resumes.
  • Prevented a duplicate Google Calendar event when the existing event of a booking cannot be looked up; the sync is retried instead.
  • Respected the visitor locale when choosing the calendar week start.
  • Kept remaining booking slots available on the calendar when displaying times in the customer's timezone.
  • Fixed category filtering for booking availability calendars.
  • Prevented request-specific booking filters from leaking into later availability checks through the cache.
  • Excluded restricted start days from booking slot API results and pagination totals.
  • Hid booking cost controls for Product Add-Ons heading fields.
  • Completed paid orders automatically when they contain only virtual bookings and virtual downloadable products.
  • Made Booking Person Discount coupons check product restrictions and exclusions per booking and discount only eligible bookings.
3.11.0 7 Oct 2026 1 new14 improved62 fixed
New
  • Added a filter for customizing the booking start-time selector HTML.
Improved
  • Raised minimum requirements to WordPress 6.9 and WooCommerce 10.9.
  • Declared compatibility with WordPress 7.1 and WooCommerce 11.2.
  • Grouped availability range types by behavior and clarified their labels.
  • Switched the version headings in changelog.txt to the WordPress.org format.
  • Updated development dependencies to address security advisories.
  • Built the production ZIP on pull requests.
  • Updated wp-env to restore local PHP 7.4 and 8.0 image builds.
  • Hardened release artifact verification, release pull request checks, and WordPress test metadata.
  • Updated the development toolchain to Node 24.18 and @wordpress/scripts 35.
  • Corrected hook docblocks and other PHPStan findings that do not change behavior.
  • Raised the PHPStan analysis level to 2.
  • Updated dependencies, including the shipped phpseclib library, to address security advisories.
  • Renamed the Store Availability calendar's local year variable to avoid WordPress's reserved name.
  • Added the woocommerce_delete_booking_transients action after booking cache invalidation.
Fixed
  • Protected booking product data while preserving direct-link access to catalog-hidden products.
  • Applied standard cart validation, password checks and confirmation-cart separation to quick bookings.
  • Kept existing cart bookings when earlier add-to-cart validation rejects a booking.
  • Prevented unauthorized product counts while preserving published results for public callers and partial editors; constrained query-filter status overrides to the requested authorized collection.
  • Displayed the full selected range for fixed multi-month bookings.
  • Prevented fatal errors when cart item data includes a foreign product using the booking type.
  • Limited the desktop booking modal to 500 by 600 pixels and stacked its action buttons at every screen size.
  • Matched the booking modal team-member selector to its design in both left-to-right and right-to-left layouts.
  • Included categories for Accommodation Bookings and other registered bookable product types in REST responses.
  • Kept admin calendar pickers on the selected site date across timezones.
  • Stored booking calendar email attachments in private temporary paths and removed them at request shutdown.
  • Aligned public booked-day lookups to whole calendar months so their persistent caches stay bounded.
  • Kept pagination out of public slot cache keys and capped tracked slot cache entries per product.
  • Deduplicated client-selected public REST slot product IDs to avoid repeated slot calculations.
  • Imported Google Calendar events in bounded pages per poll and resumed large calendars on the next poll.
  • Allowed the Bookings product REST API to preserve editor-saved values.
  • Bounded public time-slot lookups to configured product durations.
  • Required order permissions before a booking editor can relink a booking to another order or trash and delete a linked order through the booking.
  • Removed stored copies of custom Google Calendar encryption keys without disconnecting working calendars.
  • Bounded the work a Google Calendar recurrence can add to availability checks; rules that exceed the limit keep their times unavailable and are logged.
  • Required booking permissions before the CSV importer creates or overwrites a booking.
  • Encrypted custom Google OAuth client secrets and masked the settings field.
  • Deleted temporary bookings and cleanup events when cart items are removed.
  • Revalidated admin booking reschedules against product rules and live availability.
  • Prevented unauthorized admin requests from skipping required database updates.
  • Serialized cart booking reservations and checkout capacity validation.
  • Limited public booking-product responses to storefront fields.
  • Respected the booking window when requesting availability for booking blocks.
  • Protected booking product data while preserving direct-link access to catalog-hidden products and keeping availability cache keys independent of unused timezone offsets.
  • Stored uploaded booking CSV imports in WooCommerce's protected import folder under a random name, and deleted them once the import completes.
  • Kept per-person coupon discounts within the remaining booking price and WooCommerce coupon usage limits.
  • Rejected public availability slot requests that would exhaust server memory, scaling the limit to the host's PHP memory.
  • Checked linked-record restore permissions and preserved trashed bookings during order status updates and scheduled jobs, while invalidating slots for restored bookings.
  • Kept single-product export files in a private temporary directory and limited cleanup to the exported file.
  • Stored booking CSV exports in the protected WooCommerce uploads folder under unguessable names.
  • Validated person-type permissions and product ownership before saving booking products.
  • Stopped public availability requests from growing the booking cache without limit.
  • Checked resource edit permissions when changing product resource assignments through the REST API.
  • Checked the owning order before clearing a booking order-item link.
  • Validated existing booking references and order-item pairs before CSV updates.
  • Restricted Google Calendar connection requests, delayed repeated refresh failures, and improved expired-link and settings-save recovery.
  • Required current product edit access for every team-member relationship added or removed during final synchronization.
  • Booking exports renamed through the woocommerce_bookings_export_get_filename filter download again.
  • Prevented the booking calendar popover from overlapping the WordPress and WooCommerce admin headers.
  • Allowed removing a permanently deleted resource from a bookable product through the REST API and the product screen.
  • Made the View User and View Order buttons in the booking customer meta box translatable.
  • Fixed the v2 quotes REST endpoint failing when a request includes a customer ID.
  • Omitted inaccessible order links from calendar files for guest and orderless bookings.
  • Displayed the full date range for multi-day and multi-month bookings in the cart.
  • Kept booking details visible within month calendar cells on RTL sites.
  • Localized advanced pricing rule values to the store's decimal separator.
  • Prevented Booking Person Discount coupons from breaking empty or mixed-product carts, and from erroring on orders handled without a cart.
  • Displayed the customer-selected booking duration in order details.
  • Kept availability grid controls accessible at narrow widths.
  • Kept deleted product availability rules from returning after later product saves.
  • Logged unexpected booking AJAX failures for easier troubleshooting.
  • Rejected manual bookings that fail product validation instead of creating them at zero cost.
  • Prevented bookings from starting before the product's minimum bookable date.
  • Stopped Google Calendar sync from reporting an error when deleting an event that was already removed.
  • Fixed the fallback link shown after creating a bookable product from a template.
  • Excluded expired custom date-time Store Availability rules from booking calendar responses.
  • Refreshed the highlighted booking date range when a customer changes the duration.
3.10.0 2 Sep 2026 1 new4 improved20 fixed
New
  • New "Share max bookings per block?" resource setting that makes a bookable product's max bookings per block a single allowance shared by all of its resources, so a slot taken on one resource can no longer be booked again on another.
Improved
  • Improved booking form performance by fetching availability for all blocks and resources in one query instead of one per combination.
  • Managed changelog entries with Jetpack Changelogger: pull requests add a change file under changelog/ instead of editing changelog.txt, which is compiled at release time.
  • Added E2E coverage for the bookable product editor, asserting settings persist by reading the saved product back over the REST API.
  • Removed redundant and low-value tests.
Fixed
  • Bounded public availability requests by the product booking window and a one-year hard limit.
  • Prevented public slot requests from exposing non-public booking products.
  • Prevented public booked-day requests from exposing unpublished booking products.
  • Required object-level edit access and relevant booking capabilities for booking product AJAX mutations, and prevented duplicate resource links.
  • Required exact-order permission before booking REST requests can change existing order associations.
  • Required access to the target booking before confirming it from the admin list.
  • Restricted the store-wide booking calendar to users who can edit other users' bookings.
  • Restricted store-wide booking notifications to users who can edit other users' bookings.
  • Rejected availability requests for resources not assigned to the requested product.
  • Preserved caller-selected CSV source files after an import finishes.
  • Restricted store availability AJAX reads to users with the availability read permission.
  • Enforced the current cancellation policy and cutoff for saved cancellation links.
  • Restricted booking product metadata in REST responses to product editors.
  • Kept cached slot responses separate for requests that show or hide unavailable times.
  • Hardened private-read checks for booking and resource REST records.
  • Required delete permission when a REST update trashes a team member.
  • Blocked payment for orders with bookings awaiting confirmation.
  • Limited public team-member REST responses to profile fields.
  • Rendered imported Google Calendar event summaries as text in the merchant schedule.
  • Prevented translations from loading before WordPress initialization.
3.9.0 19 Aug 2026 1 new27 improved19 fixed
New
  • Support for importing accommodation bookings from a CSV file.
Improved
  • Removed the vulnerable extract-zip package from the development toolchain to resolve a Dependabot security alert.
  • Restored TLS certificate verification and fail-closed error handling in the release deployment script.
  • Pinned and checksum-verified the WP-CLI executable used in release builds.
  • Wired the pull request CI checks required by the trunk branch protection rules (PHP coding standards, @version tag validation).
  • Aligned AI-agent docs, ignore rules, and npm script aliases with the sibling extensions.
  • Updated the npm build toolchain to resolve all remaining Dependabot security alerts.
  • Update the shipped @babel/runtime helpers to resolve a security advisory.
  • Fixed Markdown documentation lint violations and wired the Markdown docs lint into CI.
  • Standardized the package license identifier on GPL-3.0-or-later.
  • Removed the dead lint:md:js script.
  • Documented the isolated worktree setup for local development.
  • Stop waiting on networkidle when opening the front-end product page in E2E specs; wait on the date picker's own readiness signal instead.
  • Enabled TLS certificate verification for translation downloads.
  • Seed bookable products for E2E specs through the REST API instead of driving the admin product editor.
  • Suppressed dependency deprecation notices in the PHP unit test suites.
  • Added a CI check that fails when the plugin's own PHP sources raise compile-time deprecation notices.
  • Added a pre-commit check that enforces updating the @version tag to x.x.x on modified PHP classes.
  • Enabled JavaScript linting in CI and fixed source violations.
  • Migrated the ESLint setup to the flat config format required by ESLint 10, aligning the lint and formatting toolchain with WooCommerce core.
  • Update wp-coding-standards/wpcs to 3.4.1 (security release) in the phpcs lint tooling.
  • Allow-listed the dev-only GPLv3 dependency @woocommerce/e2e-utils-playwright and wired check-licenses into CI.
  • Update PHPUnit to 9.6.35 to resolve a security advisory in the PHP test toolchain.
  • Update development npm dependencies to resolve security advisories in the build toolchain.
  • Update the shipped phpseclib library to resolve security advisories, and move Strauss and QIT CLI to require-dev.
  • Update the shipped Guzzle libraries and the Symfony YAML development dependency to resolve security advisories.
  • Enabled CSS linting in CI and fixed source style violations.
  • Hardened the QIT test workflow: pinned the QIT CLI version and stopped workflow inputs from being interpolated into shell source.
Fixed
  • Fixed a fatal error on the product page and when adding to the cart if a person type cost was stored with a currency symbol or other non-numeric characters.
  • Fixed a person type cost stored with a thousands separator or a decimal comma being priced as only the digits before the separator.
  • Fixed a fatal error when a pricing rule was set to divide by an empty or zero amount.
  • Fixed the admin calendar single-day view defaulting to the server (UTC) date instead of the site timezone, which shifted bookings by a day once UTC and the site were on different calendar dates (for example, past 7 PM in UTC-5).
  • Fixed a false "Error while deleting the item" error when permanently deleting bookings on HPOS stores.
  • Prevented manual booking creation from changing orders without edit permission.
  • Prevented team-member updates from changing unauthorized booking products.
  • Fixed a blocking Google Calendar API call being made on every request (front end, REST API, cron, login) when a Google account is connected; the calendar list is now fetched only when the settings form fields are actually used.
  • Restricted booking product template creation to authorized product editors with a valid request nonce.
  • Fixed the "Booking Person Discount" coupon applying a discount 100 times too large at cart and checkout for currencies with zero decimals (for example JPY).
  • Fixed console errors on admin screens when the WooCommerce Tracks object is unavailable.
  • Fixed the date picker calendar availability announcement not being read by screen readers when the calendar opens on focus.
  • Fixed the admin Add Booking screen and reschedule dialog showing times in the merchant's browser timezone instead of the store timezone when "Display visitor's local time" is enabled.
  • Fixed the admin calendar month and schedule views defaulting an out-of-range year to the server (UTC) year instead of the site timezone, so the calendar could open on the wrong year around New Year.
  • Prevented resource REST requests from reading or deleting team members.
  • Enforced global availability permissions for AJAX create, update, and delete requests.
  • Bound booking product exports to the authorized product and global availability permissions.
  • Limited booking order search results to orders the current user can access.
  • Prevented fatal errors when a bookable product references a resource that cannot be resolved. Prices can fall back to product-level costs, and bookings reject stale submitted resources.
3.8.0 22 Jul 2026 4 new1 improved7 fixed
New
  • Reschedule flow on the booking details admin view: availability-aware calendar that preselects the current slot, keeps the original price, and re-syncs to Google Calendar.
  • Added the ability to edit the "Requires confirmation" payment method title and description from its settings.
  • Important: WordPress 6.8+ is now required.
  • Important: WooCommerce 10.6+ is now required.
Improved
  • Bumped WooCommerce "tested up to" version to 11.0.
Fixed
  • Fixed hourly bookings ending exactly at midnight incorrectly blocking the following day from being booked.
  • Fixed a JS error when multiple bookable products are displayed on the same page.
  • Fixed the admin calendar Day view displaying a booking that ends at midnight as an all-day block on the following day.
  • Fixed calendar date picker navigation arrows being hidden at narrower screen resolutions due to a z-index conflict with the table navigation bar.
  • The woocommerce_bookings_booked_day_blocks filter is now consistently applied even when a product has no existing bookings.
  • Replaced legacy {blogname} placeholder with {site_title} in all booking email subject defaults to align with WooCommerce core.
  • The add-to-cart button on the single product page now inherits the theme's Global Styles button design on block themes.
3.7.0 29 Jun 2026 1 improved3 fixed
Improved
  • Important: Updated frontend templates.
Fixed
  • Improved accessibility.
  • Fixed availability times on the product edit screen when admin and site timezones differ.
  • Fixed calendar showing days as available when remaining slots are below the minimum persons per booking.
3.6.0 16 Jun 2026 3 new6 improved10 fixed
New
  • Bookings CSV exporter to download bookings as a CSV file.
  • Bookings CSV importer to create and update bookings in bulk from a CSV file.
  • Added a "Bookings" endpoint setting under WooCommerce > Settings > Advanced > Page Setup > Account endpoints.
Improved
  • Removed the "Enable Bookings Timezone Calculation" setting, as booking events now always follow your site's timezone automatically.
  • Improved the booking edit screen responsive layout by stacking details columns before fields become crowded.
  • Improved booking form calculation AJAX requests.
  • Performance improvements when fetching bookings for availability requests.
  • Bumped WooCommerce tested up to version to 10.9.
  • Fixed Plugin Check compatibility reporting for guarded block metadata registration helpers.
Fixed
  • Booking reminder emails and automatic completions now happen at the correct local time on sites outside the UTC timezone.
  • Fixed a fatal error when importing a bookable product CSV with person types disabled (empty Person types column).
  • Bookable product CSV import/export now uses readable column labels and auto-detects them on import.
  • Fixed clipped Date created hour/minute inputs on the booking edit screen in WordPress 7.0.
  • Fixed the booking list in WP Admin showing the wrong customer email after reassigning a booking to a different customer.
  • Prevented the "Move to trash" link from displaying on the Edit Booking screen for users who cannot delete bookings.
  • Fixed a fatal error when enabling "Restrict selectable days" without selecting any days.
  • Fixed admin calendar possibly showing a stale customer note on bookings without a note.
  • Fixed the woocommerce_bookings_account_endpoint filter not working when used in a theme's functions.php.
  • Used the configured bookings account endpoint slug for the email "View my bookings" link and My Account pagination links instead of the hardcoded default.
3.5.3 22 May 2026 1 fixed
Fixed
  • Improved compatibility with MariaDB 12.3.1+ by resolving a conflict between MariaDB's built-in TO_DATE() function and the to_date column.
3.5.2 13 May 2026 2 improved
Improved
  • Bookings no longer writes to the WooCommerce Analytics customer lookup table; the analytics customer ID is now resolved via WooCommerce's own sync and backfilled on bookings once available.
  • Bumped WooCommerce tested up to version to 10.8.
3.5.1 24 Apr 2026 1 fixed
Fixed
  • Reverted the Add Booking admin screen calendar width constraint from 3.5.0.
3.5.0 20 Apr 2026 1 new2 improved9 fixed
New
  • Added WooCommerce Analytics customer ID to bookings.
Improved
  • Bumped WordPress tested up to version to 7.0.
  • Bumped WooCommerce tested up to version to 10.7.
Fixed
  • Fixed a fatal error in cost calculation when a bookable product references a deleted resource.
  • Prevented sending email reminders for bookings that have already started.
  • Prevented completed bookings from being cancelled when the associated order is cancelled or refunded.
  • Fixed booking calendar width being too wide on the Add Booking admin screen.
  • Fixed an issue where changing the store timezone did not always update booking times right away.
  • Fixed bulk action notice always showing zero bookings updated.
  • Improved booking confirmation .ics attachments.
  • Improved overall accessibility.
  • Fixed admin styling compatibility issues with WordPress 7.0.
3.4.0 9 Mar 2026 2 new2 fixed
New
  • Added filter, 'woocommerce_bookings_edit_booking_url' to allow updating booking URL in email notifications.
  • Added filter, 'woocommerce_bookings_calendar_url' to allow updating booking calendar URL in email notifications.
Fixed
  • Fixed an issue with the experimental email editor personalization tag.
  • Fixed booking email templates not displaying the booked product name.
3.3.0 27 Feb 2026 1 improved1 fixed
Improved
  • Updated My Account template for Bookings.
Fixed
  • Fixed a regression that removed order item meta from booking email templates.
3.2.0 25 Feb 2026 1 new2 improved6 fixed
New
  • Added support for WooCommerce's experimental block email editor.
Improved
  • Added a "details" prefix to bookings meta in block cart/checkout.
  • Moved all install operations to the activation hook.
Fixed
  • Fixed datepicker showing under other elements.
  • Fixed _booking_id showing in emails.
  • Fixed timezone display issues caused by object caching.
  • Fixed order confirmation block breaking when item or order doesn't exist.
  • Hidden PayPal Payments express button on bookable products.
  • Removed obsolete upgrade notice.
3.1.0 28 Jan 2026 1 new1 improved2 fixed
New
  • Added Attendance Status to bookings.
Improved
  • Improved the bookings list table.
Fixed
  • Fixed redundant save_post calls when booking updates.
  • Fixed calendar rendering on older browsers.
3.0.2 14 Jan 2026 1 fixed
Fixed
  • Fixed customer syncing between the order and the booking when HPOS is enabled.
3.0.1 9 Jan 2026 1 new1 fixed
New
  • Added structured price data support for bookable products.
Fixed
  • Fixed an issue that prevented the automatic selection of the first available date when the 'wc_bookings_calendar_default_to_current_date' filter is disabled.
3.0.0 7 Jan 2026 8 improved6 fixed
Improved
  • Replaced wc_enqueue_js with wp_add_inline_script according to the recommended WordPress core script patterns.
  • Introduced 'woocommerce_bookings_use_extensive_time_slots_check' filter. Set it to 'false' for faster availability calculations, unless you are using automatic resource assignment or monthly duration unit.
  • The structure of the array returned via wc_bookings_product_get_available_blocks has changed. Expect an associative array with timestamp as the key and the number of booked slots as value.
  • Improved doc blocks for key functions.
  • Updated 'bookings' REST API endpoint to support searching and filtering by product, customer, resource, date and status.
  • Introduced a 'weekly-schedule' v2 REST API endpoint to read/write weekly schedule rules.
  • Introduced a 'date-overrides' v2 REST API endpoint to read/write date override rules.
  • Exposed 'wc_booking' and 'bookable_resource' CPTs in the REST API.
Fixed
  • Fixed error that prevented the deletion of a booking if the linked product/resource didn't exist.
  • Fixed PHP deprecation notice related to the Bookings Payment Gateway registration.
  • Fixed an issue that displayed expired booking notices multiple times.
  • Fixed a conflict with the date picker styles of Product Add-Ons and Gift Cards.
  • Clear out persistent admin notice about fetching Google calendars when errors are resolved.
  • Fixed undefined property warning in booking notification emails.

2025 7 versions

2.2.9 7 Aug 2025 2 improved6 fixed
Improved
  • Bumped WooCommerce "tested up to" version 10.0
  • Bumped WooCommerce minimum supported version to 9.8
Fixed
  • Fixed styles in the edit product page.
  • Removed conflicting styling rule that affected shop notices.
  • Fixed HTML Validation for Person type not showing if collapsed.
  • Prevented incorrect URL values when navigating from December to January.
  • Resolved PHP notice triggered when loading translations too early.
  • Fixed issue with translations that don't use the # prefix when displaying booking status changes.
2.2.8 18 Jun 2025 2 improved2 fixed
Improved
  • Bump WooCommerce "tested up to" version 9.9.
  • Bump WooCommerce minimum supported version to 9.7.
Fixed
  • Reduce unwanted logging of bookings removed from carts due to inactivity.
  • Resolve issues flagged by WooCommerce's Quality Insights Toolkit (QIT).
2.2.7 15 Apr 2025 1 new1 improved1 fixed
New
  • Support for WooCommerce's new Email Preview feature.
Improved
  • Bump WordPress "tested up to" version 6.8.
Fixed
  • Ensure the product remains available if at least one resource is available, even when other resources are unavailable.
2.2.6 31 Mar 2025 3 improved1 fixed
Improved
  • Bump WooCommerce "tested up to" version 9.8.
  • Bump WooCommerce minimum supported version to 9.6.
  • Update all third-party actions our workflows rely on to use versions based on specific commit hashes.
Fixed
  • Improve calendar display for multi-day bookings for product rules checked against the starting block only.
2.2.5 10 Mar 2025 5 improved6 fixed
Improved
  • Bump WooCommerce "tested up to" version 9.7.
  • Bump WooCommerce minimum supported version to 9.5.
  • Bump WordPress minimum supported version to 6.6.
  • Introduce PHP Unit tests for the REST API products and resources endpoints.
  • Disabled warning checks from the WordPress Plugin Check GitHub action.
Fixed
  • Ensure the product remains available if at least one resource is available, even when other resources are unavailable.
  • The button position in the Add To Cart With Options block.
  • Ensure booking slots are shown in the REST API slots endpoint for products with an extended minimum duration.
  • Updates in the meta_data field of Bookings Products REST API response.
  • Ensure the upgrade notice is shown only once and only when the WooCommerce Bookings plugin is updated.
  • Warning for booking_order_id is not confirmed as set.
2.2.4 18 Feb 2025 1 new1 improved5 fixed
New
  • Display Booking details even when product not found.
Improved
  • Add the WordPress Plugin Check GitHub Action and fix the issues it flagged.
Fixed
  • Ensure that the 'WooCommerce Bookings' gateway remains hidden on the new WooCommerce Payments settings page.
  • Only show Bookings templates admin notice when Bookings is active and ensure its properly dismissable.
  • Ensure negative values are not permitted in fields where minimum value should be "0".
  • "First block starts at..." now follows the 24 hour time format.
  • Add filter, disable_find_booked_day_blocks_nonce_check, to the get_end_time_html handler.
2.2.3 27 Jan 2025 1 new3 improved3 fixed
New
  • WooCommerce Bookings prefix in all notices.
Improved
  • Bump WooCommerce "tested up to" version 9.6.
  • Bump WooCommerce minimum supported version to 9.4.
  • Use the @woocommerce/e2e-utils-playwright NPM package for E2E tests.
Fixed
  • Issue with "Book Now" button display in block-based themes.
  • Resolved "translation loading was triggered too early" issue in WordPress 6.7.
  • Resolved an issue where the date picker in resource range editing was blocked by the AM/PM selector.

2024 13 versions

2.2.2 2 Dec 2024 1 fixed
Fixed
  • Ensure the Bookings REST API works correctly in WordPress 6.7.
2.2.1 25 Nov 2024 2 improved1 fixed
Improved
  • Bump WooCommerce "tested up to" version 9.5.
  • Bump WooCommerce minimum supported version to 9.3.
Fixed
  • Display issues when deleting products with bookings.
2.2.0 18 Nov 2024 1 new1 improved2 fixed
New
  • Ability to filter returned Bookings by date_start_before / date_end_after.
Improved
  • Bump WordPress "tested up to" version 6.7.
Fixed
  • If an error occurs, return WP_Error object instead of an error message in the prepare_object_for_database method.
  • Ensure that bookings work correctly with the checkout block and that no duplicate bookings are created.
2.1.9 11 Nov 2024 1 fixed
Fixed
  • Conflict with Sequential Order Numbers Pro extension leading to fatal error in PHP 8.0+.
2.1.8 14 Oct 2024 1 new4 improved2 fixed
New
  • Bookings section in My Account now includes breadcrumb heading.
Improved
  • Bump WooCommerce "tested up to" version 9.4.
  • Bump WooCommerce minimum supported version to 9.2.
  • Bump WordPress minimum supported version to 6.5.
  • Added an E2E test for booking availability with a buffer.
Fixed
  • Prevent fatal error editing block cart and checkout pages when using WooPayments Express Pay buttons.
  • Booking status now updates correctly from "In cart" to "Paid" or "Unpaid" after order status changes from "Failed" to "Processing" or "Completed".
2.1.7 23 Sep 2024 3 improved2 fixed
Improved
  • Update all documentation links that were pointing to the wrong site.
  • Bump WooCommerce "tested up to" version 9.3.
  • Bump WooCommerce minimum supported version to 9.1.
Fixed
  • Ensure order search works properly on the edit booking screen when using HPOS for data storage.
  • Correct a spelling error in the boat cruise bookable product template.
2.1.6 19 Aug 2024 1 new4 improved3 fixed
New
  • Filter, disable_find_booked_day_blocks_nonce_check, to handle bypassing nonce check.
Improved
  • Bump WooCommerce "tested up to" version 9.2.
  • Bump WooCommerce minimum supported version to 9.0.
  • Fix QIT E2E tests and add support for a few new test types.
  • Update E2E tests to accommodate the changes in WooCommerce 9.2.
Fixed
  • Cost does not recalculate when changing the number of persons.
  • Ensure recurring Google events correctly block the end times for the "Customer Defined Blocks".
  • Resolve PHPCompatibility errors reported by WooCommerce's Quality Insights Toolkit test.
2.1.5 24 Jul 2024 2 improved1 fixed
Improved
  • Bump WooCommerce "tested up to" version 9.1.
  • Bump WooCommerce minimum supported version to 8.9.
Fixed
  • Address additional errors related to orders that don't have Bookings associated with them.
2.1.4 16 Jul 2024 6 improved2 fixed
Improved
  • Bump WooCommerce "tested up to" version 9.0.
  • Bump WooCommerce minimum supported version to 8.8.
  • Bump WordPress minimum supported version to 6.4.
  • Bump WordPress "tested up to" version 6.6.
  • Exclude the Woo Comment Hook @since sniff.
  • Update NPM packages and node version to v20 to modernize developer experience.
Fixed
  • The accommodation-booking product creation is not possible via the REST API.
  • Handle Fatal Error caused by an order without a Booking.
2.1.3 10 Jun 2024 1 new4 improved
New
  • Custom Product Type (Bookings) added to the new Woo "Add Product" workflow.
Improved
  • Bump WooCommerce "tested up to" version 8.9.
  • Bump WooCommerce minimum supported version to 8.7.
  • Correct official doc link to https://woocommerce.com/document/google-calendar-integration.
  • Corrected text on the Templates tab.
2.1.2 22 Apr 2024 4 improved
Improved
  • Bump WooCommerce "tested up to" version 8.8.
  • Bump WooCommerce minimum supported version to 8.6.
  • Register Bookings product type even when is_admin() is false.
  • Replace the middleware URL from connect.woocommerce.com to api.woocommerce.com/integrations.
2.1.1 28 Mar 2024 4 improved5 fixed
Improved
  • Bump WooCommerce "tested up to" version 8.7.
  • Bump WooCommerce minimum supported version to 8.5.
  • Bump WordPress "tested up to" version 6.5.
  • Bump WordPress minimum supported version to 6.3.
Fixed
  • Incorrect cost of manually added customer Bookings.
  • Request in other plugins are failing when they have 'product_id' param in the GET request.
  • The woocommerce_bookings_failed_order_expired event cancels valid Bookings.
  • Updating manually added Booking orders to completed leads to critical error.
  • Fully booked dates appear as partially available when the Booking setting has "Display visitor's local time".
2.1.0 11 Mar 2024 4 improved2 fixed
Improved
  • Bump WooCommerce "tested up to" version 8.6.
  • Bump WooCommerce minimum supported version to 8.4.
  • Hide "(x left)" text in the end time dropdown when there is only 1 quantity resourced.
  • Revert Booking status to "in-cart" when order fails to enable re-payment.
Fixed
  • Clear cache when booking is trashed/untrashed.
  • Error when adding a global add-on while WooCommerce Bookings and Jetpack are active.