*** WooCommerce Bookings Changelog ***

2026.05.13 - version 3.5.2
* Tweak - 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.
* Tweak - Bumped WooCommerce tested up to version to 10.8.

2026.04.24 - version 3.5.1
* Fix - Reverted the Add Booking admin screen calendar width constraint from 3.5.0.

2026.04.20 - version 3.5.0
* Add - Added WooCommerce Analytics customer ID to bookings.
* Fix - Fixed a fatal error in cost calculation when a bookable product references a deleted resource.
* Fix - Prevented sending email reminders for bookings that have already started.
* Fix - Prevented completed bookings from being cancelled when the associated order is cancelled or refunded.
* Fix - Fixed booking calendar width being too wide on the Add Booking admin screen.
* Fix - Fixed an issue where changing the store timezone did not always update booking times right away.
* Fix - Fixed bulk action notice always showing zero bookings updated.
* Fix - Improved booking confirmation .ics attachments.
* Fix - Improved overall accessibility.
* Fix - Fixed admin styling compatibility issues with WordPress 7.0.
* Tweak - Bumped WordPress tested up to version to 7.0.
* Tweak - Bumped WooCommerce tested up to version to 10.7.

2026.03.09 - version 3.4.0
* Add - Added filter, 'woocommerce_bookings_edit_booking_url' to allow updating booking URL in email notifications.
* Add - Added filter, 'woocommerce_bookings_calendar_url' to allow updating booking calendar URL in email notifications.
* Fix - Fixed an issue with the experimental email editor personalization tag.
* Fix - Fixed booking email templates not displaying the booked product name.

2026.02.27 - version 3.3.0
* Fix - Fixed a regression that removed order item meta from booking email templates.
* Tweak - Updated My Account template for Bookings.

2026.02.25 - version 3.2.0
* Add - Added support for WooCommerce's experimental block email editor.
* Fix - Fixed datepicker showing under other elements.
* Fix - Fixed _booking_id showing in emails.
* Fix - Fixed timezone display issues caused by object caching.
* Fix - Fixed order confirmation block breaking when item or order doesn't exist.
* Fix - Hidden PayPal Payments express button on bookable products.
* Fix - Removed obsolete upgrade notice.
* Tweak - Added a "details" prefix to bookings meta in block cart/checkout.
* Tweak - Moved all install operations to the activation hook.

2026.01.28 - version 3.1.0
* Add - Added Attendance Status to bookings.
* Fix - Fixed redundant `save_post` calls when booking updates.
* Fix - Fixed calendar rendering on older browsers.
* Tweak - Improved the bookings list table.

2026.01.14 - version 3.0.2
* Fix - Fixed customer syncing between the order and the booking when HPOS is enabled.

2026.01.09 - version 3.0.1
* Add - Added structured price data support for bookable products.
* Fix - 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.

2026.01.07 - version 3.0.0
* Tweak - Replaced wc_enqueue_js with wp_add_inline_script according to the recommended WordPress core script patterns.
* Fix - Fixed error that prevented the deletion of a booking if the linked product/resource didn't exist.
* Fix - Fixed PHP deprecation notice related to the Bookings Payment Gateway registration.
* Fix - Fixed an issue that displayed expired booking notices multiple times.
* Fix - Fixed a conflict with the date picker styles of Product Add-Ons and Gift Cards.
* Fix - Clear out persistent admin notice about fetching Google calendars when errors are resolved.
* Fix - Fixed undefined property warning in booking notification emails.
* Dev - 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.
* Dev - 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.
* Dev - Improved doc blocks for key functions.
* Dev - Updated 'bookings' REST API endpoint to support searching and filtering by product, customer, resource, date and status.
* Dev - Introduced a 'weekly-schedule' v2 REST API endpoint to read/write weekly schedule rules.
* Dev - Introduced a 'date-overrides' v2 REST API endpoint to read/write date override rules.
* Dev - Exposed 'wc_booking' and 'bookable_resource' CPTs in the REST API.

2025.08.07 - version 2.2.9
* Fix - Fixed styles in the edit product page.
* Fix - Removed conflicting styling rule that affected shop notices.
* Fix - Fixed HTML Validation for Person type not showing if collapsed.
* Fix - Prevented incorrect URL values when navigating from December to January.
* Fix - Resolved PHP notice triggered when loading translations too early.
* Fix - Fixed issue with translations that don't use the # prefix when displaying booking status changes.
* Dev - Bumped WooCommerce "tested up to" version 10.0
* Dev - Bumped WooCommerce minimum supported version to 9.8

2025.06.18 - version 2.2.8
* Fix - Reduce unwanted logging of bookings removed from carts due to inactivity.
* Fix - Resolve issues flagged by WooCommerce's Quality Insights Toolkit (QIT).
* Dev - Bump WooCommerce "tested up to" version 9.9.
* Dev - Bump WooCommerce minimum supported version to 9.7.

2025.04.15 - version 2.2.7
* Add - Support for WooCommerce's new Email Preview feature.
* Fix - Ensure the product remains available if at least one resource is available, even when other resources are unavailable.
* Dev - Bump WordPress "tested up to" version 6.8.

2025.03.31 - version 2.2.6
* Fix - Improve calendar display for multi-day bookings for product rules checked against the starting block only.
* Dev - Bump WooCommerce "tested up to" version 9.8.
* Dev - Bump WooCommerce minimum supported version to 9.6.
* Dev - Update all third-party actions our workflows rely on to use versions based on specific commit hashes.

2025.03.10 - version 2.2.5
* Fix - Ensure the product remains available if at least one resource is available, even when other resources are unavailable.
* Fix - The button position in the Add To Cart With Options block.
* Fix - Ensure booking slots are shown in the REST API slots endpoint for products with an extended minimum duration.
* Fix - Updates in the `meta_data` field of Bookings Products REST API response.
* Fix - Ensure the upgrade notice is shown only once and only when the WooCommerce Bookings plugin is updated.
* Fix - Warning for `booking_order_id is not confirmed as set.
* Dev - Bump WooCommerce "tested up to" version 9.7.
* Dev - Bump WooCommerce minimum supported version to 9.5.
* Dev - Bump WordPress minimum supported version to 6.6.
* Dev - Introduce PHP Unit tests for the REST API products and resources endpoints.
* Dev - Disabled warning checks from the WordPress Plugin Check GitHub action.

2025.02.18 - version 2.2.4
* Add - Display Booking details even when product not found.
* Fix - Ensure that the 'WooCommerce Bookings' gateway remains hidden on the new WooCommerce Payments settings page.
* Fix - Only show Bookings templates admin notice when Bookings is active and ensure its properly dismissable.
* Fix - Ensure negative values are not permitted in fields where minimum value should be "0".
* Fix - "First block starts at..." now follows the 24 hour time format.
* Fix - Add filter, `disable_find_booked_day_blocks_nonce_check`, to the `get_end_time_html` handler.
* Dev - Add the WordPress Plugin Check GitHub Action and fix the issues it flagged.

2025.01.27 - version 2.2.3
* Add - WooCommerce Bookings prefix in all notices.
* Fix - Issue with "Book Now" button display in block-based themes.
* Fix - Resolved "translation loading was triggered too early" issue in WordPress 6.7.
* Fix - Resolved an issue where the date picker in resource range editing was blocked by the AM/PM selector.
* Dev - Bump WooCommerce "tested up to" version 9.6.
* Dev - Bump WooCommerce minimum supported version to 9.4.
* Dev - Use the `@woocommerce/e2e-utils-playwright` NPM package for E2E tests.

2024.12.02 - version 2.2.2
* Fix - Ensure the Bookings REST API works correctly in WordPress 6.7.

2024.11.25 - version 2.2.1
* Fix - Display issues when deleting products with bookings.
* Dev - Bump WooCommerce "tested up to" version 9.5.
* Dev - Bump WooCommerce minimum supported version to 9.3.

2024.11.18 - version 2.2.0
* Add - Ability to filter returned Bookings by `date_start_before` / `date_end_after`.
* Fix - If an error occurs, return `WP_Error` object instead of an error message in the `prepare_object_for_database` method.
* Fix - Ensure that bookings work correctly with the checkout block and that no duplicate bookings are created.
* Dev - Bump WordPress "tested up to" version 6.7.

2024.11.11 - version 2.1.9
* Fix - Conflict with Sequential Order Numbers Pro extension leading to fatal error in PHP 8.0+.

2024.10.14 - version 2.1.8
* Add - Bookings section in My Account now includes breadcrumb heading.
* Fix - Prevent fatal error editing block cart and checkout pages when using WooPayments Express Pay buttons.
* Fix - Booking status now updates correctly from "In cart" to "Paid" or "Unpaid" after order status changes from "Failed" to "Processing" or "Completed".
* Dev - Bump WooCommerce "tested up to" version 9.4.
* Dev - Bump WooCommerce minimum supported version to 9.2.
* Dev - Bump WordPress minimum supported version to 6.5.
* Dev - Added an E2E test for booking availability with a buffer.

2024.09.23 - version 2.1.7
* Fix - Ensure order search works properly on the edit booking screen when using HPOS for data storage.
* Fix - Correct a spelling error in the boat cruise bookable product template.
* Dev - Update all documentation links that were pointing to the wrong site.
* Dev - Bump WooCommerce "tested up to" version 9.3.
* Dev - Bump WooCommerce minimum supported version to 9.1.

2024.08.19 - version 2.1.6
* Add - Filter, `disable_find_booked_day_blocks_nonce_check`, to handle bypassing nonce check.
* Fix - Cost does not recalculate when changing the number of persons.
* Fix - Ensure recurring Google events correctly block the end times for the "Customer Defined Blocks".
* Fix - Resolve PHPCompatibility errors reported by WooCommerce's Quality Insights Toolkit test.
* Dev - Bump WooCommerce "tested up to" version 9.2.
* Dev - Bump WooCommerce minimum supported version to 9.0.
* Dev - Fix QIT E2E tests and add support for a few new test types.
* Dev - Update E2E tests to accommodate the changes in WooCommerce 9.2.

2024.07.24 - version 2.1.5
* Dev - Bump WooCommerce "tested up to" version 9.1.
* Dev - Bump WooCommerce minimum supported version to 8.9.
* Fix - Address additional errors related to orders that don't have Bookings associated with them.

2024.07.16 - version 2.1.4
* Dev - Bump WooCommerce "tested up to" version 9.0.
* Dev - Bump WooCommerce minimum supported version to 8.8.
* Dev - Bump WordPress minimum supported version to 6.4.
* Dev - Bump WordPress "tested up to" version 6.6.
* Dev - Exclude the Woo Comment Hook `@since` sniff.
* Dev - Update NPM packages and node version to v20 to modernize developer experience.
* Fix - The `accommodation-booking` product creation is not possible via the REST API.
* Fix - Handle Fatal Error caused by an order without a Booking.

2024.06.10 - version 2.1.3
* Add - Custom Product Type (Bookings) added to the new Woo "Add Product" workflow.
* Dev - Bump WooCommerce "tested up to" version 8.9.
* Dev - Bump WooCommerce minimum supported version to 8.7.
* Tweak - Correct official doc link to https://woocommerce.com/document/google-calendar-integration.
* Tweak - Corrected text on the Templates tab.

2024.04.22 - version 2.1.2
* Dev - Bump WooCommerce "tested up to" version 8.8.
* Dev - Bump WooCommerce minimum supported version to 8.6.
* Update - Register Bookings product type even when `is_admin()` is false.
* Update - Replace the middleware URL from `connect.woocommerce.com` to `api.woocommerce.com/integrations`.

2024.03.28 - version 2.1.1
* Dev - Bump WooCommerce "tested up to" version 8.7.
* Dev - Bump WooCommerce minimum supported version to 8.5.
* Dev - Bump WordPress "tested up to" version 6.5.
* Dev - Bump WordPress minimum supported version to 6.3.
* Fix - Incorrect cost of manually added customer Bookings.
* Fix - Request in other plugins are failing when they have 'product_id' param in the GET request.
* Fix - The `woocommerce_bookings_failed_order_expired` event cancels valid Bookings.
* Fix - Updating manually added Booking orders to completed leads to critical error.
* Fix - Fully booked dates appear as partially available when the Booking setting has "Display visitor's local time".

2024.03.11 - version 2.1.0
* Dev - Bump WooCommerce "tested up to" version 8.6.
* Dev - Bump WooCommerce minimum supported version to 8.4.
* Fix - Clear cache when booking is trashed/untrashed.
* Fix - Error when adding a global add-on while WooCommerce Bookings and Jetpack are active.
* Update - Hide "(x left)" text in the end time dropdown when there is only 1 quantity resourced.
* Update - Revert Booking status to "in-cart" when order fails to enable re-payment.

2024.01.29 - version 2.0.9
* Dev - Bump PHP "tested up to" version 8.3.
* Dev - Bump WooCommerce "tested up to" version 8.5.
* Dev - Bump WooCommerce minimum supported version to 8.3.
* Dev - Bump WordPress minimum supported version to 6.3.
* Fix - Set the place order label in the Block checkout page when order requires confirmation.
* Fix - Slow checkout performance for high-volume sites.
* Fix - Remove Cart Block incompatibility notice.
* Tweak - Ensure New Bookable Product link goes to template selection screen.

2024.01.10 - version 2.0.8
* Add - Improved Bookings Calendar Connection & Sync Flow by adding Labels and Notifications.
* Dev - Declare compatibility with WooCommerce Blocks
* Dev - Bump PHP minimum supported version to 7.4.
* Dev - Bump WooCommerce "tested up to" version 8.4.
* Dev - Bump WooCommerce minimum supported version to 8.2.
* Dev - Switched the E2E test environment from `@woocommerce/e2e-environment` to `@wordpress/env`.
* Fix - Ensure compatibility with WooPayments extension.

2023.12.04 - version 2.0.7
* Dev - Bump WooCommerce "tested up to" version 8.3.
* Dev - Bump WooCommerce minimum supported version to 8.1.
* Dev - Bump WordPress minimum supported version to 6.2.
* Fix - `wc_bookings_calendar_default_to_current_date` filter issue with date handling.

2023.11.20 - version 2.0.6
* Dev - Bump WordPress "tested up to" version 6.4.
* Dev - Bump WordPress minimum supported version to 6.2.
* Dev - Add Playwright e2e tests for Critical Flows.
* Dev - Resolve Coding Standards issues.

2023.10.24 - version 2.0.5
* Dev - Change docs and config files to indicate node 12 requirement.
* Fix - Salt rotation issue for key encryption.

2023.10.09 - version 2.0.4
* Dev - Added E2E tests to ensure customer-defined blocks work with resources.
* Dev - Update E2E tests workflow to only run based on conditions.
* Dev - Update PHPCS and PHPCompatibility GitHub Actions.
* Fix - Available slots count not displayed for products with no resources.
* Fix - Infinite Calendar Load on PHP 8.1 when WooCommerce Vendors is activated.
* Fix - Non-booking events causing the admin calendar to crash.
* Fix - Add proper nonce check to prevent unauthorized disconnection of Google Calendar account.

2023.09.18 - version 2.0.3
* Dev - Bump WooCommerce "tested up to" version from 7.8.0 to 8.0.
* Dev - Bump WooCommerce minimum supported version from 7.2 to 7.8.
* Dev - PHPCS/SemGrep fixes.
* Dev - Replace $eval with locator in playwright E2E tests.
* Fix - Date selection for bookings on the front-end when customer allocated resources are modified.
* Fix - Ensure JavaScript dependencies load correctly.
* Fix - Fatal Error with PHP 8.1: "Call to a member function has_qty() on bool".
* Fix - Incorrect extension name in block-based error message.
* Fix - Potential error handling on unsaved orders for virtual bookings.
* Fix - Visual feedback for vendors editing booking availability.

2023.08.14 - version 2.0.2
* Dev - Bump PHP minimum supported version from 7.2 to 7.3.
* Dev - Bump WooCommerce "tested up to" version 7.9.
* Dev - Bump WooCommerce minimum supported version from 7.2 to 7.7.
* Dev - Bump WordPress "tested up to" version from 6.2 to 6.3.
* Fix - Bookable product with resources that are fully booked shows as partially available.
* Fix - Resources block the entire day when added after bookings are made.
* Fix - Respect 24 hours format in the date picker in availability, resource, and cost setting.

2023.08.07 - version 2.0.1
* Dev - Escape underscores in transient names so the delete query can utilize the MySQL index.
* Dev - Incorporate entity ID in the nonce value with role capability validation.
* Fix - Fixes the remaining resource count and moves the count from start time list to end time list.
* Fix - Set text color for `.wc-bookings-calendar-popover .components-popover__content` and avoid issue where text is same as container background.
* Fix - Update documentation link under `Bookings > Add Product`.

2023.07.13 - version 2.0.0
* Add - Enhanced store owner and new bookable product on-boarding experience.
* Add - Tracks support for product templates.
* Dev - Bump WooCommerce "tested up to" version 7.8.
* Dev - Bump WooCommerce minimum supported version from 6.8 to 7.2.
* Dev - Bump WordPress minimum supported version from 5.8 to 6.1.
* Dev - Resolve coding standard issues.
* Dev - Fix broken e2e tests. Update the playwright npm package and WordPress version.
* Fix - Bookings across the dateline now respect max bookings per block.
* Fix - Issue where Min/Max block bookable settings were not working as expected.
* Fix - Respect buffering and prevent overbooking.
* Fix - Template output functions.
* Fix - User-friendly booking link text in new order email.

2023.06.14 - version 1.16.02
* Dev - Bump WooCommerce "tested up to" version to 7.7.
* Dev - Added new GitHub Workflow to run Quality Insights Toolkit tests.
* Fix - Availability settings array handling.
* Fix - Buffer period was not applied when resources are automatically selected.
* Fix - Keep the start date selected when a booking spans over multiple months.
* Fix - Prevent random disconnection with Google Calendar.

2023.05.26 - version 1.16.01
* Dev - Add filter, `wc_bookings_product_duration_fallback`, for product duration to add support for custom duration unit.
* Dev - Resolve coding standards issues.
* Fix - Clear expired In Cart bookings tool now respects expiry time settings.
* Fix - Limit 50% width of the resources select input to 50%.

2023.05.12 - version 1.16.0
* Add - Bookable products dropdown option in WooCommerce Analytics' reports.
* Bump Woo tested up to version 7.6.0.
* Fix - Fixed time formatting by adding escape code support.
* Fix - Minimum block bookable setting appears to negate a date's booking count and buffer.
* Fix - Missing Borders on Input Fields.
* Fix - Remove shipping address of virtual products when added from the Admin.
* Fix - Store and product availability rules setting saving correctly in the Safari browser.

2023.04.12 - version 1.15.79
* Add - Encryption to stored access, refresh, and sync keys for Google Calendar.
* Add - Support for the Accommodation Booking extension's Check-in and Check-out days.
* Dev - Bump WooCommerce "tested up to" version 7.5.
* Dev - Bump WooCommerce minimum supported version from 6.0 to 6.8.
* Dev - Bump WordPress "tested up to" version 6.2.
* Dev - Bump WordPress minimum supported version from 5.6 to 5.8.
* Dev - Bump `google/apiclient` from 2.9.1 to 2.13.
* Dev - Project maintenance automation via GitHub Actions.
* Fix - 'View all orders' link label in new Bookings emails now correctly labeled as `View Booking Calendar`.
* Fix - Avoid Error Log on new Bookings.
* Fix - Cancelled and manually added bookings under the correct line items.
* Fix - Show notice if booking is invalid.

2023.03.27 - version 1.15.78
* Fix - Update availability rule helper text.

2023.03.21 - version 1.15.77
* Fix - Product-level Quantities are ignored when a Resource is removed after a Booking.
* Tweak - WC 7.5.0 compatibility.

2023.03.15 - version 1.15.76
* Add - Check booking availability on checkout validation to reduce over-booking.
* Dev - Added a 'state' parameter to the custom Google Calendar connection.
* Dev - Migrate end-to-end tests to Playwright.
* Dev - Prefix composer `google/apiclient` package with `brianhenryie/strauss`.
* Dev - Resolve PHP deprecated warning `usort(): Returning bool from comparison function`.
* Dev - Update PHP dependency to 7.2.
* Fix - "Confirm Booking" link not working from email and shows "The link you followed has expired.".
* Fix - Ensures that labels on Bookings page in My Account are able to be translated.
* Tweak - WC 7.5.0 compatibility.

2023.02.01 - version 1.15.75
* Fix - Display booking calendar on Add Booking page.
* Fix - The availability check for Min-Max days is fixed for products without resources.

2023.01.27 - version 1.15.74
* Fix - Resolves a packaging problem with our Google API library.

2023.01.25 - version 1.15.73
* Fix - Calendars show correct availability when multiple bookable products are on the same page.
* Fix - Namespacing of Google API package classes.
* Tweak - Bump WooCommerce "tested up to" from 7.2.2 to 7.3.
* Tweak - Bump tested up to WordPress version 6.1.

2023.01.17 - version 1.15.72
* Fix - Validate that manually entered dates are actually bookable.
* Tweak - Improved performance by moving availability slots' cache creation via Action Scheduler.

2023.01.17 - version 1.15.71
* Fix - Validate that manually entered dates are actually bookable.
* Tweak - Improved performance by moving availability slots' cache creation via Action Scheduler.

2023.01.06 - version 1.15.70
* Add - Filter to add meta attributes to booking calendar popup.
* Fix - Correctly validate undefined variables.
* Fix - Improve display in admin calendar to prevent overlapping text.
* Fix - Incorrect availability shown when resources are shared across products.
* Fix - Prevent fatal error on PHP 8+ when loading the booking calendar.
* Tweak - WC 7.2.2 compatibility.

2022.12.13 - version 1.15.69
* Fix - All products shown as available in Bookings Calendar block.
* Fix - Google Calendar connection issues.
* Fix - Inconsistent availability view (months vs days).
* Fix - JavaScript coding standards (ESLint).
* Fix - Remote code injection vulnerability in the `Person_types` column while importing bookable products.
* Fix - Show First and Last days as unavailable if there are no available slots.
* Tweak - Improve save and rendering performance of Google Calendar event rules via a new, separate page.
* set minDate based on from_date.

2022.11.24 - version 1.15.68
* Fix - All time ranges should be checked before marking any block unbookable.
* Fix - Ensure maximum number of person type not allowed to exceed Max Persons setting.
* Fix - Hide products from the `/slot` endpoint if their catalog visibility is set to `hidden`.
* Fix - Make calendar popup and booking details popup WP 6.1 compatible.
* Fix - Show booking details on the booking details admin page if it does not have an order.

2022.11.09 - version 1.15.66
* Add - Declare compatibility with High-Performance Order Storage ("HPOS").
* Fix - Admin access for bulk action requests.

2022.11.01 - version 1.15.65
* Fix - Prevent bookings and display end-times in unavailable times on another day.
* Fix - Resource cost not included in booking cost when `=` used in booking cost ranges.
* Tweak - Bump minimum WooCommerce version from 2.6 to 6.0.
* Tweak - Prevent unneeded ajax calls to wc_bookings_calculate_costs to improve performance.
* Tweak - Set minimum PHP version to 7.0.
* Tweak - Set minimum WordPress version to 5.6.

2022.10.26 - version 1.15.64
* Add - Provision to apply 'Booking Person Discount' from admin dashboard.
* Fix - "Min persons" setting is not working when Booking is added manually from admin.
* Fix - Booking availability for bookable products with resources.
* Fix - Changing booking status or date/time moves the booking to the last line item in the order.
* Fix - Improvements to admin side calendar view.
* Fix - Slot range checked to be inside the rule range for an hour and minute durations.
* Tweak - Skip array value booking metadata during sync booking with GCal.
* Update - Change keypress event to keyup.
* Update - Lock the `google/apiclient-services` to v0.181.0.

2022.09.26 - version 1.15.63
* Add - Bookings Helper integration (Export button on a product page).

2022.09.13 - version 1.15.62
* Tweak - Removed unwanted legacy code related to overriding block cost.

2022.08.24 - version 1.15.61
* Tweak - Deprecated "woocommerce_bookings_process_cost_rules_override_block" filter hook.
* Tweak - WC 6.8.0 compatibility.

2022.08.10 - version 1.15.60
* Fix - The View booking link does not exist on the edit order page.

2022.07.28 - version 1.15.59
* Add - A filter `woocommerce_bookings_zero_order_status` to handle order status with zero total when bookings are confimred.
* Fix - "View My Bookings" link showing in customer emails even when they are guest customers.
* Fix - Bookings Table is not Responsive at FE.
* Fix - Bookings status not shown on small & medium screens.
* Fix - Ensure screen options work properly on mobile views.
* Fix - Free bookings that require confirmation are given the Pending Payment status.
* Fix - Make sure reminder emails get sent for manually created bookings without an associated order.
* Fix - Sorting booking products by price.
* Fix - WooCommerce Bookings triggers daily fatal errors.
* Fix: Block picker visibility when resource is changed.
* Tweak - WC 6.7.0 compatibility.
* Update - Admin Bookings table layout has been upgraded.
* Update - Limit the hourly duration to a maximum of up to 24.

2022.07.06 - version 1.15.58
* Fix - Booking slot remaining count does not appear if Time zone is set to 'Display visitor's local time'.
* Fix - Bookings list API results count inconsistent.
* Fix - Ensure that you can force delete a Booking through the REST API.
* Fix - Fix Google Calendar event blocks off all product availability.
* Fix - Fix/2863 "Past days" detected properly.
* Fix - Fixes - Select date error message is shown after changes to resource selection in frontend.
* Fix - Minimum block bookable isn't being respected in Slots API.
* Fix - New Booking emails don't respect text saved in email settings.
* Fix - Show display price only when base price exists.

2022.05.27 - version 1.15.57
* Add - Add WooCommerce Bookings templates override section to WooCommerce Status page.
* Fix - Add PHP Compatibility Testing.
* Fix - Custom links added in the `new order` email.
* Fix - Enhancement - Introduced a new setting field to control Google event description overwrite.
* Fix - Ensure the Person types input fields are responsive.
* Fix - Enter a summary of all changes on this Pull Request. This will appear in the changelog if accepted.
* Fix - Fix: Ensure we validate the minimum and maximum duration.
* Fix - Migrate end-to-end tests from Travis CI to GitHub Actions.
* Fix - REST API returns days that are not bookable.
* Fix - Update composer.json to include the /languages folder in the release.
* Tweak - Bump tested up to WordPress version 6.0.

2022.05.05 - version 1.15.56
* Add - Add wc_bookings_get_end_time_html filter to modify endtime html.
* Fix - Add customer info for admin on pending confirmation email.
* Fix - Bookings that last till midnight are expanded to the next day in the admin calendar.
* Fix - Correct number of days can't be selected in some situations.
* Fix - Fix: Duplicate product title issue in the booking order emails.
* Fix - Fixed calendar Schedule panel's header visibility issue on scroll.
* Fix - Store Server Time showing on front end when Timezone settings are showing visitor's local time.
* Fix - Toggle `Max bookings per block` with `Has resources`.

2022.04.26 - version 1.15.55
* Fix - Booking Duration not being calculated automatically.

2022.04.15 - version 1.15.54
* Fix - Add confirmation before canceling a booking.
* Fix - Added the ability to checkout bookable products with the new checkout Gutenberg block. .
* Fix - Adds error callback for ajax post for time-picker.js.
* Fix - Admin Calendar Month View - last day in calendar grid shows no bookings.
* Fix - Admin calendar "schedule" month resets when selecting a product.
* Fix - Calendar shows available, even when all blocks are booked.
* Fix - Check booking availability payment method is hidden from settings.
* Fix - Fix The 12:00 AM is considered as next day's midnight, not Today's.
* Fix - Fix/3046 - Updates "Check booking availability" copy to "Subject to confirmation".
* Fix - Fix: Plugin asset URL issue for plugin installed via symlink.
* Fix - Incorrect time for CRON canceling failed orders.
* Fix - Resources block entire day when added after bookings are made.
* Fix - Updated - filter `wc_bookings_get_time_slots_html` includes 4th argument, containing the product data.
* Update - Time changed for CRON to cancel failed orders.

2022.03.25 - version 1.15.53
* Fix - Booking Time Not Available After Booking Released from Cart.
* Fix - Booking changed to "Partially Paid" even when deposit payment failed.
* Fix - Compatibility issue with WooCommerce Multi-Currency.
* Fix - Inconsistency manual created bookings vs. frontend.
* Fix - Min Block Bookable Setting "x" hours into the future does not work with day range bookings.
* Fix - Overbooking with "Customer defined blocks of".
* Fix - Partially booked slots not considered for new bookings.
* Fix - Show category in API only if it has a bookable product.
* Fix - Undefined array key "resource_id" when using 'Customer defined blocks of'.
* Tweak - WC 6.3 compatibility.
* Tweak - WP 5.9 compatibility.

2022.02.08 - version 1.15.52
* Fix - Fixes an issue with the previous build size.

2022.02.08 - version 1.15.51
* Fix - Adds overflow-x scroll to allow the availability tab to be viewable on smaller resolutions.
* Fix - Calculated price appending text "From:".
* Fix - Prices not updating based on Time Range set in Costs settings.
* Fix - The Booking cost is not showing any price when block and base cost is empty.
* Fix - The order details page shows duplicate product info when booking multiple slots of the same product.
* Fix - Try clearing out cached directory to fix tests.
* Fix - fix/1495 - Resets start date selection in calendar ranger when clicking an earli….
* Tweak - WC 6.2 compatibility.
* Tweak - WP 5.9 compatibility.

2022.01.26 - version 1.15.50
* Fix - Add duration limit unit with max/min duration notice.
* Fix - Add product information in the cancel email.
* Fix - Add-Ons info in the Pending Confirmation email.
* Fix - Added min-width to date picker and date range fields.
* Fix - Booking events status can not be recognized when looking at the calendar(s).
* Fix - Booking resources and persons toggle button is closing product data tab.
* Fix - Bump date line down in the admin calendar so it's easier to read .
* Fix - Calendar availability incorrect if customers timezone changes date. .
* Fix - Calendar has warnings if view is 'Month' selected.
* Fix - Custom availability rules with higher priority to override Google Calendar events.
* Fix - Deprecated function being used: `woocommerce_before_cart_item_quantity_zero`.
* Fix - Enhance resource cost unit label.
* Fix - Ensure end time and start time fields don't overlap in admin bookings view.
* Fix - Fix/3057 - Adds function to set selected month. Fix for highlighted month disappearing when clicking outside calendar.
* Fix - Fix: Inconsistencies in start times when resources are assigned to bookable products.
* Fix - Fix: Memberships discounts are not applied to the booking cost preview on the product's page (only in cart).
* Fix - Hide past global availabilities from settings.
* Fix - Overlapping resource availability - Incorrect slot display in the front-end.
* Fix - The default parameter is not used in the `WC_Bookings_CPT::custom_columns` hook.
* Fix - UI broken due to Booking product title on Booking >Calendar.
* Fix - Using start of week setting.
* Tweak - Cleanup of `was-in-cart` bookings.
* Tweak - WC 4.7 compatibility.
* Tweak - WP 5.9 compatibility.

2021.11.30 - version 1.15.49
* Fix - Availability of the product with multiple auto-assigned resources.
* Fix - Bring jQuery UI into our codebase instead of loading from a CDN.
* Fix - DatePicker crash issue while navigating between months.
* Fix - Deleting the quantity overrides at a product level by another person type.
* Fix - Deprecated notice with PHP 8 when viewing a Schedule in the back end.
* Fix - Error notice on unable to initialize a calendar connection.
* Fix - Fix: Google Calendar 2 way sync offset.
* Fix - address more dependency conflicts.
* Tweak - WC 5.9 compatibility.
* Tweak - WP 5.8 compatibility.

2021.10.20 - version 1.15.48
* Fix - Include `was-in-cart` bookings to database cleanup tool.
* Tweak - WC 5.8 compatibility.
* Tweak - WP 5.8 compatibility.

2021.10.05 - version 1.15.47
* Add - Filter `woocommerce_bookings_product_defaults` to override default attributes for Product Booking.
* Fix - Ensure timeframe calculations are correct when using hours in the max bookable setting.
* Fix - Prevent duplication of transient keys.
* Fix - Revert "Add the jQuery UI styles and images to our codebase".

2021.10.04 - version 1.15.46
* Fix - Date correction for bookings that cross days between user's local timezone and site timezone.
* Tweak - WC 5.7 compatibility.

2021.10.04 - version 1.15.45
* Add - Bookings made through COD mode of payment are now synced with Google Calendar.
* Add - New filter `woocommerce_booking_sync_cod_bookings` to enable/disable the COD payment sync with Google Calendar. .
* Fix - Add unique namespace to more Guzzle functions.
* Fix - Added validation for start and end dates.
* Fix - Bring jQuery UI into our codebase instead of loading from a CDN.
* Fix - Handle Google Calendar connection fatal error in a more human-readable format.
* Fix - Manually book private products.
* Fix - Padding of Restrict selectable days table in Availability tab.
* Fix - Pagination at My Bookings account section.
* Fix - Restore dropped changelog entry for 1.15.43.
* Fix - Wrong behavior of "Range of Week" rules.
* Tweak -  Document since version for `woocommerce_booking_status_changed`.
* Tweak - WC 5.7 compatibility.

2021.08.24 - version 1.15.44
* Fix - Add unique namespace to the Guzzle and Google libraries to avoid conflicts.
* Fix - Build-specific, no changelog entry needed.
* Fix - Ensure manual orders show the time in customer's timezone, not store timezone.
* Tweak - WC 5.6 compatibility.
* Tweak - WP 5.8 compatibility.

2021.07.28 - version 1.15.43
* Tweak - Introduced a new woocommerce_bookings_filter_time_slots filter to modify availability on a per-product basis.

2021.07.20 - version 1.15.42
* Fix - Fix the start date in the reminder email when the customer's timezone is different from the shop timezone.

2021.06.15 - version 1.15.41
* Tweak - Send customer email notification when unpaid bookings are canceled.
* Tweak - WC 5.4 compatibility.
* Tweak - WP 5.7 compatibility.

2021.06.01 - version 1.15.40
* Fix - can't add accommodation booking to cart from wishlist.
* Tweak - WC 5.3 compatibility.
* Tweak - WP 5.7 compatibility.
* Tweak - Send customer email notification when unpaid bookings are canceled.

2021.05.11 - version 1.15.39
* Fix - Use proper hook function closes #3071.

2021.04.06 - version 1.15.38
* Fix - Update javascript to directly support jQuery 3 without jQuery Migrate.
* Fix - Updated path to the single-product/add-to-cart/booking.php template file.
* Tweak - WP 5.7 compatibility.

2021.02.26 - version 1.15.37
* Fix - Make compatibility check for navigation work correctly in older WC versions.
* Tweak - WC 5.0 compatibility.
* Tweak - WP 5.6 compatibility.

2021.02.24 - version 1.15.36
* Fix - Dev - Fix unit testing infrastructure and make it compatible with PHP 8.
* Fix - Fix the JS error when displaying the booking detail in Calendar > Day view.
* Fix - Register menu items with WC Navigation.
* Fix - WC no longer uses SemVer, so update to support L-2 version of WC.
* Tweak - WC 5.0 compatibility.
* Tweak - WP 5.6 compatibility.

2021.01.26 - version 1.15.35
* Fix - Dev: Add new hook `woocommerce_booking_status_changed` with status values as arguments.

2021.01.18 - version 1.15.34
* Fix - Fix: Prevent critical errors by passing correct number of args to `woocommerce_email_header` in email templates.
* Tweak - WC 4.9 compatibility.
* Tweak - WP 5.6 compatibility.

2021.01.05 - version 1.15.33
* Fix - Update the positioning of the Bookings calendar in WP-Admin to fix popovers that appear off screen.

2020.12.09 - version 1.15.32
* Fix - Add compatibility for Twenty Twenty-One theme on the "My Account - Bookings" page.
* Fix - Dev - Set PHP version to 7.0.8 in composer.json for compatibility with PHP 8.
* Fix - Enqueue styles and JS only on WC screens.
* Fix - Revert "Add "My Account - Bookings" page compatibility for Twenty Twenty-One".
* Tweak - WC 4.7 compatibility.
* Tweak - WP 5.5 compatibility.

2020.11.25 - version 1.15.31
* Add - Action Scheduler version 3.1.6.
* Fix - Calendar day view showing bookings for the following day.
* Fix - Fix/issue 2991.
* Fix - Only send out a reminder email if the booking is active.
* Tweak - Improve performance when loading hourly bookable product.
* Tweak - WC 4.7 compatibility.
* Tweak - WP 5.5 compatibility.

2020.11.11 - version 1.15.30
* Fix - PHP 8 compatibility: Convert optional-before-required arguments to required.
* Fix - PHP 8 compatibility: Fix "join" function used with inverted arguments.
* Fix - Remove trait from bookings controller as its not needed there.
* Tweak - WC 4.6 compatibility.
* Tweak - WP 5.5 compatibility.

2020.10.05 - version 1.15.29
* Fix   - Issue with API not returning all slots.

2020.09.30 - version 1.15.28
* Fix   - Fatal error when viewing Bookings order.

2020.09.29 - version 1.15.27
* Fix   - Resource calendar does not switch/update after a day is selected.
* Fix   - `was-in-cart` Bookings included in All count in admin.
* Fix   - Blank time_format option makes booking times disappear.
* Fix   - Admin calendar black font on dark background.
* Fix   - PHP deprecation notice regarding implode function.
* Fix   - When retrieving ICS file, Use `get_site_url` instead of `home_url` for multisite installs.
* Fix   - New Booking emails don't respect text saved in email settings.
* Fix   - When total bookings is 10 a Next button is shown incorrectly.
* Fix   - Flush transients on version upgrade to ensure data consistency.
* Fix   - Searching for bookings doesn't work if no order was created.
* Fix   - Use woocommerce_product_addons_import_data filter to import custom addon settings.

2020.09.07 - version 1.15.26
* Fix   - Bookable products with multiple resources incorrectly showing fully booked on calendar.
* Fix   - Load created bookings including buffer time to check for availability.
* Fix   - Booking day duration not considered in the REST API.
* Tweak - Include metadata of an order item in the Booking screen.
* Tweak - Introduce feature to enable use of self owned Google Calendar API application for calendar synchronisation.

2020.08.25 - version 1.15.25
* Fix   - Replace deprecated jQuery methods.
* Fix   - Fix end times drop down for multiple resources.
* Fix   - Do not combine resources availability rules if no resource is selected.
* Fix   - All blocks were available when block end time was between 0000 and 0059.
* Fix   - Fix admin month date picker not working for certain languages in Firefox.
* Fix   - Fix a case of end times becoming available when they shouldn't.
* Fix   - Account for different block lengths during availability calculation.
* Fix   - Bug when switching days on calendar if duration is greater than 1.
* Tweak - Send admin email notification when unpaid bookings are canceled.
* Tweak - Tweak restricted days display when editing.

2020.08.13 - version 1.15.24
* Fix   - WordPress 5.5 REST API compatibility changes.

2020.07.14 - version 1.15.23
* Fix - Adjust for timezone when requesting available slots from the API.

2020.07.01 - version 1.15.22
* Fix - My account upcoming bookings cancel button hidden when in mobile view.
* Tweak - Use JSON format for translations in JavaScript files.

2020.06.05 - version 1.15.21
* Tweak - WC 4.0 compatibility.

2020.05.19 - version 1.15.20
* Fix   - Javascript error from timezones conversion.
* Tweak - Disable timezone information in customer my account page for bookings in a different timezone.

2020.05.12 - version 1.15.19
* Tweak - Display timezone information in customer my account page for bookings in a different timezone.
* Fix   - Shutdown is deprecated since version Action Scheduler 3.0 debug logs notice.
* Fix   - Fix multiply costs per person count when there are person type costs.

2020.04.29 - version 1.15.18
* Fix - Improve resources performance.
* Fix - On cart item remove clear transients for all booking products connected by a resource.

2020.04.21 - version 1.15.17
* Fix - Text domain for translation string.
* Fix - Generate only one .pot file.
* Fix - When order is reverted to Pending Payment, mark bookings as unpaid.

2020.04.14 - version 1.15.16
* Fix - Slots remaining not showing when displaying times in visitor's timezone.
* Fix - Skip missing cost rules when deleting a cost rule from the middle of the table.
* Fix - Do not send reminder if booking has passed.
* Fix - Ensure min and max duration is always 1 for products with fixed duration.

2020.03.30 - version 1.15.15
* Add - Exponential backoff for events poller errors.
* Fix - Multiply by person count is not working.

2020.03.26 - version 1.15.14
* Fix   - Reminder email not sent on partially paid booking with deposits.
* Tweak - Add a filter that allows altering google calendar poll interval.
* Tweak - Increase google calendar poll interval.

2020.03.11 - version 1.15.13
* Fix   - Fix issue with quotes translations on default email subjects.
* Tweak - Add a filter for the admin view order URL (Product Vendor compatibility).

2020.02.27 - version 1.15.12
* Add   - Add customer name to monthly and daily view on the calendar.
* Fix   - Add filter for resource duration display on booking form.
* Fix   - JavaScript ".map is not a function" error on calendar load.
* Fix   - Fatal error on backend Calendar on a booking whose bookable product was deleted.
* Fix   - Fix integration with Deposits when the order is manually set to partially paid.
* Tweak - Enlarge clickable area in Month/Day Calendar booking blocks.
* Tweak - WC 4.0 compatibility.
* Tweak - Accessibility fixes for calendar popover element.

2020.02.18 - version 1.15.11
* Fix   - Confirmation required product gives fatal error when non-bookable product is added to cart.
* Fix   - Combine admin notices on bookings removed due to inactivity.
* Tweak - Remove legacy code.

2020.02.12 - version 1.15.10
* Tweak - Add translation functions to the calendar resource duration.
* Fix   - Raw addon price should display depending on tax display options.

2020.02.04 - version 1.15.9
* Fix   - Proper escaping of attributes.
* Fix   - Sanitize recurring calendar rules to prevent fatal error.

2020.01.30 - version 1.15.8
* Tweak - Product resource label now display in Booking emails.
* Fix   - Spanning to work properly with availability rules.
* Add   - API filter for hiding unavailable slots.
* Fix   - Spanning to work properly with availability rules.
* Tweak - Product resource label now display in Booking emails.

2020.01.21 - version 1.15.7
* Fix   - Fix release date.

2020.01.20 - version 1.15.6
* Tweak - For monthly bookable products, made it more clear with a 4-digit year instead of 2-digit.
* Add   - New filter woocommerce_bookings_apply_multiple_rules_per_block to allow rule cost calculation logic to be modified.
* Fix   - Max bookable date was being ignored when getting ranges of availability blocks.
* Fix   - Product calendar styling sometimes incorrect on first page load.
* Tweak - Change date range symbol on order confirmation.
* Add   - Filter for `has_past` on Availability data objects.
* Fix   - Restrict start/end days CSS issue (Saturday not available)
* Fix   - Display of start time from Google event on bookings admin calendar.
* Tweak - WC 3.9 compatibility.

2019.11.05 - version 1.15.5
* Tweak - WC 3.8 compatibility.

2019.10.31 - version 1.15.4
* Fix   - Some available blocks showing as unavailable.

2019.10.29 - version 1.15.3
* Fix   - Undefined index PHP notice on cart.
* Fix   - Date range picker when spanning multiple days across end of month.
* Fix   - Timezone offset not applied to rules for frontend availability display.
* Fix   - Product Add-ons and prices not displaying correctly in the cart.
* Fix   - Fixed manual notifications not parsing <p> tags.
* Tweak - Change admin text to rename Global Availability to Store Availability.
* Fix   - Google calendar integration when incorrect legacy setting are present.
* Add   - Tracking for WooCommerce Bookings admin pages.
          The following data is tracked and sent to WooCommerce:
          Booking plugin version
          All Store Availability rules
          Timezone settings
          Calendar Sync Settings
          Bookable Product Settings
          User behavior on Booking Calendar admin page
          To disable this tracking opt out of WooCommerce tracking, see https://woocommerce.com/usage-tracking/

2019.08.21 - version 1.15.2
* Fix   - Early/Late recurring Google events not appearing on the calendar for some server timezone offsets.
* Fix   - Multiply cost by person or block count option when using the Product Addons integration.
* Tweak - Make month booking dates clearer in cart.

2019.08.08 - version 1.15.1
* Fix   - Confirmation email were showing raw HTML.
* Fix   - Availability for resource shown unavailable (blocked) when buffer days are used.
* Tweak - WC 3.7 compatibility.

2019.07.24 - version 1.15.0
* Add   - Admin calendar 'Schedule' view.
* Add   - Google Calendar oAuth setup.
* Fix   - Remove 1 hour offset for hour-based minimum block bookable setting.
* Fix   - Only pass metadata of current booking to Google Calendar.
* Fix   - Unhandled exceptions from Google Calendar.
* Fix   - Fatal error when syncing some recurring events from Google Calendar.
* Fix   - Inclusive/exclusive inconsistency in logic for blocking Google Events' times.
* Fix   - Show `Date` label for `Display calendar on click` mode.
* Fix   - Only resources with status publish will be able to be booked.
* Fix   - One Page Checkout compatibility - endless loading on the product page
* Fix   - Resources dropdown field showing unexpected HTML in options.
* Fix   - Show `Date` label for `Display calendar on click` mode.
* Fix   - Fatal error with Google Calendar when trying to log with debug mode off.
* Fix   - Some Google Calendar events hidden in admin calendar.
* Fix   - Timezone settings string formatting.
* Tweak - Better error handling with Google Calendar authentication
* Tweak - Admin calendar day/month view to use Gutenberg Popover.
* Tweak - Update all NPM and Composer packages.
* Tweak - Consolidated cache logic into single class.
* Tweak - Cache is disabled when WC_BOOKINGS_DEBUG is true.
* Tweak - Only show calendar connection settings if there is an active connection.
* Add   - New e-mail template: 'Booking Pending Confirmation'
* Tweak - Soft deprecated `WC_Bookings_Form::convert_to_moment_format()` replaced with `wc_bookings_convert_to_moment_format()`.
* Tweak - Soft deprecated `WC_Bookings_Form::get_posted_data()` replaced with `wc_bookings_get_posted_data()`.
* Tweak - Soft deprecated `WC_Bookings_Form::is_bookable()` replaced with `WC_Product_Booking::is_bookable()`.
* Tweak - Soft deprecated `WC_Bookings_Form::get_formatted_times()` replaced with `wc_bookings_get_formatted_times()`.
* Tweak - Soft deprecated `WC_Bookings_Form::calculate_booking_cost()` replaced with `WC_Bookings_Cost_Calculation::calculate_booking_cost()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_bookings_in_date_range()` replaced with `WC_Booking_Data_Store::get_bookings_in_date_range()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_events_in_date_range()` replaced with `WC_Global_Availability_Data_Store::get_events_in_date_range()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_global_availability_in_date_range()` replaced with `WC_Global_Availability_Data_Store::get_global_availability_in_date_range()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_all_existing_bookings()` replaced with `WC_Booking_Data_Store::get_all_existing_bookings()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_bookings_for_objects()` replaced with `WC_Booking_Data_Store::get_bookings_for_objects()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_bookings_for_objects_query()` replaced with `WC_Booking_Data_Store::get_bookings_for_objects_query()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_bookings_for_product()` replaced with `WC_Booking_Data_Store::get_bookings_for_product()`.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_latest_bookings()`. Not used in Bookings.
* Tweak - Soft deprecated `WC_Bookings_Controller::get_bookings_for_user()` replaced with `WC_Booking_Data_Store::get_bookings_for_user()`.
* Tweak - Soft deprecated `wc_booking_calculated_base_cost()` replaced with `WC_Bookings_Cost_Calculation::calculated_base_cost()`.
* Tweak - Soft deprecated `wc_booking_get_product_resources()` replaced with `WC_Product_Booking->get_resources()`.
* Tweak - Soft deprecated `wc_booking_get_product_resource()` replaced with `WC_Product_Booking->get_resource()`.
* Tweak - Soft deprecated `wc_bookings_get_start_time_html()` replaced with `WC_Booking_Form::get_start_time_html()`.
* Tweak - Soft deprecated `wc_bookings_get_end_times()` replaced with `WC_Booking_Form::get_end_times()`.
* Tweak - Soft deprecated `wc_bookings_get_end_time_html()` replaced with `WC_Booking_Form::get_end_time_html()`.
* Tweak - Soft deprecated `wc_bookings_get_time_slots_html()` replaced with `WC_Booking_Form::get_time_slots_html()`.
* Tweak - Soft deprecated `delete_booking_slots_transient()` replaced with `WC_Bookings_Cache::delete_booking_slots_transient()`.

2019.06.10 - version 1.14.5
* Fix   - Adds accommodation bookings support for WooCommerce Bookings Availability extension

2019.06.03 - version 1.14.4
* Fix   - Always use products for transient names.
* Fix   - WooCommerce Admin Compatibility.

2019.05.29 - version 1.14.3
* Fix   - Compatibility issue with API hook timing.

2019.05.21 - version 1.14.2
* Add   - Meta data table for global availability.
* Add   - Additional capabilities for more granular control of booking's features.
* Fix   - Manual Booking checks calculates using exclusive/inclusive pricing even with taxes disabled.
* Fix   - Clarified option label/description for start day restriction.
* Tweak - Performance optimization for generation of booking slots.

2019.05.08 - version 1.14.1
* Fix   - Wrong escape for bookings start time blocks.
* Add   - New filter woocommerce_booking_is_paid_statuses to allow custom booking statuses to be synced to Google Calendar.
* Fix   - Unable to view Global Availability issue.
* Fix   - Customer defined blocks durations not selectable with minutes based blocks.
* Fix   - Customer defined booking duration: minimum/maximum values does not work if block size is in minutes.
* Fix   - Customer defined block end times (hours) not calculated correctly.

2019.04.10 - version 1.14.0
* Add   - REST endpoint to get all bookable products.
* Add   - REST endpoint to get all categories that have bookable products.
* Add   - REST endpoint to get all resources.
* Add   - REST endpoint to get booking slots (available and booked).
* Add   - REST endpoint to get bookings (available and booked).
* Fix   - Customer defined blocks with different duration will not work.
* Fix   - Changing Resource resets person count to blank.
* Fix   - Prevent duplicate order status update notice.
* Fix   - Issue with Google Calendar Connection when tokens had expired.
* Fix   - Fatal error when opening admin calendar when Google recurring event is added.
* Fix   - IE11 support for calendar.
* Fix   - Admin calendar events popup details position was misaligned.
* Fix   - PHP warning when trying to display guest name in the bookings order details in certain situations.
* Fix   - Unlink products with resources when they are deleted to prevent resource display issue.
* Fix   - Add back filter `woocommerce_bookings_gcalendar_sync` to update google event during sync.
* Tweak - Bookings by slot ajax query can be paginated.
* Tweak - Update copy on duration validation message.
* Tweak - Optimized data caching for performance.
* Tweak - WC 3.6 compatibility.

2019.03.08 - version 1.13.3
* Fix   - Date Range with Time rules don't work if product has more than one resource.

2019.02.14 - version 1.13.2
* Fix   - Customer defined blocks with different duration will not work.

2019.02.06 - version 1.13.1
* Fix   - Customer defined blocks with resources will not work.
* Fix   - Incorrect data deleted for privacy erase.
* Fix   - Define class and constants before plugins_loaded.
* Fix   - Booking days adds an extra day.

2019.02.05 - version 1.13.0
* Add   - Ajax endpoint to get all bookable products.
* Add   - Ajax endpoint to get all categories that have bookable products.
* Add   - Ajax endpoint to get all resources.
* Add   - Ajax endpoint to get booking slots (available and booked).
* Add   - Created Settings section and moved Global Avaialability, Timezone, and Google Calendar options into it.
* Add   - Google 2-way sync integration.
* Add   - Introduce Action Scheduler.
* Add   - Move calendar integration to bookings settings tab.
* Add   - Store admin calendar - added datepicker for easier navigation.
* Add   - Store admin calendar - daily view - Display a detailed popover when clicking on an event.
* Add   - Use webpack for build process.
* Add   - User booking calendar - replace duration input field with start time and end time.
* Add   - WC Admin inbox notification after Bookings extension activation.
* Fix   - Bookings Addons not showing under WooCommerce > Extensions.
* Fix   - Buffers not respecting single block when they are selected.
* Fix   - Coupons give the wrong discount.
* Fix   - Customer defined blocks plus buffers calculate incorrect blocks length.
* Fix   - Customer defined blocks with buffers allow only first booking of the day to be selected.
* Fix   - Day is still showing as fully booked when switching resource.
* Fix   - HTML encoding issue in calendar connection tab.
* Fix   - No saved message feedback when saving timezone options settings.
* Fix   - Rate not applied for December Bookings 1+ years in the future.
* Tweak - Custom table and CRUD implementation for global availability
* Tweak - Rename Google Calendar Integration settings to Calendar Connect.
* Tweak - Show global availability in admin calendar.
* Tweak - Store admin calendar - daily view - UX improvements.
* Tweak - Store admin calendar - daily view - scroll to first available time in daily view.
* Tweak - Store admin calendar - monthly view - UX improvements.
* Tweak - User booking calendar - Misc minor UX improvements.

2018.11.12 - version 1.12.2
* Tweak  - Add link to WordPress timezone settings.
* Tweak  - Performance improvement for Bookable products that contain many bookable blocks.
* Fix    - Datepicker in Edit Booking fixed to honor WordPress week start day.
* Fix    - My Account page shows bookings in the site's time zone, instead of the local time zone.
* Fix    - JS error in console when trying to save a product that's not a booking. Prevents saving.
* Tweak  - Prevent loading of availability on initial page load.
* Tweak  - PAO 3.0+ compatibilty.
* Fix    - Break after first application of custom rule on a booking block.
* Fix    - Rounding issue when manually creating a booking and generating an order.
* Fix    - Day is still showing as fully booked when switching resource.

2018.10.24 - version 1.12.1
* Fix    - Fix DST browser compatibility.

2018.10.16 - version 1.12.0
* Add    - Timezone conversion option.
* Add    - Button to clear expired In Cart bookings.
* Fix    - Fix ampersands for Google calendar integration.
* Fix    - Default to first available booking date snippet.
* Update - Switch to sass for css preprocessor.
* Update - PAO 3.0 compatibility.
* Update - WC 3.5 compatibility.

2018.08.14 - version 1.11.3
* Fix    - Display issue on compatibility with Product Add-Ons on product page.
* Fix    - Clarification for calendar days restriction.
* Fix    - JavaScript error for DatePicker in International Browsers.
* Fix    - Calendar (Day) View - datepicker doesn't respect WordPress localization.
* New    - Add hook to allow bypassing block availability checker
* Fix    - DatePicker not initially loading the correct month when not current month.
* Fix    - End date doesn't respect the `woocommerce_bookings_mdy_format` filter.

2018.05.23 - version 1.11.2
* Update - Privacy policy notification.
* Update - Export/erasure hooks added.
* Update - WC 3.4 compatibility.

2018.04.24 - version 1.11.1
* Fix    - Booking Reminder Emails: Same-day Bookings Contain The Text 'tomorrow'.
* Fix    - Calendar doesn't load the correct availability for different resources.
* Fix    - Calendar not finishing loading in wp-admin screens
* Fix    - JavaScript error for DatePicker in International Browsers.
* Fix    - The ajax endpoint should not return unavailable days for products of hour/minute duration types.
* Tweak  - Refactor `get_available_blocks` parameters.

2018.04.11 - version 1.11.0
* Add    - Bookings info in dashboard widget for new bookings (monthly) and bookings that require confirmation.
* Add    - Calendar Lazy load functionality.
* Fix    - Allow Person Types Max to be blank/null.
* Fix    - Billing details overwritten when assigning new manual booking to existing order purchased by guest.
* Fix    - Booking Person Discount coupon isn't computed in the Total.
* Fix    - Buffer period not blocking slots as expected.
* Fix    - Datepicker in admin calendar day view does not honor WordPress week start day.
* Fix    - Days before existing marked unavailable incorrectly.
* Fix    - Fix PHP notices by passing through the email parameter.
* Fix    - Out of Stock setting prevents adding the product to the cart.
* Fix    - Product price includes person cost with minimum set to 0.
* Fix    - Resource costs show up incorrectly for week blocks.
* Fix    - Validation messages not showing up with required addon fields and require confirmation.
* Fix    - Visual compatibility with product addons.
* Tweak  - Add filter to override how resource quantity takes precedence over product quantity.
* Tweak  - Compatibility with WooCommerce PIP.
* Tweak  - Could not add Booking ID to notification email, now you can.
* Tweak  - Introduced filter `woocommerce_bookings_calculated_booking_cost_success_output` to modify cost output.
* Tweak  - Show when month is fully booked.

2018.01.31 - version 1.10.12
* Fix    - Added fourth arg in Confirmation emails for actions.
* New    - Bookings data included in WooCommerce core import and export functionality.
* Add    - Added compatibility for Sequential Order Numbers Pro
* Fix    - Slots available after max available time.
* Fix    - Double check product exists before attempting to get_title().

2017.12.14 - version 1.10.11
* Fix    - Order metadata not being synced with Google Calendar sync.
* Fix    - Deposit integration parent order not marked as completed when it contains a booking.
* Fix    - Failed order's related bookings is never cancelled.
* Update - Bump tested version to 3.3

2017.12.05 - version 1.10.10
* Fix   - Bookings overwriting notes made directly on Google Calendar on subsquent syncs.
* Fix   - wc_bookings_calendar_default_to_current_date filter not working when using availability rules
* Fix   - Customer defined blocks by hour durations buffering by incorrect amounts.
* Fix   - Remove activation notice when plugin is deactivated.
* Fix   - Global and product rule not overriding resource rules when calling get_blocks_in_range directly
* Fix   - Incorrect remaining count on blocks when resources overlap and are set to automatically assigned.

2017.11.01 - version 1.10.9
* Add   - Allow price overriding for all Bookings by adding equals operator in the costs range.
* Add   - Include number of persons in Booking Calendar Monthly view and Daily view.
* Fix   - Resource dropdown should only display the costs related to the resource.
* Fix   - Prevent deleting products or resources that have bookings associated with them.
* Fix   - "Booked By" column is empty if there's no email address specified for the customer.
* Fix   - Restrict Days not working when site is translated.
* Fix   - Incorrect remaining count on blocks when resources overlap.
* Fix   - Calendar not defaulting to first available date with shared resource.
* Tweak - Add CSS class to the first and the last date in the bookable-range.
* Tweak - Clearer text when customer selects a range of dates.
* Tweak - Add Onboarding notice.
* Tweak - Calendar page title.
* Tweak - Improve error feedback on calendar timepicker.
* Tweak - Input time fields when editing existing booking should be of type "time".
* Tweak - Change "Create Booking" to "Add Booking".
* Tweak - Rename `base_cost` methods to `block_cost` on bookable products to reflect the proper fields.
* Tweak - Update sanity check notices to be warnings.

2017.09.21 - version 1.10.8
* Fix   - Customer cancelled bookings were not triggering cancellation emails.
* Fix   - Incorrect text domain for translation.
* Fix   - Incorrect links for docs and support.
* Fix   - Bookings Calendar not functioning properly for RTL languages.
* Fix   - Random availability problem.
* Fix   - Calendar calculation wasn't taking into consideration days before actual booking for duration of type days.
* Fix   - Data manipulation allows bookings outside of defined blocks.
* Fix   - Orders with multiple cancelled bookings still show as "Completed".
* Fix   - PHP notice when adding bookable product that requires confirmation to the cart.
* Tweak - Pagination of "My Bookings".
* Tweak - Switch order of operations for `status_transitioned_handler`.
* Tweak - Time in admin calendar day view now uses WordPress time format.
* Tweak - Updated templates to have proper/updated headers.

2017.08.17 - version 1.10.7
* Add   - New functionality to restrict the day a booking can start on.
* Fix   - Admin calendar day view incorrect when times below 10am.
* Fix   - Bookings calendar on the backend doesn't respect time format in WordPress settings.
* Fix   - Bookings with orders created in admin had totals without taxes included.
* Fix   - Fatal error when using woocommerce_email_recipient_booking_confirmed
* Fix   - Fatal if create_wc_booking used to create booking based on parent.
* Fix   - Hour based slots overlapping midnight marks next day as partially booked even though it doesn't affect any of the slots.
* Fix   - My Account > Bookings default order to booking date instead of date created.
* Fix   - Refunded orders will update the Bookings status to Refunded.
* Fix   - Today's availability rules were being ignored.
* Tweak - Added filter for wc_bookings_get_time_slots_html.
* Tweak - Added filters to allow switching to date created for My Account > Bookings.
* Tweak - Added wc_bookings_summary_list_date filter for wc_bookings_get_summary_list.
* Tweak - Automatically open calendar when clicking on any of the Month/Day/Year input boxes.
* Tweak - Moved Booking Display to templates for orders on both front-end and admin.
* Tweak - Moved Booking Summary list to templates for orders on both front-end and admin.
* Tweak - Send confirmation email for manually created bookings without an order.

2017.07.22 - version 1.10.6
* Fix   - Error 500 when using external object cache, such as Memcached.
* Fix   - Days with availability > 1 calendar shows fully booked after 1 booking.
* Fix   - Emails are triggered when saving a booking and changes aren't made.

2017.07.19 - version 1.10.5
* Fix   - Update WC 3.x compatibilities when duplicating product.
* Fix   - Taxes not added when creating a booking from admin.
* Fix   - Admin calendar time slots has the wrong sizes and start times.
* Fix   - Resources display wrong sum of cost in frontend dropdown.
* Fix   - Resources able to be added to product twice.
* Fix   - Reminder and complete cron events not set if Booking is created without an order from the backend.
* Fix   - Fatal error when bookings used with a cached objects.
* Fix   - Email ID was the same for customer and admin booking cancelled email.
* Fix   - All day booking option was being ignored on calendar after availability refactor.
* Fix   - Missing utf8_encode function when no XML PHP module installed in google calendar integration.
* Fix   - Availability rules using Date Range calculation on the frontend.
* Fix   - "Connect with Google" does not save/update entries.
* Fix   - Availability rules with dates in the past should be ignored for performance reasons.
* Tweak - Add woocommerce_bookings_email_actions filter to allow additional Bookings emails.
* Fix   - Audit usages of get_price / price filters for Memberships/Dynamic Discounts compatibility.
* Fix   - Default price being used when price rules make price 0.
* Tweak - Do not display 'View my bookings' link if guest checkout used.
* Fix   - Incorrect date being checked when getting time slots vs availability rules.
* Fix   - Endless loop when auto completion of booking when it has no order.
* Tweak - Re-introduce adjacent buffering option for Days.

2017.06.29 - version 1.10.4
* Fix   - Memberships discounts not working.
* Fix   - Duplicating product creates multiple copies of meta fields.
* Fix   - Fatal errors when applying bookable person coupons when other product types in cart.
* Fix   - Deleting one booking deletes the whole order.
* Fix   - Leftover bookings cron hooks after booking was deleted.
* Add   - Is valid booking check to 'wc-booking-complete' action.
* Fix   - Only sync Google Calendar if the integration is configured.
* Fix   - When a resource is attached, booking multiple days shows partials days when they are not.
* Fix   - Base cost did not include resource cost unless there were persons.
* Fix   - `/bookings/` slug always redirects to Blog page.
* Fix   - Undefined offset when viewing order with persons added to the booking.
* Fix   - All day booking option was being ignored when parsing bookings for calendar availability.
* Fix   - Delete database entries on uninstall only in case `WC_REMOVE_ALL_DATA` is true.
* Fix   - Manual POST request can bypass calendar validation.
* Tweak - Update order status if booking status changes to paid or unpaid.
* Tweak - Update maximum resource count indicator on calendar block.
* Fix   - Undefined variable notice for booking_persons when editing booking.
* Fix   - Issue where availability rules were not applied against duration calculation.
* Tweak - Refactor `find_fully_booked_blocks` to be consistent with the time slots display.
* Fix   - Not needed 'to' label added for Date Range (Global Availability) when also Date Range with time is added.
* Fix   - Virtual orders were being marked as processing after being marked as completed.
* Tweak - Hide adjacent buffering option for Days, as it is not used for Days.
* Fix   - During checkout with person type that has cost that equals 0 cart will default to person type with non 0 cost.

2017.05.30 - version 1.10.3
* Fix   - Display price is not changed on the front-end when updated in the back-end.
* Fix   - Unlink person types from product instead of deleting them, to allow existing bookings to refer to them properly.
* Add   - Option to remove unused person types under WooCommerce > Status > Tools.
* Fix   - When resource/persons limit is hit the entire day is blocked, not just the hour.
* Fix   - Skip persons with zero count for booking summary in emails and orders.
* Fix   - Resources ranges not exluding times from bookable products.
* Fix   - Admin day calendar view showing wrong time for bookings spanning multiple days.
* Fix   - Price shows as Free even though person types have value.
* Fix   - Display Cost does not display From in all cases.
* Add   - Option to take WP TimeZone into consideration for `wc-booking-reminder` and `wc-booking-complete` scheduled events.
* Fix   - Coupon updates for WC 3.0 compatibility.
* Fix   - Bookings spanning 2+ days shows up as being booked the day before on admin Day View calendar.
* Tweak - Update booking summary in order and emails to only display single day/time if booking starts/ends on same day.

2017.05.11 - version 1.10.2
* Fix   - Booked shared resource blocks off availability for other products.
* Fix   - Issue where persons number disappears during booking process.
* Fix   - UI issue with the CSS classes for partial/fully booked in the case of automatic resource assignment.
* Fix   - Trashing a booking will no longer trash its order if order has other items.
* Fix   - Compatibility issue with Product Add-Ons integrations.
* Fix   - Update compatibility with Deposits when the status of the order is 'Partially Paid'.
* Fix   - Blank description on Google Calendar.
* Fix   - Booking with persons and resources availability incorrect.
* Fix   - Issue with availability spanning midnight.
* Fix   - Issue with Booking with multiple resources showing booked days as available.

2017.04.20 - version 1.10.1
* Fix   - Error when deleting product on admin.
* Fix   - Persons not showing up in the Edit Booking page.
* Fix   - Negative values of available quantity.
* Fix   - Reset email data for each trigger to not send previously calculated data.
* Fix   - Make buffers apply in front by shifting times accordingly.
* Fix   - Logic for available times where some times were blocked while they shouldn't have been.

2017.04.03 - version 1.10.0
* New   - 3.0 + full CRUD support.
* New   - Dropped < 2.3 support.
* Tweak - Guest name displaying incorrectly in admin.
* Fix   - Priority no longer overrides global availability rules. Priority should have override order and rule level (Global, Product, Resource ).
* Fix   - Blocking a time slot on a certain day of the week blocks it for the whole week.
* Fix   - Display of clients' names (for "guests") in All Bookings dashboard. Client name only showed as guest with no other information.
* Fix   - Rules set on resources do not return the correct hour slots on a specific day.
* Fix   - Error when you create a booking in admin without order.
* Fix   - Persons count as booking no longer worked.
* Fix   - Error notices upon saving with WPML
* Fix   - Fully/Partially booked days not showing up as expected.
* Fix   - Time on specific dates were applied to all dates.
* Fix   - Buffer periods are ignored in certain cases.
* Fix   - Google calendar also showing no booking items on the order.
* Fix   - PHP 7.1 warnings when implicitly doing calculations
* Fix   - Partially booked days not showing up on the calendar when resources are customer selected.
* Fix   - Check rules against first slot only setting is being ignored.
* Fix   - Order address blank when creating a booking with order in admin.
* Fix   - Buffer periods rendered following slots as not bookable.
* Fix   - Partial refund of an order with multiple bookeable orders should cancel booking that matches refunded order item.
* Fix   - Days that have no available blocks should show as fully booked on the calendar.
* Fix   - Update the save_post action to properly hook only on supported post types used in meta box.
* Tweak - Display product ID in create booking admin screen.

2016.12.15 - version 1.9.15
* Fix   - Minute blocks shows not available when paired with time range with date rule type.
* Fix   - Blogname not shown when cancelling bookings via bulk order.
* Fix   - Persons not counted as bookings for the day duration type booking product.
* Fix   - Availability rules ignored for hour duration type in certain configurations.
* Fix   - Form fields don't save due to non-indexed form arrays.
* Fix   - Fully booked days showing up as partially booked days and can be over booked.
* Fix   - Product add on not calculating on when the duration unit was set to day.

2016.11.30 - version 1.9.14
* New   - Better support for Deposits partialy paid status.
* Fix   - Css for selected dates not showing selection on partially booked days.
* Fix   - Admin calendar view, previous button can't go from Jan to December previous year.
* Fix   - Different rule types couldn't be used on the same product as priorities were not respected across types.
* Fix   - Unavailable slots showed when rule time range goes beyond midnight (e.g. 9:30 PM - 06:30 AM )
* Fix   - Function has_person_qty_multiplier condition was compared with the wrong value types.
* Fix   - Message shown to user on load when product ad onn exists on bookings product
* Fix   - Fully booked days class added to days not available for bookings.
* Fix   - Date with time showed days as not bookable when only a few hours was set is not available.
* Fix   - Multiple bookings per order cancellation emails polluted email data.
* Tweak - Replace js .size() function calls with .length property checks.
* Tweak - Remove the plus sign next to resource to avoid confusion and show the full price per duration unit.

2016.11.08 - version 1.9.13
* New   - Buffer period adjacent enable setting.
* New   - Filter `woocommerce_booking_form_get_posted_data` to filter the data within an ajax request.
* New   - Filter `woocommerce_bookings_fully_booked_days`.
* New   - Filter `woocommerce_booking_is_booked_on_day`.
* Tweak - Add booking status strings to status array and ensure that they can be translated.
* Fix   - Cache is not emptying properly.
* Fix   - In cart bookings not showing unavailable in calendar.
* Fix   - Minimum blocks bookable into the future.
* Fix   - Buffer period not correctly applied.
* Fix   - Booking spanning into multi-day shows 0 slots available.
* Fix   - When manually creating booking for a guest the admin id is assigned.
* Fix   - When manually creating booking for a guest, guest was not showing correctly in dropdown.
* Fix   - get_resource cache can return wrong data due to transient name is not always unique.
* Fix   - Confirmation email sent with wrong dates when creating and changing a booking date/time in admin.


2016.09.06 - version 1.9.12
* Fix - Date with time range availability were all showing not available.

2016.09.02 - version 1.9.11
* Fix - Email recipients not showing "customer" in email settings.
* Fix - Adding existing resource to bookable product, resource quantity is always set to 1
* Fix - Phantom partial booked days flag showing when no bookings is made on that specific day.
* Fix - When using click to display calendar and custom range, manually entering date does not update the price.
* Tweak - Performance on page load to use progressive ajax loading of calendar in background.
* Tweak - Renamed main plugin filename.
* Tweak - Add its own My Bookings page under My Account
* Tweak - Updated translations

2016.07.16 - version 1.9.10
* Fix - Booking order status not being prefixed in db.
* Fix - Remove heavy booking object cache from being saved to db causing performance issue.
* Fix - Booked blocks were not displaying on the calendar.
* Fix - When resources is not enabled, default it to customer assignment to prevent unbookable blocks.
* Fix - When display cost is used, don't calculate cost for resources.
* Fix - Partially booked days were not showing on the calendar for duration minute and hours.
* Fix - Booking rules priority number was not being honored.
* Fix - Calendar showing unavailable blocks when ordering the rules.
* Add - Filter to account for different country calendar formats 'woocommerce_bookings_mdy_format'.

2016.06.21 - version 1.9.9
* Fix - Revert commit d5eb4b6 which caused calendar to display unbookable blocks.

2016.06.17 - version 1.9.8
* Fix - WC 2.6 request confirmation showing even when no bookable product in cart.
* Fix - When range of days ( not today ) are selected, today's date becomes available.
* Fix - Compatibility issue with Product Addons where custom multiplier would calculate wrongly.
* Fix - Unable to pay for confirmed booking if coupon reduces price.
* Tweak - Small performance change.
* Add - Filter wc_bookings_product_get_available_blocks

2016.04.22 - version 1.9.7
* Fix - Warning on single product page caused by booking objects transient stored
  as empty string. The reason for this is when false is stored via set_transient,
  it will return empty string when retrieved via get_transient.

2016.04.19 - version 1.9.6
* Fix - Make sure booking costs that span beyond end of the year are supported.
* Fix - Sync booking when booking is edited from edit booking screen.
* Fix - Check the booking resource against the selected date to prevent wrong
  display of free available slots when restricted resource is used.
* Fix - Add a false value if order_ids return empty during search. This fixes
  issue of SQL syntax error when searching in Bookings.
* Tweak - Add logging mechanism, especially when booking is added to or removed from
  cart. This would help people troubleshooting issue where status is changed
  to 'was-in-cart' for unknown reason.
* Fix - Limit status changes to only affect qualifying bookings. This should
  prevents status updated to 'was-in-cart' issue.
* Fix - Don't convert time in UTC to local time in WP when scheduling an event.
  WP cron uses UTC time, not local time in WP. Start / end date also stored in UTC,
  so the diff is already performed in UTC. This fixes issue in which reminder
  emails were not sent one day prior the start date.
* Fix - Notices when creating booking with existing order manually.
* Fix - Set default resource availability quantity to 1 which fixes issue of a product
  with resources is not bookable.
* Fix - Buffer period is not respected when checking between blocks.
* Fix - Construct Date-object from UTC to ignore browser's TZ and incorrect
  calculated duration on particular timezones.
* Fix - Check automatic resource assignments on each date to make sure a fully
  booked date is not available instead of partially booked.
* Fix - Use admin_url instead of WC()->ajax_url() for ajax_url in class-wc-booking-form.php
  WC()->ajax_url() uses relative scheme that might cause if fronted site is SSL'ed.
* Fix - Use translated string "Booking ID" when checking the item.
* Fix - Reset tags on email body before each trigger which fixes tag placeholders.
  were not substituted properly.
* Fix - Removed deprecated args causing notices displayed in confirmation email.
* Tweak - Cache booking objects in booking's controller. There are some performance
  improvements queued for next milestone too.


2016.02.05 - version 1.9.5
* Localisation - Updated language files.
* Tweak - Expand "Remaining Spaces" to work with automatically assigned resources.
* Tweak - New Bookings specific add-on section under WooCommerce > Add-ons.
* Tweak - Show a notice when viewing a booking if it's add-on plugin no longer is installed.
* Fix - Prevent the multiply cost checkboxes from displaying on non booking products when using the product add-ons extension.
* Fix - Prevent booking data from fatal erroring if an add-on like the accommodation bookings plugin is removed.
* Fix - Prevent start times that end after date times from showing up when using buffer times and 'not available' for default availability.
* Fix - Booking in "My Account" not created with Confirmation Requried Booking + New User account
* Fix - Missing ending double quotes in order note of booking status transition
* Fix - Use full unit 'hour' when using date/time str in strtotime


2016.01.27 - version 1.9.4
* Tweak - Sync bookings without orders (manually created bookings) to Google Calendar.
* Tweak - Humanized order status in order column of bookings list.
* Fix - If the new resource input is canceled, the resource input area will no longer be blocked.
* Fix - Format the datetime form based on site language (matches behavior for day form).
* Fix - Fix for possible availability problems using time range blocks.
* Fix - Remove extra + from being added to cost string when using resource block/base costs.
* Fix - Prevent extra border from showing on time slots when using TwentySixteen as your theme.
* Fix - Save the correct (booking, not order) ID when saving booking details on the admin screen.

2016.01.13 - version 1.9.3
* Fix - Make sure time rules only overwrite the day when default_availability is set to off, otherwise handle as we did before.

2016.01.07 - version 1.9.2
* Tweak - When manually creating bookings that either have no order or are attached to an existing order, the status will now default to "confirmed" instead of "pending confirmation".
* Fix - Prevent multiple AJAX requests from happening when using the range picker.
* Fix - Fix ranges on non-product rules.
* Fix - There was an issue when trying to display both date and time rules on a calendar where time rules might not display correctly. This no longer happens.

2016.01.06 - version 1.9.1
* Fix - Typo in month names.
* Fix - Compatibility fix for WooCommerce Accommodation Bookings 1.0.

2016.01.05 - version 1.9.0
* Feature - Support for the Accommodations extension -- making it easier for you to create and manage bookings for accommodations.
* Feature - Time ranges for custom dates -- you can now set availability and cost rules for hours on specific dates.
* Tweak - Some developer improvements, including making it easier to create custom booking statuses, and improvements to the date/time picker code.
* Fix - Subscriptions Compatibility

2015.12.22 - version 1.8.7
* Fix - Use GMT offset when creating cron jobs for booking events.

2015.12.16 - version 1.8.6
* Fix - Ignore local time zone when calculating dates from the date picker.

2015.12.14 - version 1.8.5
* Fix - WooCommerce 2.5+ Compatibility.
* Fix - UI improvements for Person & Resource tabs.
* Fix - Label display bug on check-out/order page.
* Fix - Multipler calculation for hours.

2015.11.25 - version 1.8.4
* Fix - An additional fix for accurate buffer calculations.
* Tweak - New filter to change custom bookings labels.

2015.11.24 - version 1.8.3
* Fix - Rules ending at midnight will now properly be parsed.
* Fix - Google Calendar events now properly include the correct end date.
* Fix - Make sure person discount applies correctly.
* Fix - Previously if the last day of the month happened to fall on the same day of the week as your "start of week setting", events would not show. This is now fixed.
* Fix - Minute buffer calculation fix, making sure all proper blocks display.
* Fix - Blocks smaller than 30 minute chunks will no longer get cut off on the admin calendar.
* Fix - Prevent the partial booked indicator from sometimes showing on a previous day to a day with bookings.

2015.11.11 - version 1.8.2
* Fix - If there are 0 time slots left, make sure not to show the block at all.
* Fix - Resolved an issue with avaibility times and buffer times.
* Fix - Prevented a validation error when updating buffer times in the admin to 0 (blank would still work).

2015.11.10 - version 1.8.1
* Fix - Fix a bug with hours spanning days that can potentially show (still unbookable) slots on other days

2015-11-9 - version 1.8.0
* Feature - Time based bookings can now extend into the next day.
* Feature - Rules can now have priorities set to create custom availability schedules.
* Feature - New coupon type to offer discounts per person on bookings with multiple people.
* Feature - A buffer period for time and day blocks can now be set.
* Tweak - Our "partially booked" indicator now works for day blocks with multiple spots.
* Tweak - Tooltips have been added on the booking calendar to explain what each color means.
* Tweak - New get_wc_booking_statuses() to return an array of booking statuses.
* Tweak - Use wc_date_format/wc_time_format instead of hard-coded format strings for default date & time formats.
* Fix - create_wc_booking now supports person types and correctly passes person info.
* Fix - Show days as available if time based rules say so.
* Fix - Fatal error that occurs when setting a booking's booked product to N/A.
* Fix - Associate booking details with an order, even if the booking and order are created separately.
* Fix - Only send booking cancelation emails for bookings and not orders.
* Fix - Next/Previous tooltip text can now be translated.

2015.8.19 - version 1.7.13
* Feature - Show # of persons on the "All Bookings" screen
* Fix - Clear transients after an order is canceled by a user
* Fix - Show an error message if an invalid date is entered
* Fix - Fatal error that sometimes occurs when canceling a "requires confirmation" booking
* Fix - Search now correctly pulls out bookings when you search for customer info
* Fix - Correctly calculate the quantity of spots needed in create_wc_booking if the multiplier is set to yes & multiple persons are booking
* Fix - The last block now correctly shows the number of remaining spaces
* Fix - Correctly set the minimum date when using the date range picker

2015.08.10 - version 1.7.12
* Fix - Fatal error when booking blocks with automatically assigned resources
* Fix - Accounts created during the checkout process are now correctly associated with their bookings
* Fix - Display the correct block availability on the front end after trashing, untrashing, canceling, or deleting a booking
* Fix - Default to first available date on calendar rather than showing the current date
* Fix - "Person" editing on bookings without custom person types works again

2015.07.15 - version 1.7.11
* Tweak - Show all person types for a product when editing a booking.
* Tweak - Use woocommerce_bookings_fully_booked_statuses filter in calendar.
* Tweak - Change fields order based on the language of the website.
* Tweak - Show notice when you click the booking button too early.
* Fix - Hide in cart bookings on calendar.

2015.07.06 - version 1.7.10
* Fix - Fix min date check preventing hour blocks from being displayed.

2015.07.03 - version 1.7.9
* Fix - Missing booking_resource variable.

2015.07.02 - version 1.7.8
* Feature - Show blocks left on time picker when partially booked.
* Tweak - Block picker CSS styling.
* Fix - Check min and max settings when dealing with available bookable minutes and hours.
* Fix - Added date sort order when filtering by booking.

2015.06.18 - version 1.7.7
* Feature - Allow multiple bookings which require confirmation in the same order.
* Tweak - Don't publish bookings for COD orders.
* Tweak - is_purchasable filter.
* Tweak - Hide grand total for addons.
* Fix - fatal error with bookings without order ID.
* Fix - Day blocks blocking previous day #448
* Fix - adjust_booking_cost for product addons correction.

2015.05.27 - version 1.7.6
* Feature - Added Admin Booking Cancelled email.
* Tweak - Show cancelled bookings in All list.
* Tweak - Added filter woocommerce_bookings_remove_inactive_cart_time.
* Tweak - Added pricing filters and actions.
* Tweak - Update order meta along with booking data.
* Tweak - Cancel booking on full refund.
* Tweak - Check today for availability.
* Fix - Product addons multipliers.
* Fix - Cancel time string should match time zone.
* Fix - Email content when sending multiple bookings at once.
* Fix - File upload in product addons 2.7.4.

2015.04.21 - version 1.7.5
* Tweak - Added 53rd week to availbility UI.
* Tweak - New action: woocommerce_bookings_pricing_fields
* Tweak - New action: woocommerce_before_booking_form
* Fix - Potential XSS with add_query_arg.
* Fix - Clear cache when cancelling bookings.
* Fix - Set customer user of booking when adding customer to order.

2015.03.31 - version 1.7.4
* Remove ajax loader gif.
* Fix multiplier when used on person block costs.
* Fix - Turn off stock management on save.
* Fix - get_bookings_in_date_range_query and all day bookings.

2015.03.06 - version 1.7.3
* Feature - Mark partially booked days.
* Fix - End date interval calc in get_available_blocks().
* Fix - prevent_cancel method.

2015.02.24 - version 1.7.2
* Feature - Add order notes when booking statuses change.
* Fix - Notices.
* Fix - Handle cart removal/restore.
* Fix - Hide pay button when pending confirmation.
* Duplicate persons and resources when duplicating a bookable product.
* Tweak - Added some filters.
* Tweak - When only 1 auto-assigned resource is present, get availability for that resource.
* Tweak - Improved admin emails for bookings requiring and not requiring confirmation.

2015.02.11 - version 1.7.1
* Fix - get_bookings_in_date_range_query filtering.
* Fix - Calendar date query.

2015.02.02 - version 1.7.0
* Fix - Tweak cart expirey to ignore 'unpaid' bookings between checkout and payment.
* Fix - Block availability checking to hide 0 avail blocks.
* Fix - Set order ID before triggering status update on new booking.
* Fix - New booking email triggers.
* Fix - Special chars being sent to google cal.
* Refactor - Use custom queries to get bookings - improves performance.
* Refactor - Use transient caching to query bookings to save on resources.

2015.01.30 - version 1.6.4
* Fix - Missing get_base_tax_rates method.
* Fix - Month picker with no min date.

2015.01.28 - version 1.6.3
* Fix - Small 2.3 fixes.
* Fix - Styling tweaks to in-cart booking status.
* Fix - Day calculation between months.

2015.01.27 - version 1.6.2
* Fix for UTF-8 errors when syncing with Google Cal

2015.01.26 - version 1.6.1
* WC 2.3 compatibility (chosen -> select2).

2015.01.22 - version 1.6.0
* Feature - Added block costs for person types.
* Feature - From/to range selectors for 'day' based bookings with customer defined lengths.
* Feature - Check availability of bookings in user carts, and remove inactive carts after 15 mins.
* Fix - Loop start/end blocks slightly differently to ensure blocks shown when only 1 block is available.
* Fix - date range block pricing.
* Fix - Correctly multiply the total cost per booking by the number of persons. #328
* Fix - Improved block calculation when dealing with customer defined intervals. #332
* Fix - Extra triggers for new booking notification. #336
* Fix - When creating a booking in admin, remove taxes if prices include tax. #324
* Fix - Apply costs to blocks of minutes correctly.
* Tweak - Revised custom range block costs to apply block cost to the days intersecting the rule only. #333
* Refactor - Removed the need for a separate has_available_block_within_range() method.

2014.12.09 - version 1.5.1
* Fix - PHP Version conflict with persons output.

2014.12.08 - version 1.5.0
* Feature - Added Days of the Week to pricing rules.
* Feature - Customers can cancel bookings based on product settings.
* Feature - Display booking meta data from Products Add-ons on Google Calendar.
* Dev - Added CSS classes on My Bookings table and booking form.
* Dev - Introduced filter woocommerce_bookings_resource_additional_cost_string.
* Fix - Revised cost logic to apply correctly to multiple hours and days. **due to logic changes please test existing products**
* Fix - Fixed calendar day view when there are many bookings.
* Fix - Booking reminders are sent only if both the booking and the order are paid.
* Fix - Fixed typo in the costs tab in the product admin page.
* Fix - Made admin calendar respect the 'week starts on' setting.
* Fix - Do not cast _wc_display_cost as float.
* Fix - Fixed a bug that synchronized bookings twice when editing a booking.
* Tweak - get_available_blocks_html method for faster queries frontend. Props to Aydin Bahojb-Khoshnoudi.
* Tweak - Changed 'pending' post type status to 'pending-confirmation' to avoid conflicts with core.
* Tweak - Don't send new booking email for unpaid orders. Send when ready for confirmation/paid.

2014.11.20 - version 1.4.13
* Fix - Made get_base_cost() take min person rule into consideration.
* Fix - Fire action when cancelling a booking from the edit booking screen to prevent orders being cancelled that contain multiple bookings.
* Fix - Fixed booking dates displayed on the 'My Account' page.
* Fix - Only show email intro when billing info set.
* Fix - Ensure confirmation email gets sent after manually editing booking.
* Fix - Fixed availability check on multi-day bookings/bookings spanning midnight.
* Fix - Added filter booking_form_fields to allow fields custom order
* Tweak - Added 'display cost' option per-product to override the cost shown on the frontend.

2014.11.17 - version 1.4.12
* Fix - Fixed meta_box_save notice.

2014.11.17 - version 1.4.11
* Fix - Fixed the behavior of bookings that requires confirmation when the order total is 0.
* Fix - Fixed number of 'Remaining places'.
* Fix - Fixed min date when min allowed booking date is set to hours.
* Tweak - Added extra customer/order info to view booking page.
* Tweak - Block off day when all resources are taken and resources are automatically assigned.
* Tweak - Added sanity check notices to view/edit booking screen.

2014.10.30 - version 1.4.10
* Dev - Filter to define how many days before users get reminded about their booking.
* Fix - Only allow changes to date formats in get_start_date() when format is not defined.
* Fix - Calendar PHP 5.2 compat.
* Fix - When dealing with 1 automatic assigned resources, set 0 (all) in fully booked days var.
* Fix - Fix first block setting.

2014.10.16 - version 1.4.9
* Fix - More fixes for december.

2014.10.14 - version 1.4.8
* Fix - ParseInt octal integers.
* Fix - Correctly show bookings on the calendar in december.

2014.10.01 - version 1.4.7
* Fix - Ensure time: rules get mapped to a day.
* Fix - Only cancel orders if the order has 1 booking inside.
* Tweak - Hide person type from cart is qty is 0.

2014.08.26 - version 1.4.6
* Feature - Customer Sync Across Booking and Order.
* Fix - Allow booking forms to function independently when multiple are shown on the same page.
* Fix - wc_booking_sanitize_time function to make time saving more reliable across browsers.
* Fix - Modify "Improved range rule handling. Only enable days when hours are defined if no other day based rules are present" to ignore global rules.
* Fix - Last day when booking hours and have set a day based max date.
* Tweak - Use Minimum duration when getting base cost/from cost.

2014.08.15 - version 1.4.5
* Fix - Fix error in create_wc_booking.

2014.08.12 - version 1.4.4
* Feature - Send an email to the user for cancelled bookings.
* Feature - Improved range rule handling. Only enable days when hours are defined if no other day based rules are present.
* Fix - Improved admin messages after editing bookings.
* Fix - Set from price based on 'min' value for person types.
* Fix - Make bookings emails function when no order ID is set.
* Fix - Notices when creating a booking without an order.
* Tweak - Use get_base_cost() to set the _price meta for a bookable product.
* WC 2.2 Compatibility.

2014.07.28 - version 1.4.3
* Fix - Auto assigned resources didn't pull the rules from all resources.
* Fix - Resources with times, but no times on product, didn't show blocks.
* Fix - Hide costs when form changes.
* Fix - When hour/minute blocks, ensure block costs are increased for each block (not just 1)
* Fix - Tweaked divide/multiply logic for block costs.
* Fix - Corrrectly link custom to manually created booking.
* Fix - Resources/persons stay when switched to simple product.
* Fix - Error when booking product is not set when syncing to google.
* Tweak - Add resource button text.
* Tweak - Per additonal block text.
* Tweak - Link to booking in admin in notification.

2014.07.01 - version 1.4.2
* Fix - Stop all day bookings form taking up next day.
* Fix - Allow same day/month booking.
* Fix - End date availability check for customer defined blocks.
* Tweak - Show disabled book now button rather than keep it hidden.

2014.06.26 - version 1.4.1
* Feature - Option to 'create booking' and add it to an existing order.
* Fix - Resource issue which would make entire day fully booked.
* Fix - Removed duplicate Max bookings per block field.
* Fix - Range of weeks/months costs.
* Fix - Changes to day/month/week/custom cost rules. Rather than break out at first match and multiply by duration, handle each matching rule independently and run through all rules. This allows, for example, a different cost for a different day without affecting other booked days.
* Fix - Set _price so things like price filters work.
* Fix - If there are no costs/additonal costs, label as free.
* Fix - Weeks display on booking form when greater than 7 days.

2014.06.18 - version 1.4.0
* Feature - Global resources. Resources can be shared between products and have their own availability settings.
* Feature - WP_LANG_DIR support for localisations.
* Fix - complete_order should return 'completed' status, not 'complete'.
* Fix - start and end date display in certain emails.
* Fix - Correctly set 'has_additional_costs' when saving products.

2014.06.17 - version 1.3.4
* Fix - When getting blocks, ensure no blocks are returned over the end time. Corrects issues with automatically assigned resources.
* Fix - Don't hide tax settings.
* Fix - Link bookings in day view to booking.
* Fix - When outputting available time blocks, base interval should be used.
* Fix - Show first available date on calendar rather than showing the current date.

2014.06.10 - version 1.3.3
* Feature - Option to keep calendar visible.
* Fix - Ensure global availability rules run in the correct order when getting available blocks.
* Fix - Make calendar update when changing the date input boxes manually on the datepicker.
* Fix - Validate min and max date when dealing with time slots.

2014.06.06 - version 1.3.2
* Feature - Allow blocks to start at un-uniform times.
* Fix - When setting times on a day, make that day available on date picker.
* Fix - Show a different blocks available message for hour and minute blocks.
* Fix - Hide unavailable times automatically when using customer defined blocks.
* Tweak - Adjusted calendar styling and made it display other months.

2014.05.29 - version 1.3.1
* Fix - Error when resources are automatically assigned.
* Fix - Add classes to year/month/day fields so they can be re-arranged.
* Fix - When checking for fully booked days (date time), check if there are blocks left on the current day.
* Tweak - When showing 7 days (or any number divisible by 7), show 'weeks' for the label.

2014.05.27 - version 1.3.0
* Feature - Google Calendar integration.
* Feature - Ability to define block as well as base cost rules.
* Feature - Link to booking from order page, and back again from booking page.
* Feature - Get blocks (on a date) via ajax so only available blocks get displayed.
* Feature - Avaialability can be defined by day.
* Dev - Wrap booking get_price_html in standard woocommerce_get_price_html filter.
* Fix - Store booking times in YmdHis format which is more WP friendly and avoid MySQL timezone abnormalities.
* Fix - Date picker availability when durations are days/minutes.
* Fix - Fix last week of the month in calendar view.
* Fix - Booking heights in calendar view.
* Fix - Fix min date bookable logic.
* Fix - Prevent booking of dates/times in the past. Sorry timetravellers.

2014.05.19 - version 1.2.3
* Fix - Backend saving of product ID.
* Fix - Base cost to include min person type cost.
* Fix - Custom get_price method for wider plugin compatibility

2014.05.14 - version 1.2.2
* Feature - Option to attach .ics file from "send notification" form.
* Tweak - Added WordPress time format option in datetime picker.
* Tweak - Changed some labels in admin.
* Fix - Automatically assigned resources.
* Fix - Ensure save_product_data only triggers for bookings.
* Fix - Minute checks when duration is customer defined.

2014.05.13 - version 1.2.1
* Fix - addon block multiplyer.
* Fix - time rules near midnight.
* Fix - Empty regular/sale prices on save.
* Fix - Notices when creating a booking without an order.
* Fix - MySQL datetime search was ignoring 24 hour time formats.

2014.05.09 - version 1.2.0
* Feature - Attach .ics calendar files to confirmed and reminder emails for customers.
* Tweak - manage_bookings capability for admin pages.
* Fix - persons display in emails.
* Fix - When getting blocks for times, don't check the day.
* Fix - More robust time checking in check_availability_rules_against_time().
* Fix - For customer defined blocks, ensure the total duration is shown after making a booking.
* Fix - Ensure cost rules check all days being booked.
* Fix - Price display after adding booking to cart.

2014.05.08 - version 1.1.0
* Feature - For the booking form and bookable produce, respect shop tax display settings.
* Feature - Added option to check only the first block against availability rules.
* Fix - date-picker.js so each day being checked for availability uses default setting.
* Fix - Handle hours when getting max Date.
* Fix - get_bookings_in_date_range() by using 24 hour time format.
* Localisation - Included POT file.
* Localisation - sv_SE translation (Thanks Patricio).
* Dev - Hooks for integration with other plugins.
* Dev - Added a woocommerce_booking_get_availability_rules filter for modifiying rules per product programatically.

2014.05.06 - version 1.0.0
 * First Release.
