Appointments Changelog
A comprehensive record of all changes, improvements, and fixes made to the WooCommerce Appointments plugin across all versions.
[5.0.0] - January 2, 2026
Improvements
- Deprecation of wc_enqueue_js() in WooCommerce 10.4 addressed.
- Add animation to license activation button to avoid confusion, when modal doesn't open instantly.
- Updated all translations.
- Abandoned cart should not send the cancelation email.
Fix
- WooCommerce Payments multicurrency functionality now correctly converts currency in cart/checkout.
[5.0.0-rc3] - December 12, 2025
Improvements
- Add option to apply/limit inventory/quantity per day instead of per slot (default).
- Add back the deprecated/misspelled hook for BC 'wc_apointments_check_appointment_product'.
- Add Billing option to create new account for a Guest customer in modal for adding new appointments.
- Make What's New page under Appointments in admin permanent, hide it in later smaller updates.
- Hide notice after the license is successfully activated for the plugin.
- Initial admin calendar view is for the week, preload appointments for the whole month regardless.
- Appointments API v2 should load faster by reducing meta queries and eliminating N+1 queries.
Fixes
- Force open "Product data" tab that in some cases always stays collapsed.
- WP 6.9 Command Palette doesn't work - creates empty appointment.
- Appointment not saved in final checkout step. Add comprehensive logging and fallbacks to prevent this.
- Pagination for Appointments in My Account page broken after WooCommerce update.
[5.0.0-rc2] - December 10, 2025
Improvements
- Create internal rest api to cover all plugin aspects from a single source of truth.
- When appointment is edited in admin, add detailed changes to order note.
- Add Screen Options for admin calendar, where user can switch to legacy calendar temporarily.
- Make all API text strings not translatable to reduce translation workload, end user does not see them.
- Speed up front calendar loading.
- Use same loading animation for the new admin calendar and front-end calendar.
- Complete front calendar ajax call quick with daily buckets.
- Front calendar staff in querystring now performs only 1 ajax call.
- Updated Product Add-ons to 8.1.2
- Add what's new page for the 5.0.0 release in admin when user updates to 5.0.0 or activates it.
- Inventory maximum will be enforced through validation with cost calculations.
- Update license key activation process.
- Updated all translations.
- Apply user selected color scheme in admin across appointment pages
Fixes
- Front calendar does not have product ID properly set on init.
- Do not show notice to add appointable product on plugin activation if any already exist.
- All staff assigned together issue fix applied to multiple levels for future reference.
[5.0.0-rc1] - December 4, 2025
Improvements
- Adding a function to ensure postmeta indexes exist for appointment date queries. Plugin reactivation/update needed.
- Add daily fail check for the appointments indexed health to make sure they are in check at all times.
- Make backfill for indexing fail proof by saving progress by each batch processed.
- Update readme file in root with new build instructions.
- Add warning in admin calendar when REST API is disabled for the site.
- Make front-end calendar resilient to errors in external scripts so it loads at all times.
Fixes
- ESbuild corrupts JS during minification and removes dependencies so minified JS files are not working as expected.
- Indexed path does not consider global rules correctly.
- Generate slots for days that are booked out, to avoid skipping days when checking for availability.
- Backwards compatibility with PHP 7.4 to ensure compatibility with older configurations.
- Admin calendar not rendering unavailability for date based rules.
- Hide normal dropdown before select2 dropdown renders for staff selection.
[5.0.0-beta9] - December 2, 2025
✨ Feature
- Updated and modernized build process, pure NPM without Grunt and complexities, no compiles from crap like Webpack.
Improvements
- Named constants over magic values, created WC_Appointments_Constants.
- Make sure NPM does not execute git commands without approval.
- Added plugin hook validation for all hooks so we do not push broken actions/filters.
- Added PHPUnit test to run tests on functionality automatically.
- Load appointments to admin calendar instantly and preload all views dynamically.
- Structure code with better semantics for input/output expectations.
- Document main code functions better with better explanations.
- Linted all translation strings and translations comments and fixed all remaining issues.
- Linted all CSS and JS files with updated rules and fixed the remaining issues.
- Add better fail checks and validation so rules reach horizon at all times.
- Make sure SSE works on multisite installations fine and resets last event ID correctly.
- Reduced plugin delivery code size by 20% due to optimizations and removal of redundancy.
Fixes
- Fixed all hooks with own script that validates them automatically during build process now.
- Make sure appointment status is not null at any point.
[5.0.0-beta8] - November 27, 2025
✨ Feature
- Atomic reservation operations that handle race conditions and prevents double appointments at high traffic.
Improvements
- Updated v2/appointments and v2/availabilities API to use indexed path when within horizon and enabled.
- Updated v2/appointments and v2/availabilities API to use scope(s) to return available/unavailable range.
- Admin calendar should not only show unavailability from rrules, but also consider exceptions.
- Admin calendar filters should sort product and staff alphabetically.
- Admin calendar filter for staff should show avatar/gravatar.
- Admin calendar appointment view modal should show avatar/gravatar for customer.
- Admin calendar has ability to confirm/cancel appointment instantly.
- Admin calendar loads appointments slightly faster on initial load.
- Admin calendar appointment view popup should show skeleton until elements are loaded inside.
- Admin calendar Should load appointments and availabilities once and avoid double fetching.
- Admin calendar should show reload button when 403 API error is shown.
- Admin calendar should follow the same rules hierarchy server side uses.
- Integrate WooPayments multi-currency with new appointment creation modal in admin.
- Use indexed results for the appointments API when in range and enabled.
- Updated all translations.
- Admin modal for creating appointments should use formatted dates that are easily readable.
Fixes
- Bug fix #1014, Admin calendar not showing rules in the background.
- Unavailability not showing ok in admin calendar when switching views.
- Do not update duration in appointment creation modal, when selecting add-on that has no duration.
- Unavailability not showing ok in admin calendar in month view.
- Bug fix #839, Appointment card in the calendar doesn't show the discounted price of the appointment.
- SSE should reconnect after errors and work reliably at all times.
- Bug fix #1225, Admin calendar should not duplicate appointments/rules when they are updated.
- Account for tax when creating appointments in admin modal and make sure to calculate order totals correctly.
- Appointments API should return appointments that overlap with the requested date range, not just those completely within it.
[5.0.0-beta7] - November 22, 2025
✨ Features
- Live real-time Admin Calendar where user can create/move/cancel appointments from the calendar.
- Live real-time Admin Calendar works 2-ways and shows appointments/rules instantly after being created/edited anywhere.
- Introducing WebHooks, initially for appointments and availabilities.
- Introducing SSE, used for live stream of updated appointment and availabilities.
Improvements
- Add order note when editing appointment in admin calendar.
- Admin calendar appointment should be represented with the set appointable product color.
- Admin calendar should load appointments as first paint and availabilities concurrently.
- Admin calendar changes should add order note for every change.
- Cancelled appointment in admin calendar have reduced opacity, same as past appointments.
- Updated all translations.
- Move external scripts to /vendor folder and only registere minimized versions.
Fixes
- Make sure appointment does not stay in cart, status transitions and order ID is queried after DB cache.
- Add availability rule validation to block empty availability saves.
- Add guards to prevent multiple same-time openings of appointment creation modal in admin.
- Price calculations with add-ons selected is off in some cases, negative price must be properly included.
- Fix translations in file templates\order\admin\appointment-display.php, escaping dropped translations.
[5.0.0-beta6] - November 17, 2025
Improvements
- Compatibility with WordPress 6.9.
- Added downloadable items to the confirmation email.
- Compatibility with WooCommerce Twilio SMS Notifications 1.19.3.
- Updated Product Add-ons to 8.1.1.
- Time zone calculations fallback to UTC when timezone is not set.
- Make indexed path very fast and avoid appointment-day bucketing.
- Make Rest API /slots indexed path very fast with option to combine staff and pagination.
- Rest API for /slots can be used as paged_stream with fast track to slots.
- Rest API for /staff show show all staff, when product isn't set.
Fixes
- Modal for creating appointment price editing styling issue.
- Modal for creating appointment not loading correctly on some pages in admin.
- REST API /appointments cancelled status doesn't work.
- Staff assignment not working, when all staff are assigned together.
- Some slots for staff are shown, but are not available.
- When changing the appointment quantity, it doesn't update it in the order.
- Memcached might cause multiple new order email. Prevent same status set multiple times.
- Memcached might cause appointments to not be tied to order.
- Memcached might revert changes in 2-way gcal sync.
- Memcached might cause appointments to not go to 'paid' status.
[5.0.0-beta5] - November 13, 2025
✨ Feature
- REST API v2 added with full support for GET, POST, PUT, DELETE and PATCH.
Improvements
- REST API uses WooCommerce’s permission check in public read endpoints.
- Do not duplicate Confirmation email if sent at the same time to same email address (customer and admin).
- All API calls fully documented in code.
- Appointments API returns start_utc and end_utc in ISO 8601 format.
- Updated all translations.
Fixes
- Add include_sold_out option to indexed path.
- Product with no staff does not show occupancy indicators in calendar correctly.
- Undefined variable $is_next_day in rule manager.
[5.0.0-beta4] - November 10, 2025
✨ Feature
- Add COGs for appointment edit screen (WC 10.3 feature). Internal price of goods/services to monitor.
Improvements
- Modal for creating appointments should only use time dropdown instead of html5 time selection.
- Use date_i18n() instead of date() when editing appointment in admin.
- Compatibility with WooCommerce 10.3.
- Creating appointment in modal includes simple actions after appointment has been created.
- Modal for creating appointments now includes payment methods.
- Modal for creating appointments should trigger actions selectively and only when needed.
- Modal for creating appointments opens product search instantly after being opened.
- Appointment form block change/edit/view buttons moved to block toolbar.
- When manual re-indexing, first flush all the cache and drop the indexed results, do not overwrite.
- When manual re-indexing, finish in one go until your reach the horizon.
Fixes
- Modal not saving day and month duration appointments correctly.
- Re-index untrashed appointments.
- Add-ons image swatch does not keep preselected value.
- Add-ons called twice which corrupted the output in some cases.
- Confirmed appointments trigger multiple actions unnecessarily.
- Bug fix #1021, overnight appointment not checking availability for next day.
- Bug fix #1218, multiple appointment forms not working with auto-select on same page.
- Bug fix #1203, same staff on different products not working ok with hour/minute duration.
- Bug Fix #1215, shows non-bookable slots and end is not enforced in rules correctly.
- Bug Fix #1194, added safeguards to prevent scheduled notifications being sent in a loop.
- Bug Fix #1212, padding from product in the appointment not taken into account.
- Bug Fix #1195, was-in-cart appointments created and added to order .
- Stop Sync same multievent creation by combining a short-lived atomic lock and an idempotent preflight search.
- When no staff selected, slots do not have correct quantity computed or are missing.
- Deleting availability rules does not delete them from index instantly.
- Product auto-select skips current day.
[5.0.0-beta3] - October 30, 2025
✨ Feature
- Creating appointments in admin through modal.
Improvements
- Custom pricing rules: base cost applies if appointment is within rule range by part or as a whole.
- Custom pricing rules: slot cost applies for each slot calculated by intervals.
- Allow creating new appointments in admin that are not available.
- Manual re-indexing shows gradual progress and runs in small chunks of 50 items per run.
Fixes
- Fixed issue #1208, where showing slots that are not available.
- When interval is longer than available time, it shows no slots for that day.
- Indexing custom:daterange rules might add additional day.
- time:range and custom:daterange overnight rules not working fine.
- Default add-on header text in product edit screen wrongly wrapped with <p></p>.
- Indexing could skip current time if start date/time was in the past.
- custom:daterange rule until midnight blocks the whole next day.
- Add 30 days grace period for rules to be :expired and hidden from admin.
[5.0.0-beta2] - October 18, 2025
✨ Features
- Introduce Availability Filter block.
- Introduce Appointment Form block.
Improvements
- Max quantity available normalization across product/staff/rules.
- Re-indexing indicators should be more apparent.
- Manually saving lots of availability rules is now possible without server adjustments.
- Updated all translations and added strings for new features.
- Updated analytics code rendering for Staff selection.
Fixes
- Staff sync not working correctly for new users.
- Normalize hooks with typos and make sure it works both ways.
[5.0.0-beta1] - October 15, 2025
✨ Feature
- Introduce indexing or availability rules and appointments.
Improvements
- Improved default date selection when you opt for first available slot selection.
- Updated Product Add-ons to 8.1.0.
- Product Add-ons display control over heading for each section.
- Compatibility with WooCommerce 10.2.
- Google Calendar sync now works with better logic.
- Sync cancelled instances or recurring events as exceptions.
Fixes
- Automatically assigned (all staff together) doesnt check all staff's availability.
- WP update handling metaboxes collapses whole product edit screen on staff toggle.
- Remove persistent notice when appointment has been removed from cart.
- Month picker querystring not updating.
- RRule should block the whole days with time range for daily duration products.
- Availability from not working ok with daily duration for custom:daterange rules.
- Products that go overnight can be overbooked - no check for actual availability.
- Google Sync is slowing down Appointments and Check out process.
- Padding not working fine in some occasions, when duration and intervals are different.
- Fixed Cart Coupon not working ok when canceling an appointment.
- interval larger than duration might cause issues.
- Monthly duration doesn't jump to the first available month.
- Make sure get_cart is not called before wp_loaded action.
[4.26.4] - August 23, 2025
Fix
- Return $appointments to filters to avoid breaks with custom code.
[4.26.3] - August 22, 2025
Fix
- Exclude expired availability and cost rules.
[4.26.2] - August 22, 2025
Improvement
- Compatibility with WooCommerce 10.1.
Fixes
- Updated compatibility with WooCommerce Sequential Order Numbers Pro.
- Make sure expired availability rules are not included.
[4.26.1] - August 21, 2025
Fix
- Caching start/end times breaks capacity rules.
[4.26.0] - August 20, 2025
Improvements
- Avoid multiple appointments query and cache the query.
- Updated php rrule to 2.6.0.
- Clean up old availability rules. Old rules have '%:expired' added to 'range_type'.
- RRules loading times are faster.
- Optimize function get_appointment_ids_by for better performance.
Fixes
- Make sure appointments query skips false objects from DB (caching issue).
- Mislabeled months availability rule with week count (52) instead of month count (12).
- 'jquery-tiptip' script missing 'dompurify' dependency.
- Syncing custom statuses to Google Calendar not working.
[4.25.2] - July 20, 2025
Improvements
- Compatibility with WooCommerce 10.0.
- Updated Product Add-ons to 7.9.1.
Fix
- Clear appointments from cart even ifWooCommerce hold stock options are set to zero.
[4.25.1] - June 16, 2025
Fix
- Filter typo 'wc_apointments_sync_with_padding' is written as 'wc_appointments_sync_with_padding'.
[4.25.0] - June 15, 2025
✨ Feature
- Add revenue/sales by staff in WC Analytics.
Improvements
- Option to apply product padding to synced rules with a filter 'wc_appointments_sync_with_padding'.
- Updated Product Add-ons to 7.9.0.
- Compatibility with WooCommerce 9.9.
- Option to filter timezone options with filter 'woocommerce_appointments_wp_timezone_choice'.
- Added new action hook 'woocommerce_after_' . $this->object_type . '_object_save'.
- Added new action hook 'woocommerce_appointment_maybe_schedule_event'.
- Added new action hook 'woocommerce_appointment_clear_cron_hooks.
- Added new filter hook 'woocommerce_appointments_stop_order_delete'.
- Added new filter hook 'woocommerce_appointments_stop_order_update'.
- Added new filter hook 'wc_appointments_staff_display_name'.
- Added product padding info to synced event.
Fixes
- Undefined variable $wp_button_class.
- Filtering by appointment product type in WC Analytics not working correctly.
- Navigation compatibility with WC 9.9.
- Missing param in woocommerce_appointments_gcal_sync_order_meta.
- Addons with Images are missing the "none" option.
[4.24.0] - April 26, 2025
Improvements
- Compatibility with WordPress 6.8.
- Privacy compatibility with WooCommerce.
- Updated compatibility with Polylang for WooCommerce 2.1.4.
- Added duration variable for AutomateWoo.
- Add order related variables to AutomateWoo.
- PHP 8.4 compatibility for implicitly defined variables.
- Updated all translations.
- Minimum PHP requirement bumped to 7.4.
Fixes
- Some translations loading too early since WordPress 6.8.
- Fatal error when removing staff from appointment.
- Time slots not available for staff, when they should be.
[4.23.1] - April 14, 2025
✨ Feature
- WooCommerce Email Preview full integration.
Improvements
- Make sure email classes are not redeclared with external extensions.
- Updated Product Add-ons to 7.8.1.
Fix
- Missing $product object for WooCommerce Payments extension.
[4.23.0] - April 12, 2025
Improvements
- Compatibility with WooCommerce 9.8.
- WooCommerce minimum supported is 9.6.
- Updated integration with WooCommerce Deposits 2.3.7.
- Updated integration with WooCommerce Deposits by Webtomizer 4.6.9.
- Updated integration with WooCommerce Payments 9.2.0.
[4.22.8] - March 13, 2025
Improvements
- Updated Product Add-ons to 7.7.0.
- Max capacity can now be defined above inventory limit to suit availability rules defined capacity.
Fix
- Cancelled appointments do not get deleted for staff in synced calendar.
[4.22.7] - March 10, 2025
Improvements
- Product add-ons CSS fixes.
- Updated php rrule to 2.5.2.
Fix
- Custom pricing rules not saving correctly.
[4.22.6] - March 8, 2025
Improvements
- Updated Product Add-ons to 7.6.0.
- Hide appointment add-on options in admin different product types.
- Make sure 'require confirmation' payment method is always available.
- Updated all translations.
- Added missing plural forms for Hebrew translations.
- PHP 8.4 compatibility for custom pricing fields.
Fix
- Cancelled appointments do not get deleted in sync in some cases.
[4.22.5] - March 5, 2025
Improvement
- Deprecated 'wc_appointment_get_timezone_string' in favor of 'wc_timezone_string'.
Fix
- Cancelled appointments do not get deleted in sync in some cases.
[4.22.4] - February 27, 2025
Improvements
- Backwards compatiblity with WooCommerce Twilio SMS Notifications extension.
- Make sure appointment quantity cannot be set as zero in admin.
Fixes
- WCML not working if multicurrency is disabled.
- Ensure that the 'WooCommerce Appointments' gateway remains hidden on the new WooCommerce Payments settings page.
- Do not run sync of cancelled appointment twice.
- Canceling an appointment doesn't remove it from staff's synced gCal.
[4.22.3] - February 19, 2025
Improvement
- WooCommerce Twilio SMS Notifications 1.19.0 not calling get_cart() correctly.
[4.22.2] - February 19, 2025
Improvements
- Reset selected time slots when switching months or years on the calendar.
- Compatibility with WooCommerce Twilio SMS Notifications 1.19.0.
- Updated all translations and improved plural forms for Hebrew.
Fix
- Error with WooCommerce Multilingual & Multicurrency (5.4.0).
[4.22.1] - February 16, 2025
Improvements
- Compatibility with WooCommerce 9.7.
- WooCommerce Multilingual 5.4.0 compatibility.
- Updated Product Add-ons to 7.5.0.
- All formated order meta data now synced with Google calendar event.
Fix
- Deleting synced event in staff's gCal doesn't cancel it on the site.
[4.22.0] - February 13, 2025
Improvements
- Updated Product Add-ons to 7.4.0.
- Remove additional unnecessary strings for gcal event sync.
- Log errors on appointment / appointable product query.
- Compatibility with WooCommerce 9.6.
- Compatibility with AutomateWoo 6.1.5.
- Compatibility with WooCommerce Multilingual 5.3.9.
- WPML multicurrency for addons not working.
- Compatibility with WPML Multilingual CMS 4.6.15.
- Updated code build process to match PHP 8.3.
- Updated all translations and added new add-ons strings.
- Better file loading structure.
Fixes
- Analytics translation for filtering by Appointable products.
- TM Extra Product Options not syncing to gCal.
- Removed redundant 'notranslate' class as it is added on fields directly.
- Google calendar sync can offset time for 1 hour unintentionally.
- iOS and Firefox issue with too many addons.
- Changing time of synced app in gCal syncs it back with wrong time.
- Changing staff won’t syn to Gcal.
- Staff 2-way sync for multiple staff doesn't work properly.
- Make sure different time zones on website and Google calendar work ok together in all cases.
- Reminder email before send checking uses UTC instead of local time.
[4.21.8] - December 3, 2024
Improvements
- Updated Product Add-ons to 7.2.1.
- Compatibility with WooCommerce 9.5.
Fix
- Product Add-ons quantity field not updating price.
[4.21.7] - December 2, 2024
Improvements
- Move core plugin functions to load earlier.
- Add-ons plugin activation loading for both admin/frontend.
- Updated moment-timezone-with-data.js lib to v0.5.45.
- Updated moment-with-locales.js lib to v2.30.1.
Fixes
- PHP 7.4 error correction. Though PHP 8.2+ is required.
- REST API: usort fix for PHP 8.0+.
[4.21.6] - November 29, 2024
Fix
- Final correction in 4.21.+ saga.
[4.21.5] - November 28, 2024
Improvements
- Load integrations early after plugins are loaded.
- Remove Select2 scripts and styles and only use Select2 from WooCommerce.
Fix
- Google calendar sync PHP error.
[4.21.4] - November 27, 2024
Improvements
- Filter ‘get_appointment_products_args’ includes all args.
- Move $qrey_vars in get_appointments_for_user function.
Fix
- Appointable product edit screen broken.
[4.21.3] - November 26, 2024
Improvements
- Updated Product Add-ons to 7.2.0.
- Updated Slovenian translation.
Fixes
- Google calendar sync not working.
- Exporting appointments not working.
- Email notifications not working.
- Appointments permalink in my-account not working.
- Requiring confirmations not working.
[4.21.2] - November 22, 2024
Improvement
- Remove 2 metadata fields in synced gCal.
Fix
- Appointments shortcodes not working.
[4.21.1] - November 20, 2024
Improvements
- Remove deprecated WooCommerce Admin plugin menus.
- Updated Product Add-ons to 7.1.2.
- Compatibility with WordPress 6.7.
- Compatibility with WooCommerce 9.4.
- Added additional 'notranslate' class to prevent plugin from transating fields.
- Filter ‘get_appointment_products_args’ should include ‘author’.
Fix
- Translations not working (for non English sites).
[4.21.0] - October 7, 2024
Improvements
- Clear cache only when post object is defined for the appointments.
- Improved compatibility with Polylang for WooCommerce.
- Fixed strings to Hebrew translation.
- Updated Product Add-ons to 7.1.0.
- Updated all translations and adjusted add-ons strings.
- Compatibility with WooCommerce 9.3.
- Use pretty uniform pretty time duration display.
- SMS "Customer Confirmation message" missing info.
- Removed option to edit order inside appointment edit screen in admin.
- Added filter to allow not updating gCal description on appointment update.
- Updated php rrule to 2.5.1.
Fixes
- PHP 8.2 error when empty array present.
- Recurring events in gCal not blocking out times.
- gCal recurring event blocking out the wrong time.
[4.20.0] - June 29, 2024
✨ Features
- Added WC Payments multicurrency support.
- Added Appointable product to Analytics for filtering.
Improvements
- Better integration with WooCommerce Payments gateway.
- Add-ons integration added earlier, better compatibility with external plugins.
- Updated Product Add-ons to 6.8.4.
- Handling failed orders with appointments added back with additional validations.
- Bump "WC requires at least" to version 8.7.
- Compatibility with WooCommerce 9.0.
Fixes
- Add-ons work with WC Payments for appointable products.
- Updating manually added Appointment in Order can create critical error.
- Timezone visible in admin for non-timezone appointments.
[4.19.1] - May 22, 2024
✨ Feature
- Integration with Official WooCommerce Stripe Gateway.
Improvements
- List WooCommerce plugin as a requirement for Appointments to work properly.
- Updated Product Add-ons to 6.8.3.
- Compatibility with WordPress 6.5.
- Compatibility with WooCommerce 8.9.
Fixes
- Uncaught Error: Class ‘WC_PAO_Admin_Notices’ not found.
- Report dashboard count translation error.
[4.19.0] - March 26, 2024
✨ Features
- Add a DATE add-on custom field.
- Appointments saved with a site's timezone and customer's set timezone (optional).
- Integration with AutomateWoo extension.
Improvements
- Updated all translations.
- Updated and added strings to Hebrew translation.
- Updated Product Add-ons to 6.8.0.
- Revert Appointment status to "in-cart" when order fails to enable re-payment.
- Compatibility with WooCommerce 8.7.
Fixes
- Importing addons globally does not work.
- Missing View cart button on individually sold appointments.
- Clear cache when appointment is trashed/untrashed.
- Can't reorder addons.
[4.18.2] - February 22, 2024
Improvement
- Simplified each order item ID call to speed the query.
Fixes
- Blocks for appointments not loading, remove version checking as core supports it.
- Exporting admin created appointments with tax is wrong.
[4.18.1] - February 16, 2024
Improvements
- Updated Product Add-ons to 6.6.0.
- PHP 8.3 compatibility.
- Updated all translations.
- Compatibility with WooCommerce Deposits 2.2.5.
- Compatibility with WooCommerce 8.6.
- DB length of the calendar event ID in availability rules set from 100 to 255.
- Improved loading times for the time slots.
Fixes
- Product Add-ons import not working.
- Manual appointment with customer not working.
- WooCommerce Deposits stutus set as paid for non-deposit appointments.
- Adding appointments in admin with WooCommerce 8.6+.
[4.18.0] - November 10, 2023
Improvements
- Compatibility with WordPress 6.4.
- Include quantity field as hidden even when customer cannot choose the qty.
- Removed excessive caching that could cause query issues.
- gCal additonal staff ID checks when syncing.
- Updated all translations.
Fixes
- Free products status stays in-cart instead of paid.
- Big issue when booking multiple appointments in one order with 100% discount.
- Addons add a + sign even if the value is negative - fix it.
- Skip staff ID's on sync attempt when empty.
- Cannot assign appointments to existing orders with COT enabled.
- WooCommerce TM Extra Product Options not working, when product quantity is missing.
[4.17.4] - November 7, 2023
Improvements
- Compatibility check with WooCommerce TM Extra Product Options 6.3.2.
- Compatibility with WooCommerce 8.2.
- Updated Product Add-ons to 6.5.0.
- Better integration with Product Add-ons blocks.
- Updated all translations. Added lots on new strings.
- Compatibility with WordPress 6.3.
- PHP 8.2.8 compatibility.
- Updated Product Add-ons to 6.4.5.
- Radio Addons add a "none" feature people don't want.
- Updated php rrule to 2.4.1.
- Compatibility with WooCommerce 8.0.
- Hidden input forms don't need a label.
- Prevent quantity editing for appointable products.
- Unnecessary call to constructor of extended WC_Appointment_CSV_Exporter class.
- Do not cancel appointments with failed payments, unpaid status is sufficient.
- Added filter 'woocommerce_appointments_gcal_remove_from_gcal'.
- Updated php rrule to 2.3.2.
- Updated rrule.js to v2.7.1.
- Updated Product Add-ons to 6.4.3.
- Compatible with PHP 8.1.9.
- Removed Action Scheduler library since it is included with WooCommerce since 3.0.
- Compatibility with WordPress 6.2.
- Compatibility with WooCommerce 7.8.
- Updated all translations. Added lots on new strings.
- Updated Moment.js timezone lib to v0.5.43.
Fixes
- Additional checks to make sure only appointments are rendered in templates.
- Some addons missing closing DIV element - breaks layout of the site.
- gCal for staff not working.
- Addons checkbox missing closing DIV element - breaks layout of the site.
- Adding appointment in admin to existing order not working.
- Adding appointment in admin redirect is wrong.
- Customer cancelled appointment does not cancel the TAX.
- Cart block product quantity editing disabled.
- Bug with untrash_post.
- unneccessary pao_ids in gCal event after.
- FUE (Follow Ups) integration update.
- Fix Hebrew translation.
- Restore trashed Appointment triggers FATAL ERROR.
[4.16.1] - November 28, 2022
Fix
- Do not cancel unpaid orders.
[4.16.0] - November 28, 2022
✨ Features
- Support for High-performance Order Storage ("HPOS"), also known as Custom Order Tables, "COT".
- Structure to support WooCommerce blocks.
- Ability to checkout appointments that require confirmation with the new WooCommerce blocks.
Improvements
- Simplified appointment page for customer accounts.
- Pricing override slot rule redundant.
- Updated Product Add-ons to 5.0.2.
- Set minimum PHP version to 7.0.
- Set minimum WordPress version to 5.6.
- Set minimum WooCommerce version to 6.0.
- Compatibility with WooCommerce 7.1.
- Remove redundant cost calculation for overrides.
- Hide appointments payment gateway in the admin as it has no configuration.
- Mark the confirmed appointments order as complete if the total is zero.
- Removed legacy code for appointable product setup.
- Option to register scripts as the type of 'module'.
- Renamed gateway name/ID from 'wc-appointment-gateway' to 'wcappointmentsgateway'.
- Updated all translations.
Fixes
- Avoid PHP warnings when adding appointment manually.
- Delete transient of appointment removed from cart to free up the product slots.
- Do not change a failed order to "pending" when the appointment goes to "unpaid".
- Appointments list API results count inconsistent.
- Show category in API only if it has a appointable product.
- REST API returns days that are not appointable.
- Hide products from the
/slotendpoint if their catalog visibility is set tohidden.
[4.15.0] - October 21, 2022
Improvements
- Beginning the switch to ES6 in JS files.
- Remaining chars in add-on fields duplicated.
- Compatibility with WooCommerce 7.0.
- Compatibility with WordPress 6.0.
- Updated Product Add-ons to 5.0.0.
- Filtered statuses for the Follow up emails.
Fixes
- Inventory not taken into account when rescheduling in frontend - overbookings possible.
- The tax string on single product page is displayed twice for Appointable products.
[4.14.8] - May 3, 2022
Improvements
- Updated Product Add-ons to 4.9.0.
- Compatibility with WooCommerce 6.4.
- Updated all translations.
Fixes
- was-in-cart status not removed and can build up in the backlog.
- German, Dutch and French translation issues.
- WPML availability rule quantity not copied.
[4.14.7] - January 27, 2022
Fix
- Product Add-ons Subtotal never shown in 4.14.5.
[4.14.6] - January 27, 2022
Improvements
- Replaced all dashicons for the calendar with HTML character.
- Appointment number can now also accept strings from external plugins.
Fixes
- Product Add-ons Subtotal never shown in 4.14.5.
- TM Product Extra Product Options plugin and Add-ons positioning issue in cart.
[4.14.5] - January 26, 2022
Improvements
- Compatibility with WordPress 5.9.
- Updated compatibility with Polylang for WooCommerce 1.6.2.
- Updated Product Add-ons to 4.5.0.
Fixes
- Polylang staff costs and quantity erased on translated products.
- Datepicker in admin shows html instead of icon from WP 5.9.
- WC product Addons translation not working.
[4.14.4] - January 2, 2022
Improvements
- Added 'woocommerce_appointments_product_defaults' to filter product defaults.
- Added better compatibility with the Square payment plugin.
- Compatibility with WooCommerce 6.1.
- Updated Product Add-ons to 4.4.0.
Fix
- Pagination at My Appointments account section.
[4.14.3] - October 8, 2021
Improvements
- Replaced more array() instances with shorthand [] instance.
- Updated Spanish translations.
- Added new translated strings to all languages.
- WooCommerce Payments multicurrency support for add-on fields.
Fixes
- Some strings in "appointment-summary-list.php" are not translatable since 4.14.1.
- Admin calendar should include the tax amount for listed appointments.
- All new products (even simple) have the 'Virtual' option checked.
- Saved customer ID for the appointment not shown.
- Multi-day duration does not highlight selected days on disabled dates.
- Pagination at My Appointments account section.
[4.14.2] - October 2, 2021
Improvements
- Updated Product Add-ons to 4.2.0.
- Products sold individually now work the same as default WC functionality.
- Updated all translations.
- WooCommerce Payments integration support.
Fixes
- Heading for confirmation emails might be empty with external plugins.
- WPML multicurrency does not work ok for appointments created in admin.
- Reminder emails not always sent, when they should be.
- Wrong time zone auto selected due to caching.
[4.14.1] - September 26, 2021
Fixes
- md5() has array instead of string.
- When more slots are scheduled than available, the slot should not be visible.
[4.14.0] - September 17, 2021
✨ Features
- Send email to admin/staff when customer reschedules the appointment.
- Add the 'sold individually' option for appointable products.
Improvements
- Compatibility with WooCommerce 5.7.
- Simplified echos to esc_html_e and esc_url_e.
- Updated all translations.
- Added 'woocommerce_appointments_cancel_appointment_redirect' &
Fixes
- Properly escaped appointment name and status.
- Wrong Appointment Duration on Reschedule.
- Added robust appointment validation in admin as well.
- REST API visible to everyone with a link - should not be.
- http_build_query() PHP8 warning.
[4.13.1] - July 6, 2021
Improvements
- Send customer email notification when unpaid appointments are canceled.
- Updated Product Add-ons to 4.1.0.
- Percentage based fee for add-ons for NON Appointable products.
- Better sanitization for the appointment ID display.
- Removed "WooCommerce Create Customer on Order" integration.
- Updated all translations.
Fix
- Reschedule button does not work outside My account pages.
[4.13.0] - June 15, 2021
✨ Feature
- Phone orders: add customer (billing) data, when adding appointments in admin.
Improvements
- Compatibility with WooCommerce 5.4.
- Compatibility with WordPress 5.8.
- Updated all translations.
- Option to skip cache for the "get_appointment_ids_from_order_item_id" method.
- Updated Product Add-ons to 4.0.0.
Fixes
- Add-ons console error when required fields are selected.
- Availability filter widget not counting for the start day.
- Missing closing <div> on the appointment edit screen.
- Select add-ons do not show selected options on page reload.
- When using radio select add-ons, the providers selection is reset on page reload.
- Cart adding appointments twice.
- Staff all together not working ok.
- Selecting staff can result in rendering HTML instead of staff images.
[4.12.0] - April 16, 2021
Improvements
- Compatibility with WooCommerce 5.2.
- Updated Product Add-ons to 3.7.0.
- Updated all translations.
- Only add appointment status in 'view-order' endpoint, order already has this.
- REST-API filter appointments by customer_id.
- Availability widget filter should include the end date.
- Added 'wc_appointments_before_find_scheduled_day_slots' for filtering posted data.
Fixes
- Default date not working correctly.
- Auto updater not working.
- Staff selection now only loads slots for the selected staff.
- Cancel and Reschedule buttons now have nowrap style to prevent letter breaking.
[4.11.9] - March 22, 2021
Improvements
- Add filter 'woocommerce_appointments_gcal_sync_twoway_enabled' for two way sync.
- Add filter 'woocommerce_appointments_sync_from_gcal_event_start' for event sync.
- Removed Select2 override classes for the admin fields.
- WooCommerce Follow Up Emails appointment statuses trigger error.
[4.11.8] - March 20, 2021
Improvements
- Attach user to appointment status changes.
- Additional check for $product object (better compatibility with other plugins).
- Re-tested compatibility with WooCommerce Follow Up Emails 4.9.13.
Fixes
- Availability filter not formatted correctly as yyyy-mm-dd.
- User not queried correctly after the product import.
- Appointment customer not showing correctly.
- Exporting/importing add-ons not importing duration.
- Added was-in-cart appointment status to the list of all statuses.
[4.11.7] - March 14, 2021
Improvement
- Removed code for very old WooCommerce versions not supported any more.
Fix
- Payments can remain unpaid when payment gateways complete orders early.
[4.11.6] - March 12, 2021
Improvements
- Prioritize WC_Customer data over pulling customer info from orders.
- Updated French translation.
- Cached WC_Order and WC_Customer queries for the appointment object.
- Better code standards (phase 1).
- Updated Product Add-ons to 3.5.0.
Fixes
- Flush cache for products with single staff.
- Don't cancel already cancelled appointment during sync.
- Recurring events can sync with 1 hour difference (DST issue).
[4.11.5] - March 1, 2021
Improvement
- Add 'woocommerce_appointments_gcal_sync_order_meta' filter for order meta sync.
Fixes
- Make compatibility check for navigation work correctly in older WC versions.
- Updating appointment changes from the synced gcal event can break time.
- Sync appointment changes to the calendar event's description.
[4.11.4] - February 27, 2021
Improvements
- Register menu items with WC Admin Navigation feature (deactivated by default).
- Integration with WooCommerce PDF Invoices & Packing Slips plugin.
- Compatibility with WooCommerce 5.1. Beta tested.
- Compatibility with WordPress 5.7. Beta tested.
- Updated Product Add-ons to 3.4.0.
- Do not include addons.js when no addons are set for the product.
Fixes
- Bug with gCal sync, typo.
- Pretty timestamp not calculated correctly for long duration in months/days.
- Google Calendar not updating when appointment is rescheduled.
[4.11.3] - February 13, 2021
Improvements
- Compatibility with WooCommerce 5.0.
- Compatibility with WooCommerce Multilingual 4.11.2.
- Updated Product Add-ons to 3.3.1.
- Added 'woocommerce_appointment_status_changed' hook, when status transition changed.
- Replaced empty array() instances with shorthand [] instance.
- When billing data is empty, try getting it from shipping data.
- Removed duplicate appointment ID queries in admin.
Fixes
- PHP 8 notices for required parameters after optional ones.
- PHP 8 notices with WPML activated.
- Syncing staff and global sync for the same appointment.
[4.11.2] - January 24, 2021
Improvements
- Faster shop page rendering by caching global addon query.
- Always add search for staff selection.
- Filter 'woocommerce_product_is_in_stock' reinstated.
- Updated php rrule to 2.2.2.
Fixes
- PHP 8 issue with get_price_html() method.
- Fixed filter 'woocommerce_email_confirmed_recipients'.
- Fixed filter 'woocommerce_email_reminder_recipients'.
- Fixed filter 'woocommerce_email_follow_up_recipients'.
- Uploading files as add-on fields not working, when appointment added in admin.
[4.11.1] - January 10, 2021
Improvement
- Added 'woocommerce_appointments_get_addons' filter.
Fix
- PHP 8 issue with single '&' operator for comparison.
[4.11.0] - December 29, 2020
Improvements
- Add filter 'woocommerce_appointments_before_rescheduled_appointment'.
- Also export custom appointment statuses.
- Also export customer status.
- Include product ID instead of object inside appointment form template.
Fixes
- Rescheduling duration not always taken into account.
- Make sure quantity added to cart is never zero.
[4.10.9] - December 23, 2020
Improvements
- Added full Slovenian translation.
- Compatibility with WooCommerce 4.9.
- Integration with WooCommerce Multi Currency plugin.
[4.10.8] - December 18, 2020
Improvements
- Add filter 'wc_appointments_find_scheduled_day_slots' for filtering ajax call for slots.
- Escape JS text strings.
- Confirmation dialog for “cancel appointment” (customer side).
- Updated all translations.
- Admin calendar now lists customer name before the appointment time.
- Updated Product Add-ons to 3.3.0.
- Updated Select2 library to 4.0.13.
- Compatibility with WooCommerce 4.8.
- Added partial Slovenian translation.
Fixes
- Translate calendars in admin through $wp_locale.
- Add missing placeholders to appointment emails.
- Only send out a reminder and follow up emails if the appointment is active.
- Availability widget not working for same day from/to dates.
- Availability widget showing unavailable products after the first available product.
[4.10.7] - November 12, 2020
Improvements
- Enqueue "Select2" script above "selectWoo" in admin due to html rendering issues.
- Make sure get_current_screen() function exists to avoid errors.
- Do not auto-select same time slot on time zone change.
Fixes
- Check if availability object exists before attempting to delete it.
- Undefined variable: pre_wc_30 for confirmation email template.
- Overriding rrules from Google calendar not working.
- Flushing cache for products when staff profile is updated or deleted.
- Flushing cache for products when appointment is updated or deleted.
[4.10.6] - November 3, 2020
Improvements
- Updated all translations.
- Refactored meta-boxes file structure.
- Cleaned customer meta-box html.
Fixes
- Week numbers for the availability not correct for following years.
- Follow up variables not working.
- Show current appointments in My-account instead of Today's.
[4.10.5] - November 1, 2020
Improvements
- Added filters to include sold out time slots.
- Removed deprecated "jQuery( document ).ready" method to prevent late script execution.
- Remove useless "slug" meta box for appointments edit screen.
- Updated moment-timezone.js lib to v0.5.31.
- Updated moment-with-locales.js lib to v2.29.1.
Fixes
- Padding duration filter name duplicated.
- Showing slots that are unavailable due to padding.
- Overbooking - padding not taken into account.
- Slots left not working ok with padding.
[4.10.4] - October 28, 2020
Improvements
- Compatibility with WooCommerce 4.7.
- Integration with WooCommerce Deposits - Partial Payments Plugin v3.0.
- Add filter for Follow up emails variables: 'fue_appointments_variable_replacements'.
- Add customer details to admin/staff email types.
- Add order details to cancellation email sent to admin/staff.
- Update rrule.js to v2.6.6.
Fixes
- Exporting only 50 appointments and excluding cancelled appointments.
- Available slots visible from previously selected staff (if new staff has no availability).
[4.10.3] - October 23, 2020
Improvements
- Add end date/time to Admin Calendar View.
- Added action attribute to appointment form for better compatibility with external plugins.
Fixes
- Reduce appointment quantity for partial refunds.
- Reminder email is sent even if there is not enough time.
[4.10.2] - October 21, 2020
Improvements
- Compatibility with WordPress 5.6.
- Ensure cache expires.
- Replace WC date and time formats with function to avoid empty strings.
- Searching for appointments in admin not working ok without orders.
- Hiding addon price and/or duration label across board (emails, orders,...).
- Updated all translations.
Fixes
- Pagination for appointments in My account not working correctly.
- Remove deprecated jQuery methods.
- When retrieving ICS file, Use
get_site_urlinstead ofhome_urlfor multisite installs.
[4.10.1] - October 20, 2020
Improvements
- Harden the compatibility with product add-ons extension.
- Cleaned the onboarding screen from unnecessary extensions.
Fixes
- When creating new account, add customer from created order.
- Follow Ups not working ok with v4.10.0.
[4.10.0] - October 9, 2020
Improvements
- Compatibility with WooCommerce 4.6.
- Possibility to change all arguments for appointment export functionality.
- Add-ons trigger admin-ajax on every char typed - only trigger on cost/duration change.
- Hide appointment status on thank you page, since it is not relevant there.
- Send a note to customer, when they have rescheduled their appointment.
- Option to send a note to customer, when appointment is manually updated by admin or staff.
- Added $appointment object to filters:
- Datepicker in the availability widget needs to use local WP date format.
- Updated Product Add-ons to 3.1.0.
- Updated all translations.
- Compatibility with WooCommerce Box Office extension.
- Added hooks before and after quantity field for better compatibility with external plugins.
Fixes
- Free appointments that require confirmation should not ask the client for payment.
- Current appointments not showing in customer account.
- Fix SQL query filtering for availabilities.
- Restricting days option missing Sat and Sun due to CSS bug.
- Duration not taken into account with NOT available rules.
- Availability widget not checking all dates in range.
- Automatically assigned (all staff together) not working ok.
- Product with staff members (one unavailable) and inventory more than 1 not working fine.
- Fatal error in 4.9.9 regarding Follow Ups integration.
- When quantity is more than the max - it shows wrong 'slots left' message.
- Linted PHP files to prepare everything for PHP 8.
- Slots visible from previously selected staff (if other staff has no availability).
[4.9.10] - August 19, 2020
Improvements
- Google Calendar oAuth access set to offline to work when user is absent.
- Compatibility with WooCommerce 4.4.
- Lowered transient deletion to 500 at a time. Avoid timeout.
- 'woocommerce_appointment_export_data_args' to allow changing export data arguments.
- WordPress 5.5 metabox arrows removed from appointment info edit screen.
- Brought back stupid Marketing menu item, since WooCommerce moved coupons there.
Fixes
- WordPress 5.5 REST API compatibility changes.
- Check for appointment object before looking further.
- date_i18n bug.
- Product Availability rule with lowest Quantity overrides all other quantities.
- Rescheduling does not apply changes to synced gCal event.
- Availability widget showing products that have no availability.
[4.9.9] - July 27, 2020
Improvements
- Compatibility with WordPress 5.5.
- Additional checks for email templates to make sure appointment object is present.
- Updated Product Add-ons to 3.0.36.
Fixes
- 'woocommerce_cart_emptied' can cause overbookings.
- Appointments Export does not export add-ons.
- Adjust for timezone when requesting available slots from the API.
[4.9.8] - July 7, 2020
✨ Feature
- Rescheduling appointments by customers (when enabled).
Improvements
- Updated Product Add-ons to 3.0.34.
- Remove WooCommerce Marketing menu (again).
- Updated all translations.
Fixes
- Add-on images notice, when no image assigned to swatch option.
- Multiple shortcodes on same page with autoselect don't work.
- Using 'all staff together' shows unavailable days (without slots).
- Twilio SMS integration: reminders not going out at the right time.
- Input fields styling in admin misaligned.
- Make sure staff selection is not crippled by selectWoo script.
- Quatity add-on allows overbooking in backend.
[4.9.7] - June 23, 2020
✨ Feature
- Export appointments to CSV.
Improvements
- Added add-ons to appointment list and calendars in admin.
- Compatibility with WooCommerce 4.3. Beta tested.
- Add product pricing rules and add-on rules to standard WC import/export.
- Updated all translations.
- Minimum WooCommerce version requirement is now 3.1.
- Datepickers in admin do not require jQuery UI css any more.
Fixes
- Scheduling window defined in hours and over 24 hours not working ok.
- Possible bug in Gmail with multiple ICS files in one email.
- Admin calendar not linking to synced events.
[4.9.6] - June 13, 2020
Improvements
- Improved French translation. Big thank you to Alexandre Doyen.
- Add appointment object variable to wc_twilio_sms_appointments_token_map filter.
Fixes
- Overlapping appointments in admin calendar over the header section.
- Fresh installation can throw error since plugin version is not saved yet.
- Availability rules spanning overnight not removing time slots.
- Inventory acting weird for next day when day before goes after midnight.
- Availability widget showing products when none have availability.
[4.9.5] - May 21, 2020
Improvements
- Compatibility with WooCommerce Follow Up Emails 4.9.1.
- Updated Product Add-ons to 3.0.33.
- Flush memcahe, when external object caching is detected.
Fixes
- Customer not attached to appointment when existing customer logs in during the checkout process.
- WC Follow-ups 'Last status' not working.
- Problem with Admin Calendar Day View. WP defined time zone not taken into account.
- Availability widget showing products when none have availability.
[4.9.4] - May 9, 2020
Improvements
- Updated Product Add-ons to 3.0.32.
- Added filter 'wc_apointments_qty_scheduled_in_slot'.
- Add 'data-remaining' to time slots.
- Added filter 'woocommerce_appointments_get_padding_duration'.
- Updated all translations.
Fixes
- Security risk - mask Google calendar sync fields and store data securely.
- When order is reverted to Pending Payment, mark appointments as unpaid.
- Translators guidance for specific strings.
- Reverse back .ics file change introduced in 4.9.2.
- TC Extra Product Options not working with.
[4.9.3] - April 8, 2020
Improvements
- Updated Product Add-ons to 3.0.28.
- Disabled WC Marketing menu item.
Fixes
- Select2 library CSS fixes in admin.
- Need to add overflow CSS rule for availability rules in edit-product.
- Bug with inventory allows overbooking in v4.9.2.
[4.9.2] - March 30, 2020
Improvements
- Compatibility with WooCommerce 4.0.1+.
- Updated Product Add-ons to 3.0.27.
- Added filter 'wc_apointments_check_appointment_qty'.
- Updated all translations.
- ics for client has wrong time when using timezones.
Fixes
- Fix issue with quotes translations on default email subjects.
- Reminder email not sent on partially paid appointments with deposits.
[4.9.1] - March 9, 2020
Fix
- Use Action Scheduler 3.0+ only with WooCommerce 4.0+.
[4.9.0] - March 9, 2020
Improvements
- Compatibility with WooCommerce 4.0.
- Compatibility with WordPress 5.4.
- Updated Action Scheduler to 3.1.1.
- Highlight appointment data instead of labels in appointment summary list.
- Updated Product Add-ons to 3.0.25.
- Updated all translations.
Fixes
- Duplicated messages when removing inactive appointments from cart.
- Fix integration with Deposits when the order is manually set to partially paid.
- Missing time slot at 00:00 when overnight availability rules are set.
- Overnight availability rules not working correctly.
- Time zones missing time slots.
- Problem with availability when automatically selecting staff.
[4.8.20] - February 21, 2020
Improvements
- Updated compatibility with Polylang for WooCommerce 1.3.2.
- Appointment providers label in emails should reflect staff label set in product edit screen.
- Sanitize all tooltips.
- Sanitize all recurring rule errors.
- Updated all translations.
Fixes
- On page reload with selected addon the addon price is not taken into account.
- Confirmation required product gives fatal error when non-appointable product is added to cart.
- Combine admin notices on appointments removed due to inactivity.
[4.8.19] - February 18, 2020
Improvements
- Updated Product Add-ons to 3.0.24.
- Order with free and paying product should set the free appointment as 'paid'.
- Added "autocomplete=off" to appointment form to prevent browser issues with add-ons.
Fixes
- Product import/export doesn't import everything.
- Changing product of booked appointent doesn't reflect the change in order.
[4.8.18] - January 31, 2020
Improvements
- Grey out all unavailable days.
- Make Addons integration global through $GLOBALS['Appointments_Integration_Addons'].
[4.8.17] - January 31, 2020
Improvement
- Updated all translations.
Fixes
- Staff ID missing.
- gCal rule that ends at the same time the slot should start doesn't work.
[4.8.16] - January 30, 2020
Fixes
- Make sure staff quantity cannot be zero by default.
- Appointments break manual subscription renewal for Woocommerce subscriptions.
[4.8.15] - January 28, 2020
Improvement
- Cache calendar data once and remove duplicate day attributes.
Fixes
- Availability widget not showing all products.
- Follow Up email being cancelled.
- On page reload with selected addon the addon price is not taken into account.
[4.8.14] - January 26, 2020
Improvements
- Updated Product Add-ons to 3.0.21.
- Prevent browser auto-complete to fill calendar date/time inputs.
- For monthly appointable products, made it more clear with a 4-digit year instead of 2-digit.
- New filter woocommerce_appointments_apply_multiple_rules_per_slot to allow rule cost calculation logic to be modified.
Fixes
- Follow up emails extension: does not load individual product.
- Restrict start/end days CSS issue (Saturday not available).
- Product calendar styling sometimes incorrect on first page load.
- Repeating gCal events blocking out too much time.
[4.8.13] - January 9, 2020
Improvements
- Add $appointments to all slot filters.
- Removed unnecessary styling for appointment summary in my-account orders.
Fixes
- Recurring rules can break the availability, when not structured properly.
- Sending time for the Follow Up email is not taken from the Email settings.
[4.8.12] - December 28, 2019
Fixes
- When staff syncs to the same Google calendar as site, always sync to site's global rules.
- Date range with time rule not working correctly.
[4.8.11] - December 27, 2019
Improvements
- Add add-ons in the edit-appontment for Appointments with status ‘in-cart’ or ‘was-in-cart’.
- Add the order details to the 'New Appointment admin' email.
- Filter for .ics file 'wc_appointments_ics_appointment' has been refactored.
Fix
- Staff view calendar in admin is off.
[4.8.10] - December 25, 2019
Improvements
- Full error log for gcal sync errors.
- WooCommerce 3.9.0 compatibility.
Fixes
- Do not sync back cancelled events as cancelled appointments.
- Staff can sync to same google calendar, even if it doesn't make any sense.
- No preference shows no availability when staff has no rules.
- No preference does not show rules correctly, when not all staff have rules.
[4.8.9] - December 24, 2019
Improvements
- Updated all translations.
- Improved German translation.
- More info in calendar header in admin, when scrolling.
- Updated compatibility with WooCommerce Multilingual 4.7.5.
Fixes
- WPML related error in latest version of WC and Appointments.
- 'Date Range with time' not working when duration spans to next day.
- Automatically Completing orders sends out the New Appointment email twice.
[4.8.8] - November 25, 2019
Fix
- No preference does not show available dates for staff.
[4.8.7] - November 23, 2019
Fix
- Revert back availability check change.
[4.8.6] - November 22, 2019
Improvements
- Updated compatibility with WooCommerce Multilingual 4.7.3.
- Required image swatches don't show error wih JS but reload the page.
- Updated Product Add-ons to 3.0.20.
Fixes
- Datepicker not working with Google Translate.
- Addon quantity does not store minimum number 0.
- Quantity add-on field does not respect min/max limits range.
- Unavailable minutes should not be appointable.
[4.8.5] - November 14, 2019
Fix
- Rendering of rules not working correctly.
[4.8.4] - November 14, 2019
Improvement
- Better processing of staff rules, faster loading with lots of staff.
Fix
- Requesting specific staff availability resulted in error.
[4.8.3] - November 13, 2019
Improvements
- Updated German translation.
- WordPress 5.3 styling compatibility.
- Multiple themes font size compatibility.
- Much faster loading with lots of synced events.
[4.8.2] - November 7, 2019
Improvements
- Separate availability rules from Gcal rules for better overview.
- Highlighted rows in admin that are currently being edited.
- Updated all translations.
- Required checkbox Add-ons don't show error with JS but reload the page.
Fixes
- Admin UI borders were not collapsed correctly on Chrome browser.
- Prevent rendering scheduled day slots when provided product ID is empty string.
[4.8.1] - November 4, 2019
Improvements
- Compact appointments list template inside my-account.
- Updated RRULE to v2.2.0.
- Forced block styling for appointment form to prevent spilling with some themes.
- Appointments tables in my-account are not responsive.
- Updated Product Add-ons to 3.0.18.
- Updated all translations.
Fix
- RRULE uses locale, where datetime string is defined as 'en'.
[4.8.0] - October 26, 2019
✨ Features
- Added follow-up email option.
- Added additional content to all customer emails.
Improvements
- Admin Calendar - border radius on calendar events.
- Simplified email content and headings.
- Code cleanup.
- Updated all translations.
Fixes
- Admin Calendar - Adding Product Filter with No Appointments changes date range to 1969 :)
- REST API Slots were missing staff ID and scheduled count was not working.
[4.7.6] - October 21, 2019
Improvements
- Introduced 'woocommerce_appointments_slots_availability' filter.
- Updated menu icon from 'dashicons-backup' to 'dashicons-clock'.
- Simplified menu name for adding new appointment.
- Moved customer name from separate column to ID column in appointments list in admin.
- Updated all translations.
- Updated Product Add-ons to 3.0.17.
- Do not load add-ons when post is not a product type.
- Set new default availability rule to 'No', not 'Yes'.
Fixes
- Admin/staff emails may be duplicated, send to unique addresses only.
- When multiple appointment forms are displayed, only set time slot selected.
- When multiple appointment forms are displayed, cache add-ons by product ID.
[4.7.5] - October 9, 2019
Improvement
- Compatibility with WooCommerce 3.8.
Fixes
- WPML Multilingual CMS 4.2.9 compatibility fixes.
- WooCommerce Multilingual 4.6.7 compatibility fixes.
[4.7.4] - October 4, 2019
Fix
- Global availability rules not saving correctly with recurring rules from Google calendar.
[4.7.3] - October 3, 2019
Fix
- Memberships integration. Price set to 1, when product price is zero.
[4.7.2] - October 2, 2019
Improvement
- Added attributes to Appointments REST API controller.
Fix
- Memberships integration.
[4.7.1] - October 1, 2019
Improvement
- Custom pricing rule for duration.
Fix
- Staff costs not calculated.
[4.7.0] - October 1, 2019
Improvements
- Much faster loading of appointment pages in admin with thousands of products.
- Updated Product Add-ons to 3.0.16.
- Appointment list in admin now renders through WC_Admin_List_Table.
- Consolidated cache logic into a single class.
- Cache is disabled when WC_APPOINTMENTS_DEBUG is true.
- Consolidated appointment cost caluclation into asingle class.
- Minimum height for calendar events in admin not set.
- Updated all translations.
- Customer billing data is display preferably if available.
- Soft deprecated
WC_Appointments_Form::convert_to_moment_format()replaced withwc_appointments_convert_to_moment_format(). - Soft deprecated
WC_Appointments_Form::get_posted_data()replaced withwc_appointments_get_posted_data(). - Soft deprecated
WC_Appointments_Form::is_appointable()replaced withWC_Product_Appointment::is_appointable(). - Soft deprecated
WC_Appointments_Form::get_formatted_times()replaced withwc_appointments_get_formatted_times(). - Soft deprecated
WC_Appointments_Form::calculate_appointment_cost()replaced withWC_Appointments_Cost_Calculation::calculate_appointment_cost(). - Soft deprecated
WC_Appointments_Controller::get_appointments_in_date_range()replaced withWC_Appointment_Data_Store::get_appointments_in_date_range(). - Soft deprecated
WC_Appointments_Controller::get_appointments_in_date_range_query()replaced withWC_Appointment_Data_Store::get_appointments_in_date_range_query(). - Soft deprecated
WC_Appointments_Controller::get_events_in_date_range()replaced withWC_Appointments_Availability_Data_Store::get_events_in_date_range(). - Soft deprecated
WC_Appointments_Controller::get_global_availability_in_date_range()replaced withWC_Appointments_Availability_Data_Store::get_global_availability_in_date_range(). - Soft deprecated
WC_Appointments_Controller::get_all_existing_appointments()replaced withWC_Appointment_Data_Store::get_all_existing_appointments(). - Soft deprecated
WC_Appointments_Controller::get_appointments_for_objects()replaced withWC_Appointment_Data_Store::get_appointments_for_objects(). - Soft deprecated
WC_Appointments_Controller::get_appointments_for_objects_query()replaced withWC_Appointment_Data_Store::get_appointments_for_objects_query(). - Soft deprecated
WC_Appointments_Controller::get_appointments_for_product()replaced withWC_Appointment_Data_Store::get_appointments_for_product(). - Soft deprecated
WC_Appointments_Controller::get_appointments_for_user()replaced withWC_Appointment_Data_Store::get_appointments_for_user(). - Soft deprecated
WC_Appointments_Controller::get_latest_appointments(). Not used in Appointments. - Soft deprecated
wc_appointments_get_time_slots()replaced withWC_Product_Appointment::get_time_slots(). - Soft deprecated
wc_appointments_get_time_slots_html()replaced withWC_Product_Appointment::get_time_slots_html(). - Soft deprecated
wc_appointments_get_global_availability()replaced withWC_Appointments_Availability_Data_Store::get_global_availability(). - Soft deprecated
wc_appointments_get_staff_availability()replaced withWC_Appointments_Availability_Data_Store::wc_appointments_get_staff_availability(). - Soft deprecated
delete_appointment_slots_transient()replaced withWC_Appointments_Cache::delete_appointment_slots_transient().
Fixes
- Filtering product and staff in admin calendar were not strict.
- Add-ons and membership plugin not working ok - add-ons being discounted when they shouldn't.
- WC POS seems to not be compatible - throwing error.
- Availability for staff shown unavailable (blocked) when padding days are used.
- Inclusive/exclusive inconsistency in logic for blocking Google Events' times.
- Some Google Calendar events hidden in admin calendar.
- Addons query duplicated and slows down loading with a lot of addons.
[4.6.2] - September 9, 2019
Improvement
- Clear time slots transients.
Fixes
- Saving any product type saves it as 'Appointable product'.
- Lead Time - Weeks interpreted as Months.
[4.6.1] - September 8, 2019
Fix
- Cart item removal error.
[4.6.0] - September 7, 2019
✨ Feature
- Full integration with Kadence WooCommerce Email Designer plugin.
Improvements
- Updated Product Add-ons to 3.0.15.
- Simplified the email templates.
- Simplified the email templates styling to conform with external email editing plugins.
- [appointment_form] shortcode loads without parameters on a product page.
- Added RTL support to all email templates.
- Revert to default duration, when duration is zero or negative.
- Deposits compatibility when adding apointment in admin.
- Make the custom pricing rules accept 5 decimal places so that it can be rounded properly.
- Updated all translations.
Fixes
- Fatal error in admin calendar – Invalid UNTIL property for RRULE.
- Conflict with Free products and Memeberships plugin.
- Lead time hours not working ok - adds 1 hour too much.
- Wrong duration when more than 24 hours.
- Renamed filters back:
- Multiple appointments with add-ons in 1 order add add-on options prom prev appointments.
[4.5.14] - July 25, 2019
Improvements
- Dropped support for WooCommerce 2.6 (3 years old) for security issues.
- Compatibility with WooCommerce Twilio SMS Notifications 1.12.3.
- Attch .ics to Customer order emails.
- Updated all translations.
- Replaced method_exists with is_callable to prevent private methods from showing up.
Fix
- Fatal error – Invalid UNTIL property for RRULE.
[4.5.13] - July 23, 2019
Improvements
- Removal of all plugin data on un-installation. Constant 'WC_REMOVE_ALL_DATA' must be true.
- Added filter 'woocommerce_appointments_stop_recalculate_order' customers can use
- Compatibility with WooCommerce 3.7.
Fixes
- Hold stock (minutes) used for holding appointments in cart. Stock time not respected.
- empty_cart empties customer cart, but does not clear the Appointment cart.
- Qty was set for appointment on each appointment load.
- Change reminder scheduled action, when start time changes.
- Editing appointment that was added through admin could cancel the reminder.
- Editing appointment that was paid with COD could cancel the reminder.
- Stop plugin from rendering, when WooCommerce isn't installed correctly.
[4.5.12] - July 18, 2019
Improvements
- Updated @build dependencies for more efficient compressions.
- Used advanced ESlink rules to tidy the JS code.
Fix
- In Calendar guest name is not displayed anymore.
[4.5.11] - July 15, 2019
Improvements
- Moved Availability filtering widget to /includes folder.
- Moved Customize controls to /includes folder.
- Merged product import and export class to remove duplicated default properties.
Fix
- Fixed integration with plugin WooCommerce Price Based on Country.
[4.5.10] - July 14, 2019
Improvements
- Updated Add-Fons to 3.0.13.
- Updated all translations.
Fix
- Admin calendar events overlapping.
[4.5.9] - July 13, 2019
Improvement
- Mark unavailable times synced from gCal in WP admin calendar.
Fixes
- Recurring events from Google calendar not synced to correct time zone.
- Appointments in Trash sending appt reminders.
[4.5.8] - July 5, 2019
Improvements
- Updated Add-ons to 3.0.12.
- Updated RRULE to 2.1.0. PHP 5.6 is now required as minimum.
- Improved integration with plugin WooCommerce Price Based on Country 1.8.9.
[4.5.7] - July 5, 2019
Improvement
- Prepared appointment form to support rescheduling in future updates.
Fixes
- Product Time zone not working in shortcode.
- Product Availability auto-select not working in shortcode.
[4.5.6] - July 4, 2019
Improvements
- Remove appointments filtering by created date in admin list table.
- Option to filter appointments in admin with Start/End date filters.
- Updated all translations.
[4.5.5] - July 2, 2019
Improvements
- Appointment customer details now read from WC_Customer class.
- Filter 'appointments_cancel_appointment_url' now includes the appointment class as parameter.
- Fixed customer phone display in calendar dialog in admin.
- Updated Hebrew translation.
[4.5.4] - July 1, 2019
Improvement
- Checking if product is 'appointment' type is simplified.
Fix
- Removed $order_parent_id that was not in use and caused plugin compatibility issues.
[4.5.3] - June 28, 2019
Improvements
- Added 'calendar-data-loaded' trigger that allows hooking into calendar after it is loaded.
- Updated moment.js libraries.
- Performance optimization for generation of appointment slots.
- Staff - No preference - selection is now disabled by default.
- REST API permissions were not set correctly.
Fixes
- Compatibility issue with API hook timing.
- When multiple staff assigned and one is unavailable, the 'no preference' shows no slots.
- Product with multiple staff 'No pref' not working ok.
[4.5.2] - May 24, 2019
Fixes
- gCal sync from WP to gCal does not work on 4.5.1.
- Duplicating an appointable product resulted in an error.
- Duplicating an appointable product did not duplicate availability.
[4.5.1] - May 20, 2019
Improvements
- New Appointable products do not have the 'Virtual' option selected by default anymore.
- Sync appointments to gcal payed with a Deposit.
- Sync schedule now hooked to 'action_scheduler_after_process_queue'. Prevents crowding the DB.
- Sync schedule can now be disabled through 'action_scheduler_after_process_queue' action.
- 'availability_autoselect', 'customer_timezones' possible attributes for [appointment_form] shortcode.
Fixes
- Missing appointment ID from /appointments REST API.
- Add-on error when product price is empty.
- Add-on price could not be hidden with a filter.
- Unable to view Global Availability issue.
- Appointment reminder email seems to be timing on GMT not local time.
- gCal too many action_schedulers even when there are no events in gCal.
[4.5.0] - April 26, 2019
✨ Feature
- REST API support to GET: /appointments, /availabilities, /products, /slots.
Improvements
- Updated Action scheduler library to 2.2.5.
- Transients caching issues for availability rules and GCal sync.
- Updated all translations.
- Past Google events displayed as availability rules. Hide them.
Fixes
- Added missing $product object to 'woocommerce_before_add_to_cart_button' hook.
- Twilio appointment confirmation and follow up SMS not sending.
[4.4.9.4] - April 22, 2019
Improvements
- Updated Product Add-ons to 3.0.11.
- Caching plugin (probably W3TC) asks us to call to wp_cache_flush once the sync of is finished.
Fixes
- Appointment card shows the Cost of the order instead of the appointment.
- Adding new date rules on staff profile page bug.
[4.4.9.3] - April 18, 2019
Fixes
- Don't sync when access token is empty.
- Add-on duration defined in minutes, when product duration is either hours or minutes.
- Unwanted element at the bottom of the single appointable product page.
- WPML not syncing availability rules across products.
[4.4.9.2] - April 16, 2019
Improvements
- Compatibility check with WooCommerce TM Extra Product Options 4.8.4.
- Duration not prettified for hours.
Fixes
- Add-on checkbox pre-selected, but empty after adding product to cart.
- Can't add appointment to existing order.
- Reset all appointment card details data on each selection.
[4.4.9.1] - April 12, 2019
Fix
- Add-on duration error displayed.
[4.4.9] - April 12, 2019
Improvements
- Moment Timezone JS library only included, when product supports time zones.
- Availability and Pricing rule validation with smarter inputs.
- Added more options to extend the calendar appearance.
Fixes
- Availability between different products and same staff not showing correctly in calendar.
- Add-ons not hiding price on radio buttons.
- Add-on duration and didn't accept negative price and duration.
[4.4.8] - April 10, 2019
Fixes
- $wp_locale not defined.
- Recurring events failed to parse RFC string, unsupported property: EXDATE.
[4.4.7] - April 9, 2019
Improvement
- Send reminders for appointments, created in admin.
Fixes
- Staff price not counted when multiple staff automatically assigned
- Removed duplicated product property "get_padding_duration_minutes()".
- Padding not working.
- Recurring events not working when timezone for UNTIL is not specified.
- Reminders not going out at the right time.
- Addon duration display when adding appointment in admin.
[4.4.6] - April 5, 2019
Improvements
- Big Performance improvement with large number of appointments scheduled.
- Add note to settings for Appointment Confirmed email.
- Updated all translations.
- Add the option to filter 'without staff' by selecting '–' in appointments list.
- Backend Calendar for staff members optimizations.
Fixes
- Addons with value below 1 are not being added to the total.
- WooCommerce Twilio SMS Notifications 1.12.0 compatibility check.
- Added back support for WooCommerce Twilio SMS Notifications below version 1.12.0.
- Automatically assigned staff shows unavailable days as clickable.
- Staff assigned together not working.
[4.4.5] - April 3, 2019
Fix
- Performance issues.
[4.4.4] - April 3, 2019
Fix
- Fatal error: after changing Gcal function name in version 4.4.3.
[4.4.3] - April 2, 2019
Fix
- Fatal error: "class-wc-appointments-init.php" file had $this called wrong.
[4.4.2] - April 2, 2019
Improvements
- Introduced 'woocommerce_appointments_calendar_single_card_data' filter.
- Simplified admin calendar dialog for appointments.
Fix
- Fatal error during update.
[4.4.1] - April 2, 2019
Fixes
- Disallow zero as availability priority. Possibly set during upgrade to 4.4.0.
- Spanish translation had some off strings.
[4.4.0] - April 1, 2019
✨ Features
- Full/extended integration with Twilio SMS Notification extension.
- Added CRUD for all availability rules.
- Added "Date range with time" availability rule.
- Ability for staff to sync 2-way or 1-way with their Google Calendar.
Improvements
- Appointable product pre-selected when creating new product for the first time.
- Updated Action scheduler library to 2.2.1.
- Updated Product Add-ons to 3.0.10.
- Updated all translations.
- Simplified Add Appointment screen in admin. Removed No order option.
- Global availability is not set by default any more.
- Better compatibility with external email customization plugins.
- Disable marketplace suggestions to remove confusion.
- Sync from Google now operates on 1 minute intervals for both staff and globally.
- Sync cash on delivery appointments to Google.
Fixes
- Cannot add appointments in the backend.
- Staff cannot select a calendar after initial calendar ID selection.
- Gcal manual update shows last synced timestamp even if no events are synced.
- PHP 7.3.2 compatibility.
- Date picker not showing blocked dates correctly.
- Padding calculations.
- WPML compatibility re-check.
- No preference showing unavailable days.
[4.3.4] - March 2, 2019
✨ Feature
- Added today's appointments to My account page.
Improvements
- WordPress 5.1 compatibility.
- Moved installation and initialization functions into a separate class.
- Increased JS standard to ES6.
- Expanded compatibility for DateTime in older PHP versions and WC Ajax.
- Added libraries from "Google PHP Client" and "RRule" for both PHP and JS.
- Updated all translations.
Fixes
- My account appointments show "Appointment" instead of "Appointments".
- Addon duration for time slots not transferred when switching days.
- .ics missing for admin email notification.
- All assigned staff have available slots, when there should be none.
[4.3.3] - February 14, 2019
Fix
- Availability rules not showing up.
[4.3.2] - February 13, 2019
Improvements
- Updated Product Add-ons to 3.0.8.
- Removed all 'dashicons' dependencies on frontend.
- Better RTL syntax.
- Admin Calendar now has split product and staff filter.
Fix
- Timezone auto detection not working when multiple appointment shortcodes are used on same page.
[4.3.1] - February 9, 2019
Fix
- Availability filter calendar not displayed correctly.
[4.3.0] - February 8, 2019
✨ Features
- Added Availability filter widget.
- Added full Italian translation. Many thanks to Giuseppe S. for the contribution.
Improvements
- Add warning when adding Appointment to cart that requires confirmation and simple product is already in.
- Updated all translations.
- Updated Action scheduler library to 2.2.0.
- Updated Product Add-ons to 3.0.7.
- Decluttered appointment list UX and unified status label UI with WooCommerce order label UI.
- Incompatibility with Elementor plugin.
Fixes
- All users see staff fields in user edit screen.
- Availability calculation for additional products is wrong when using WPML
[4.2.9.6] - January 20, 2019
✨ Feature
- Added filter 'appointment_form_pricing_rules_for_start_date' for pricing rules to work on start date only.
Improvements
- Time zone name (city by default) is added to all appointments for products with time zones enabled.
- Time zone selection when multiple products with time zones are displayed at once.
- Staff selection when multiple products with staff are displayed at once.
- Additional check before running $field->validate().
- Updated all translations.
- Added option for month and year selection on the calendar through "wc_appointment_form_params" filter.
Fixes
- PHP 7.3 issue with add-ons.
- RTL adjustment for prev/next month in calendar navigation.
[4.2.9.5] - January 4, 2019
Improvements
- Changed naming to "Admin New Appointment" to better reflect mail recipient.
- Hardened emails for extensions send order instead of appointment object.
[4.2.9.4] - January 4, 2019
Fixes
- Automatic time zone conversion on initial cookie setup.
- Time zone in customer's emails not showing up.
[4.2.9.3] - January 3, 2019
Fixes
- Timezone selection positioning.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/450/padding-not-working-ok-in-4292
[4.2.9.2] - December 31, 2018
Fix
[4.2.9.1] - December 28, 2018
Fix
[4.2.9] - December 24, 2018
✨ Feature
- Added reminder email time control.
Improvements
- Decluttered email settings and made them in line with default WooCommerce email options.
- Shorter default emails subject lines more in line with default WooCommerce email lines.
- Updated all translations.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/447/staff-inventory-not-working-ok
- Compatibility with WC Follow Up Emails extension.
- Temporarily moved jQuery TipTip addon to all pages.
[4.2.8] - December 18, 2018
Fixes
- Add-ons not calculating duration, when quantity based.
- Make sure translated plugin still updates automatically.
[4.2.7] - December 13, 2018
Improvements
- Add default date / time format when empty
- Updated Product Add-ons to 3.0.5.
- Added WooCommerce plugin required notice after Appointments activation and no WooCommerce present.
Fixes
- License screen error.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/443/with-padding-before-it-does-not-remove-the
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/429/my-account-wpml-not-all-appointments-are
[4.2.6] - December 8, 2018
Improvements
- Appointment form style as inline-block to make sure width is 100% when form is floated.
- Better connection with WooCommerce TM Extra Product Options and Add-ons combined.
Fixes
- Timezone picker could disable click actions on product site.
- Select options for add-ons were missing None.
[4.2.5] - December 5, 2018
✨ Feature
- Auto-detect customer's timezone.
Improvements
- Timezone selection closed when clicked outside the selection box.
- Added "Moment" JS library for better time manipulation.
- Updated all translations.
Fix
- Addon cart error during update.
[4.2.4] - December 3, 2018
Fix
- Make sure appointment is displayed only on orders with products attached.
[4.2.3] - December 1, 2018
Improvements
- Deactivate WC Product Add-ons extension if active and add a notice.
- Better license activation notice.
- Import/Export meta fields not translated, decluttering translation text-strings.
- Updated all translations.
- Updated Action scheduler library to 2.1.1.
[4.2.2] - November 30, 2018
Improvement
- Temporarily disable None option for add-on fields (multichoice, radio button, ...)
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/433/template-datetime-pickerphp-missing
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/434/incompatibility-with-yith-wc-gift-cards
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/436/problems-with-latest-version
- Backward compatible with default WC Product Add-ons extension.
[4.2.1] - November 24, 2018
Improvement
- Updated Product Add-ons to 3.0.4.
Fixes
- Error in certain cases for the date picker.
- Addons with no cost or duration disable "book now" button.
[4.2.0] - November 23, 2018
Improvements
- WordPress 5.0 + Gutenberg full compatibility.
- Updated Product Add-ons to 3.0.3.
- Allow negative duration value in add-ons.
- Ability to calculate add-on duration, based on quantity scheduled.
- Switch to WooCommerce library for Select2 script.
- Performance improvement for products that contain many appointable slots.
- Prevent loading of availability on initial page load.
- Added 100% Hebrew translation. Thanks yoni katz ;)
- Updated all translations.
- Move add-ons on orders to end of meta instead of the beginning.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/427/availabilty-not-syncing-with-gcal
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/426/add-ons-are-always-multiplied-with-cost
- Outdated Order again button template.
- JS error in console when trying to save a product that's not an appointment. Prevents saving.
- Break after first application of custom rule on an appointment slot.
- Rounding issue when manually adding an appointment and generating an order.
- File upload add-on fields did not calculate cost and duration properly.
[4.1.8] - October 28, 2018
Improvement
- added filter 'woocommerce_appointments_time_slot' to allow filtering single slots.
[4.1.7] - October 28, 2018
Improvements
- Updated Action scheduler library to 2.1.0.
- Display update notification even when license is not active.
Fixes
- Multiple dates in querystring.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/425/autoselect-first-available-slot-nor
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/419/simple-and-appointbale-product-in-one
[4.1.6] - October 23, 2018
Improvement
- Do not display user edit link when current user cannot edit the user.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/415/the-slot-cannot-be-scheduled-issue
- Calendar color selection in Customizer no longer works.
- Querystring does not retain all parameters after refresh.
- Retain selected time (when available) when switching through dates.
[4.1.5] - October 12, 2018
✨ Feature
- Added "One Page Checkout" integration.
Improvements
- Do not query staff for appointments without staff.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/412/ics-provider-unknown
- Added 'wc_appointments_ics_exporter' filter for .ics output.
- Added 'wc_appointments_ics_appointment' filter for .ics appointment event.
- Updated Product Add-ons to 2.9.7.
- Better translation guidance.
- Querytring updated upon each selection of date, time or staff.
- No need for disabled (i18n_choose_options) alert as buttons have disabled prop, not class.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/410/remove-failed-to-retrieve-and-generate-the
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/409/fix-wpml-appointment-to-not-have
- Updated all translations.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/414/bug-wc_product_appointment_rule_manager
- Staff extra cost HTML escaped incorrectly.
[4.1.4] - September 22, 2018
Improvements
- Big security update, escaped all output.
- Optimized code according to WordPress coding standards.
- Appointments list in admin styled for mobile.
- Updated all translations.
Fixes
- Added back "datepicker( 'refresh' )" to after each autoselect.
- Only fetch Google Calendar events, when access token exists.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/403/cant-set-email-subject-and-heading-through
- Emails not sent for apppointments without orders
[4.1.3] - September 9, 2018
Improvement
- Removed "datepicker( 'refresh' )" after each autoselect.
[4.1.2] - September 9, 2018
Improvements
- Faster appointment form load times by code optimization.
- Removed double cost calculation on add-on selection.
- Removed double cost calculation on staff selection.
- Removed double cost calculation on date selection.
- Reduced staff queries to $product, when call is just by staff_id.
- Cached staff query to remove duplicates on single page load.
- Removed duplicated add-on calls for before/after appointment form.
- Updated WPML compatibility to WooCommerce Multilingual 4.3.5.
Fixes
- Added "datepicker( 'refresh' )" to after each autoselect.
- Add-ons added in admin were sometimes not added.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/394/check-tm-extra-options-plugin-integration
[4.1.1] - August 31, 2018
Fix
- Auto-selecting first available slot not working. Props to /Mattias F.
[4.1.0] - August 31, 2018
Improvements
- Replaced WP cron with Action scheduler for better transparency and reliability.
- All scheduled actions/emails are available inside "WooCommerce > Status > Scheduled Actions".
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/398/follow-ups-plugin-should-have-the-user
- Removed $product dependencies in static wc_appointment_form_params script
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/382/could-we-use-staff-everywhere-on-the
- Removed manual email notifications from commented code.
- Confirmation emails are not sent the same way as admin appointment notifications for better tracking.
Fixes
- Make sure staff quantity cannot be negative.
- Do not initiate staff gcal sync, when calendar ID is not set.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/399/slots-with-staff-availability-not-working
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/397/calendar-not-refreshing-right-when-auto
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/362/multiple-shortcodes-on-same-page-are-not
[4.0.0] - August 18, 2018
✨ Feature
- Customers can set their own timezones.
Improvements
- Custom pricing rules now apply to add-ons as well.
- Updated all translations.
- Added hook to allow bypassing slot availability checker
- Product filters now ordered by product title for easier searching.
- Reduced ajax cost calculation calls with time slots.
- Added hook 'woocommerce_appointments_gcal_sync_parameters' to allow filtering all gcal parameters.
Fixes
- Display appointments from "order ID" instead of "order item ID" as "_appointment_order_item_id" is not always unique.
- Deprecated "btoa" function in JS for DatePicker in International Browsers.
- Book now button is now disabled per html and per css class "disabled"
[3.9.2] - July 13, 2018
Improvement
- Updated all translations. Thank you "Julien Lorion" for French translation.
Fixes
- WPML now works for product staff quantity.
- WPML translates email notifications.
- WPML missing staff added to all translated appointments.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/384/refunding-part-of-appointment-cancels-the
[3.9.1] - July 4, 2018
Fix
- Transferred plugin license to a new BookingWP site.
[3.9.0] - July 2, 2018
Improvements
- Rebranded plugin's author and parent to BookingWP
- Re-tested WooCommerce Multilingual (WPML) 4.3.2.1 compatibility. No issues, added restricted days meta fields.
- Better Polylang for WooCommerce 1.0.1 compatibility.
Fixes
- https://bookingwp.com/forums/topic/the-booking-calendar-no-longer-shows/
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/346/date-picker-problem-with-non-latin-chars
- https://bookingwp.com/forums/topic/fatal-php-error/
[3.8.9] - May 25, 2018
Improvement
- Updated Product Add-ons to 2.9.6
[3.8.8] - May 25, 2018
Improvements
- Updated Product Add-ons to 2.9.5
- GDPR Privacy policies.
- Export/erasure hooks added.
- WC 3.4 compatibility.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/371/staff-details-in-edit-user-profile-doubled
- Updated all translations.
Fixes
- https://bookingwp.com/forums/topic/manually-added-appointments-that-get-deposit-paid-dont-sync-to-gcal/
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/365/add-the-option-to-set-the-display-of-days
- Notice: Undefined variable: array in ..../class-wc-appointments-integration-gcal.php on line 762
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/370/staff-members-error-when-adding
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/368/calendar-bug-when-duration-is-1-day
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/367/show-error-when-saving-product-without-add
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/360/appointment-quantity-bug
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/363/cant-sync-staff-calendar-when-signed-in-as
[3.8.7] - May 11, 2018
Improvement
- Switched from
wp_ajaxtowc_ajax
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/355/staff-availability-wrong
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/356/sms-reminder-sent-after-appointment
[3.8.6] - May 4, 2018
Improvements
- Lighter borders for appointment form.
- Changed default highlight color to hex #111
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/350/add-appointment_date-to-the-new
- Added option to not show -- No preference -- option for staff selection.
- Updated Product Add-ons to 2.9.3
- Updated all translations.
Fixes
- FirstDay in admin calendar picker not working, typo: fistday instead of firstday
- Do not display empty rule for staff with no rules in admin user profile edit screen.
- No preference doesn't count staff qty correctly, when staff is assigned through profile edit screen.
[3.8.5] - April 30, 2018
✨ Feature
Improvements
- Add .disabled class attributes for themes that do not have it.
- Updated all translations.
- Refactor
get_available_slotsparameters. - Added 'woocommerce_after_appointment_form_output' hook for processing addons.
- Moved 'woocommerce_before_add_to_cart_button' hook to default location.
- Simplified integration with TM Extra Product options plugin.
- Simplified integration with Gravity Forms Product Add-Ons plugin.
Fixes
- Error, when Google Calendar sync settings not set correctly.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/344/gcal-connection-show-error-but-works-ok
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/342/appointment-color-from-customizer-not
- Reminder Emails: Same-day appointments contain the text 'tomorrow'.
- Calendar doesn't load the correct availability for different staff.
- JavaScript error for DatePicker in International Browsers.
- Make sure arrays in order values are imploded with gCal sync.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/348/throw-error-on-activation-is-wc-addons
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/351/calendar-not-loading-when-opening-website
[3.8.4] - April 20, 2018
Improvement
- Temporarily disable 'find-scheduled-day-slots' nonce.
[3.8.3] - April 18, 2018
Fix
- Padding for products messed calendar with hour/minute duration.
[3.8.2] - April 18, 2018
Improvements
- Send new appointment notification to admin and staff for Cash on Delivery appointments.
- Delete all gCal sync events on plugin un-installation.
Fix
- Auto-select first available date in one of next available months.
[3.8.1] - April 17, 2018
Improvement
- Updated Product Add-ons to 2.9.2
Fix
- Cannot add appointments in admin.
[3.8.0] - April 16, 2018
✨ Features
- Lazy load front-end calendar and cache the output for large number of appointments.
- Present appointment info in WooCommerce dashboard widget in admin.
Improvements
- Moved new email notifications for admin/staff outside WC_Emails::send_transactional_email.
- Show when month is fully or partially scheduled.
- Improved UI for appointment edit screen in admin.
- Updated all translations.
Fixes
- Don't allow last minute to be removed for global availability.
- Slots shown as unavailable, when quantity still exists.
- PHP Notice: Undefined variable: settings.
- New appointment email notification to admin goes into loop.
- Billing details overwritten when assigning new manual appointment to existing order purchased by guest.
- Fix PHP notices by passing through the email parameter.
[3.7.3] - April 6, 2018
Fix
- Admin calendar fixed header height span.
[3.7.2] - April 6, 2018
Improvements
- Admin calendar now includes staff view.
- Admin calendar improved on all levels, built with flexbox and more responsive.
Fixes
- Event removal for staff and main calendar upon cancellation.
- Admin calendar positioning for daily view appointments.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/332/translation-not-working-because-of-typo
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/335/cancelled-appointment-not-removed-from
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/337/staff-stays-linked-when-changing-product
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/333/gcal-sync-not-working-ok
[3.7.1] - April 2, 2018
Fix
- Fix 500 error on gCal sync with misconfigured calendar ID.
[3.7.0] - April 2, 2018
✨ Feature
Improvements
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/315/refactor-calendar-sync-from-google
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/322/gcal-livesync-not-working
- Only show quantity Left per slot, when Max and Left are the same.
- 50% Better performance for large number of appointments.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/325/memberships-discount-not-working-from
- Updated all translations.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/328/backend-appointment-gcal-sync
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/301/recuring-events-in-gcal-should-sync-more
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/326/wpml-slots-left-acting-weird
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/327/temporary-appointments-dont-get-deleted
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/330/inventory-in-availability-rueles-not
[3.6.9] - March 20, 2018
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/321/add-appointment-to-order-from-dashboard
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/323/time-picker-error-in-mozilla
[3.6.8] - March 16, 2018
Improvements
- Additional checks for empty SKU in [appointment_form] shortcode.
- Add-ons with duration work better with appointment form.
- Additional WPML checks for appointment email translations, which require WPML String translation service.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/318/pending-confirmation-appointments-give
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/294/addons-multiplied-by-3
[3.6.7] - March 4, 2018
✨ Feature
Improvements
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/313/add-staff-to-product-even-if-staff-is-not
- Updated all translations.
- Slightly updated UX for staff management in product edit screen.
Fixes
- Additional checks for add-on field price format.
- WPML duplicated appointment form on add-to-cart action.
[3.6.6] - February 28, 2018
Improvements
- Reduce expensive ajax query to ""$appointment_form->get_posted_data" when possible.
- Improved Availability settings UX to better accommodate Gutenberg editor.
- Updated all translations.
Fixes
- Additional checks for [appointment_form] shortcode.
- Don't duplicate WPML appointments, when translated product doesn't exist.
- Schedule cart removal for duplicated appointments in WPML.
[3.6.5] - February 26, 2018
✨ Feature
Improvements
- Updated all translations to include new strings from new features.
- Clear 'wc-appointment-remove-inactive-cart' scheduled hook on execution. Loophole when fired manually.
Fix
- Do not calculate costs twice when add-ons selected with timeslots.
[3.6.4] - February 24, 2018
✨ Features
- Added full Polylang integration.
- Added integration with WooCommerce Create Customer on Order; create a customer when adding appointment in admin.
- Option to render add-on fields before and/or after the appointment form.
- Add-on fields duration now adjust timeslots shown.
Improvements
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/308/dont-count-cancelled-appointments-to-order
- Updated all translations to include new strings from new features.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/307/availability-display-issue-when-assign-all
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/310/polylang-emails-only-in-wp-site-language
[3.6.3] - February 15, 2018
Improvement
- Improved compatibility with WooCommerce Follow Up Emails 4.6.4
Fix
[3.6.2] - February 12, 2018
Improvement
- Updated all translations to include months feature.
Fix
- Warning and notice for confirmation emails.
[3.6.1] - February 11, 2018
Improvements
- Move Appointments customizer controls under WooCommerce panel.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/303/add-option-to-only-sync-in-1-direction
Fixes
- Remove notice on appointment edit screen, when Google Calendar event is selected instead of regular product.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/298/1-day-duration-takes-2-days-after-syncing
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/304/gcal-events-synced-to-site-should-only
[3.6.0] - February 10, 2018
✨ Features
- Added monthly duration option_name
- Appointments data included in WooCommerce core import and export functionality.
Improvements
- Added $spaces_left to 'woocommerce_appointments_time_slot_html' filter.
- Added 'wc_appointments_staff_availability' filter for user availability.
- Added compatibility for Sequential Order Numbers Pro.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/297/hide-an-unused-time-slot-range-in
- Added WPML compatibility with Add-on fields.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/299/remove-warning-for-global-rules-in
- https://bookingwp.com/forums/topic/products-add-on-not-updating-pricing-in-cart/
- Added fourth arg in Confirmation emails for actions.
- Slots available after max available time.
- Double check product exists before attempting to get_title().
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/306/inventory-in-no-pref-not-working-ok
- Do not add custom pricing, when it is disabled, even when custom pricing rules exist.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/294/addons-multiplied-by-3
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/288/wrong-inventory-with-wpml
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/300/string-x-slots-left-wrong-with-wpml
[3.5.7] - December 22, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/286/incorrect-slot-availability-calculation-on
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/288/wrong-inventory-with-wpml
- Filter "wc_apointments_check_appointment_product" was checking wrong product ID.
[3.5.6] - December 18, 2017
Improvements
- Added weekday-x, with x as day number of week for each calendar day.
- Bump tested version to WooCommerce 3.3
- Order metadata synced with Google Calendar sync.
- Better indication of places left, with overall number when staff is assigned.
- Updated all translations.
- Updated Product Add-ons to v2.9.1
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/289/change-in-code
- Appointments overwriting notes made directly on Google Calendar on subsequent syncs.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/216/wc-memberships-base-price-discounted-twice
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/284/week-start-day-wrong-calendar-class-ui
- Customer defined slots by hour durations buffering by incorrect amounts.
- Remove activation notice when plugin is deactivated.
- Global and product rule not overriding staff rules when calling get_slots_in_range directly
- Incorrect remaining count on slots when staff members overlap and are set to automatically assigned.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/290/wc_availability_rules_priority-acting
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/251/not-working-with-gravity-forms-add-ons
- Added 1 hour to lead time to account for current time.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/286/incorrect-slot-availability-calculation-on
- WPML not duplicating staff across all languages.
- WPML removing all staff inventory for translated products, even when more qty is available.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/288/wrong-inventory-with-wpml
- Deposit integration parent order not marked as completed when it contains an appointment.
- Failed order's appointments are never cancelled.
- Make sure lead time accounted for start time as well as end time.
[3.5.5] - November 23, 2017
Improvement
- Autoselect first available slot for next 12 months.
[3.5.4] - November 20, 2017
✨ Feature
Improvements
- Added 'wc_availability_rules_priority' filter for modifying appointment rules level weight.
- Updated translations.
Fixes
- Display addon duration and extra appointment fields in admin at all times.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/283/auto-select-first-slot-not-working
[3.5.3.1] - November 15, 2017
Improvement
- Updated translations.
Fix
[3.5.3] - November 14, 2017
Fix
[3.5.2.1] - November 14, 2017
Fix
- X-scroll issue with daily staff view in admin calendar
[3.5.2] - November 14, 2017
Improvements
- Updated calendar design in admin.
- Updated calendar design in frontend.
Fixes
- When multiple staff is scheduled at once, use max quantity of all combined.
- Make sure CSS classes are accounted for even for disabled days on calendar.
- 'schedule_fo_' transient cache not working properly, missing from and to dates.
- Google calendar events don't remove staff slots, when -- No Preference -- is selected.
[3.5.1] - November 11, 2017
Fix
[3.5.0] - November 7, 2017
✨ Feature
- Allow price overriding for all Appointments by adding equals operator in the costs range.
Improvements
- Removed Inventory from Global availability rules to reduce confusion and improve usability.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/279/global-inventory-interfeers-with-staff
- Add new notice for plugin activation.
- Calendar page title.
- Updated translations.
- Improve error feedback on calendar timepicker.
- Update sanity check notices and convert them to warnings.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/281/capacity-and-capacity-max-tooltip-the-same
Fixes
- Staff dropdown should only display the costs related to the staff.
- Prevent deleting products that have appointments associated with them.
- "Scheduled By" column is empty if there's no email address specified for the customer.
- Restrict Days not working when site is translated.
- Incorrect remaining count on slots when staff overlap.
- Calendar not defaulting to first available date with shared staff.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/280/product-capacity-acting-strange
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/216/wc-memberships-base-price-discounted-twice
[3.4.9] - October 28, 2017
Fixes
- Missing slots, when no staff selected.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/276/the-status-bar-width-on-days-in-calendar
- https://bookingwp.com/forums/topic/problem-with-last-one-update-3-4-7/
[3.4.8] - October 24, 2017
Improvement
- Updated translations.
Fixes
- Calendar availability for appointments that end at midnight.
- Calendar does not show schedule bar for staff not fully scheduled.
- When no staff selected, available slots not shown.
- https://bookingwp.com/forums/topic/problem-with-last-one-update-3-4-7/
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/276/the-status-bar-width-on-days-in-calendar
- https://bookingwp.com/forums/topic/integration-with-gravity-forms-product-add-ons/page/2/#post-146233
[3.4.7] - October 21, 2017
Improvements
- Removed compatibility for older version, where staff capacity was saved inside user edit screen.
- Big performance improvements, especially when staff is assigned to products.
Fixes
- https://bookingwp.com/forums/topic/integration-with-gravity-forms-product-add-ons/
- Calendar admin week view grid lines.
- Fixed availability issues for multiple staff.
[3.4.6] - October 19, 2017
✨ Feature
- Allow downloadable items with appointments.
Improvements
- Added integration with "WooCommerce Print Invoices/Packing Lists" extension.
- To reduce confusion, replaced staff inventory placeholder with N/A.
- Make sure Availability and Staff product admin menu tabs are place just below General and Inventory.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/269/wrong-appointment-status-with-pos-plugin
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/270/conflict-with-activity-log-plugin
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/271/general-tab-on-variable-products-with
- Division by zero notice.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/272/appointments-added-through-gcal-block-all
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/273/when-saving-appointment-in-backend
[3.4.5] - October 12, 2017
Improvements
- Remove ACF plugin's timepicker scripts.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/144/attach-ics-to-customer-order-complete
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/251/not-working-with-gravity-forms-add-ons
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/243/duplicate-appointments-with-wpml-in-the-my
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/252/woocommerce-multilingual-custom-pricing
[3.4.4] - October 9, 2017
Improvements
- Calendar view selection in admin saved and set to default automatically.
- Additional checks for staff existence.
Fixes
- Pagination of "My Appointments" for custom endpoints (other than "appointments") doesn't work.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/267/staff-notice-on-list-appointments
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/266/staff-members-cant-add-new-appointments
- Uncaught Exception: Invalid product.
[3.4.3] - October 3, 2017
Fix
- PHP Fatal error: Uncaught Error: Call to a member function skip_status_transition_events() on null
[3.4.2] - October 2, 2017
Improvements
- Changed terminology from "Capacity" to "Inventory" before switching to WooCommerce default inventory system.
- Week selection in admin calendar's week view by datepicker.
- Updated translations.
Fixes
- Confirmation email sent twice.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/233/changing-order-status-from-complete-to
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/224/very-confusing-order-status
[3.4.1] - September 30, 2017
Improvement
- Updated translations.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/251/not-working-with-gravity-forms-add-ons
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/227/refunding-an-appointable-product-leaves
[3.4.0] - September 29, 2017
✨ Feature
Improvements
- Added link to staff profile inside admin calendar / appointment card.
- Pagination of "My Appointments".
- Switch order of operations for
status_transitioned_handler.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/250/icon-position-issue
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/259/error-when-trying-to-delete-wocommerce
- Full day appointments missing from Day view in admin calendar.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/260/woocommerce-order-appointment-displayphp
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/229/canelation-from-frontend-doesnt-remove
- Customer cancelled appointments were not triggering cancellation emails.
- Incorrect text domain for translation.
- Appointments Calendar not functioning properly for RTL languages.
- Random availability problem.
- Calendar calculation wasn't taking into consideration days before actual appointment for duration of type days.
- Data manipulation allows appointments outside of defined slots.
- Orders with multiple cancelled appointments still show as "Completed".
- PHP notice when adding appointable product that requires confirmation to the cart.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/262/capacity-count-in-custom-pricing-is-not
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/261/capcity-not-working-with-staff
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/264/email-triggered-everytime-confirmed
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/263/wrong-spaces-left-number
- Appointment status was saved as 'pending' instead of 'pending-confirmation'.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/255/follow-ups-not-working-on-latest-version
[3.3.3] - September 19, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/256/duration-in-emails-is-wrong-in-332
- https://bookingwp.com/forums/topic/dates-greyed-out-urgent/
[3.3.2] - September 15, 2017
Fix
- Division by zero error.
[3.3.1] - September 14, 2017
Fix
- Throwing JS errors for products with daily duration.
[3.3.0] - September 14, 2017
✨ Feature
- New functionality to restrict the day an appointment can start on.
Improvements
- Optimized loading times, much faster on all levels.
- Added filters to allow switching to date created for My Account > Appointments.
- Added wc_appointments_summary_list_date filter for wc_appointments_get_summary_list.
- Moved Appointment Display to templates for orders on both front-end and admin.
- Moved Appointment Summary list to templates for orders on both front-end and admin.
- Send confirmation email for manually created appointments without an order.
- Querystring for "time" now uses more readable format. Instead of "12:00", now "1200".
- Removed "Order again" button for appointment orders.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/244/wc-memberships-with-discount-100-not-taken
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/242/time-zone-problems
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/241/sms-notification-doesn-t-work-for
- Admin calendar day view incorrect when times below 10am.
- Appointments calendar on the backend doesn't respect time format in WordPress settings.
- Appointments with orders created in admin had totals without taxes included.
- Fatal error when using woocommerce_email_recipient_appointment_confirmed
- Fatal if create_wc_appointment used to create appointment based on parent.
- Hour based slots overlapping midnight marks next day as partially booked even though it doesn't affect any of the slots.
- Refunded orders will update the Appointments status to Refunded.
- Today's availability rules were being ignored.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/246/issue-with-memberships-and-staff-extra
- Updated price HTML display to correctly show additional costs.
- Book button disabled on each price/slot calculation, prevents double appointment.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/251/not-working-with-gravity-forms-add-ons
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/248/lead-time-not-working-ok
[3.2.9.1] - August 21, 2017
Improvement
- Unavailable days show as available on calendar.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/238/weird-acting-when-duration-interval-is-55
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/239/appointment-reminders-being-triggered
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/221/latest-tc-update-46-does-not-work-with
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/218/timezone-check-for-reminder-emails
[3.2.9] - August 17, 2017
Improvement
- Book now button disabled until cost is calculated and availability checked.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/221/latest-tc-update-46-does-not-work-with
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/237/reminder-emails-not-sent
[3.2.8] - August 16, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/236/wc-memberships-not-working-ok
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/216/wc-memberships-base-price-discounted-twice
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/221/latest-tc-update-46-does-not-work-with
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/232/wrong-first-slot-with-combined-product-and
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/234/availability-rule-acting-weird
[3.2.7] - July 31, 2017
Improvements
- Double check if order has been created for the appointment.
- Overnight rules for Sunday now correctly span into Monday.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/230/fatal-error-on-the-wc-settings-emails-page
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/231/cant-edit-the-subject-and-header-email-new
[3.2.6] - July 28, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/228/my-account-appointments-throws-an-error
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/195/wrong-availability-with-time-range-date
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/208/monday-15-00-00-30-with-duration-30min-no
[3.2.5] - July 26, 2017
Fixes
- Error 500 when using external object cache, such as Memcached.
- Emails are triggered when saving an appointment and changes aren't made.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/222/no-preference-shows-no-slots-but-there-are
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/223/emails-sent-to-wrong-staff
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/226/connect-with-google-button-not-working
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/225/capacity-not-working-ok
[3.2.4] - July 24, 2017
Improvement
- Updated Product add-ons to version 2.9.0
Fixes
- Update WC 3.x compatibilities when duplicating product.
- Taxes not added when creating an appointment from admin.
- Reminder and complete cron events not set if Appointment is created without an order from the backend.
- Fatal error when appointments used with a cached objects.
- Email ID was the same for customer and admin appointment cancelled email.
- All day appointment option was being ignored on calendar after availability refactor.
- Availability rules using Date Range calculation on the frontend.
- "Connect with Google" does not save/update entries.
- Availability rules with dates in the past should be ignored for performance reasons.
- Add woocommerce_appointments_email_actions filter to allow additional Appointments emails.
- Default price being used when price rules make price 0.
- Incorrect date being checked when getting time slots vs availability rules.
- Endless loop when auto completion of appointment when it has no order.
[3.2.3] - July 19, 2017
Fixes
- Current day is not available, when lead time is less than 1 day.
- Removed support for recurring events with Google Calendar sync, due to crashes.
[3.2.2] - July 18, 2017
✨ Feature
Improvements
- Updated all translations.
- Added additional get_price checks for better external plugin compatibility.
- Updated WPML and added support for WPML multi-currency.
[3.2.1] - July 15, 2017
Fixes
- Current day is not available in any case.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/185/cant-have-2-autoselect-products-on-the
[3.2.0] - July 14, 2017
Improvements
- Moved staff capacity from user edit screen to product edit screen.
- Removed availability capacity from staff/user edit screen, due to complexity.
- Simplified availability rule code checking.
- Addon duration missing for select add-on fields.
- Staff can also add products from other staff members, but can only edit products they created.
- Partially scheduled dates now show percentage remaining for selected days as well.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/216/wc-memberships-base-price-discounted-twice
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/209/error-with-wc-memberships
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/156/make-it-compatible-with-discouts-using
- Assigning all staff at once produces mixed results.
- Double check that queried appointments don't return empty array.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/207/unavailable-dates-show-as-bookable-on
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/214/fatal-error-on-staff-appointments-list
- Delete database entries on uninstall only in case
WC_REMOVE_ALL_DATAis true. /appointments/account slug rewrite rules now stay put on permalink flush.- Staff product tab showing wrong icon.
- Only sync Google Calendar if the integration is configured.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/215/staff-members-dont-see-any-appointments
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/217/lead-time-title-od-unavailable-days-is
- Brought back filter "woocommerce_appointments_remind_before_time".
- Show "From: xy" next to price, when staff with additional cost is assigned.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/202/order-total-is-empty-when-creating
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/194/cancelling-appointment-in-edit-appointment
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/211/emails-not-working-ok-when-appointment-is
- Not showing all staff in admin select box, when required.
[3.1.9] - June 29, 2017
Improvement
Fix
[3.1.8] - June 27, 2017
Improvement
- Refactored and moved most DB queries to Data Store.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/201/calendar-in-admin-shows-sunday-as-first
- Email templates did not display cell borders correctly.
- Tweaked availability rules.
- Missing customer phone for admin created appointments.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/198/add-shop-manager-and-admin-as
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/196/product-slect-not-working-if-signed-in-as
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/143/fix-process_staff_unavailability_rules
[3.1.7] - June 22, 2017
Improvement
- Calendar appointments in ASC order by start_date.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/193/notice-in-follow-up-emails
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/195/wrong-availability-with-time-range-date
- Temporarily added https://bookingwp.com/forums/topic/order-notes-dont-seem-to-reflect-all-appointment-status-changes/#post-134484
[3.1.6] - June 21, 2017
Improvement
- When customer is a registered user, show user details before billing details.
Fixes
- Staff unavailability rules not merged correctly for Time range (date range) rules.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/182/appointment-after-midnight-doesnt-take
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/183/availability-rule-from-20-00-to-06-00
- Custom price label text. Deleted no payment for custom price label.
- Order_by argument for my_appointments was wrong, was orderby instead of order_by.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/188/staff-name-is-blank-in-follow-ups
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/175/create-appointment-from-backend-doesnt
[3.1.5] - June 7, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/180/product-capacity-doesnt-work
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/178/slots-left-wrong-when-no-preference-is
[3.1.4] - June 4, 2017
Fix
- Slots that extend over midnight are not able to schedule.
[3.1.3] - June 4, 2017
Fixes
- Availability rules for next day not working correctly.
- Custom pricing for base cost and slot cost fixes.
- Removed division and multiplier for custom slot cost as you can't multiply and divide zero.
[3.1.2] - June 2, 2017
Fix
- Midnight availability rules not working correctly.
[3.1.1] - June 1, 2017
Improvements
- All availability rules now apply for all slots
- Global capacity now overrides product capacity for all products
- Deprecated days global availability rule set by default in older plugin versions
Fix
[3.1.0] - May 30, 2017
✨ Features
- Added customizer option to edit default color scheme
- Deep WC Product Vendors integration
Improvement
- Updated translations
Fixes
- Could not override myaccount/appointments.php template
- Staff checking across multiple products.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/153/padding-not-taken-into-account-over
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/169/capacity-in-availability-rules-is-ignored
[3.0.9] - May 25, 2017
Improvement
- .ics file now attached to all email notifications, except cancelled ones:
Fixes
- Capacity issues, defined with availability rules
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/168/staff-members-can-see-all-appointment-in
[3.0.8] - May 23, 2017
Improvements
- More CRUD queries
- Refactored functions, controllers and rule manager
- "Cash on delivery" payments trigger reminders and admin/staff notifications
Fixes
- Conflict with WC Product Add-ons plugin
- Staff availability rules
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/172/availability-rules-override-to-much
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/171/changing-status-of-order-falls-into-a-loop
[3.0.7] - May 16, 2017
Fix
[3.0.6] - May 16, 2017
✨ Feature
- Set customer status to "No Show" when appointment is past due and is not paid for
Fixes
- Order ajax search now works when editing appointment
- Query for appointments didn't work correctly
- Calendar capacity was incorrect, when no staff was assigned
- Google calendar sync product name missing
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/166/hiding-duration-info-with
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/165/remove-view-my-appointments-for-guests
[3.0.5] - May 12, 2017
✨ Features
- Add-on fields inside Google Calendar sync
- On certain cases not syncing to Google calendar
Fixes
- Trashing an appointment will no longer trash its order if order has other items.
- Compatibility issue with Product Add-Ons integrations.
[3.0.4] - May 9, 2017
✨ Feature
- Added add-ons to appointment edit screen in admin
Fix
- Fixed autoselect for date/time
[3.0.3] - May 6, 2017
Fix
- Fixed Google calendar sync on appointments list
[3.0.2] - May 5, 2017
Fix
[3.0.1] - May 4, 2017
Improvement
- My account page displays better appointment data
[3.0.0] - May 4, 2017
✨ Feature
- WooCommerce 3.0 full CRUD compatibility
Improvements
- Better date/time rendering with duration always visible
- Update translations
Fixes
- The post_status field from submitdiv meta box causing unexpected transition appointment status events.
- https://bookingwp.com/forums/topic/quick-edit-in-all-posts-missing/
[2.6.3] - April 6, 2017
✨ Feature
- Added Spanish translation es_ES
Improvements
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/28/add-data-object-to-filter-for-gcal-add/diff
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/29/additional-past-and-upcoming-classes-for/diff
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/25/fix-for-datepicker-not-showing-correct/diff
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/30/fix-reference-to-customer-name-when-added/diff
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/27/fix-for-issue-153-padding-not-taken-into/diff
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/23/show-the-date-in-format-when-selected/diff
[2.6.2] - March 2, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/21/format-single-day-view-date-by-general
- https://bitbucket.org/bookingwp/woocommerce-appointments/pull-requests/22/urgent-fix-administration-calendar-query/diff
[2.6.1] - March 1, 2017
Fix
[2.6.0] - February 26, 2017
✨ Feature
Improvements
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/110/number-of-appointments-not-corresponding
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/120/add-php-code-sniffer-and-wpcs-to
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/129/follow-up-plugin-integration-missing
- ALL PHP files linted and improved for better readability
- Updated all languages
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/119/remove-first-ajax-request-on-cost
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/123/missing-slot-for-24-hour-business
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/125/display-duration-as-weeks-instead-of-days
- Issue with support for both padded appointments and 24/7 appointments (existing appointments query fix)
[2.5.2] - February 21, 2017
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/127/padding-time-is-not-taken-into-account
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/130/timezone-issues-with-different-date-format
[2.5.1] - January 23, 2017
Improvement
- Linted all PHP files