Appointments Changelog
A comprehensive record of all changes, improvements, and fixes made to the WooCommerce Appointments plugin across all versions.
Badges:LatestCurrent stable releasePre-releaseBeta, RC, or alpha version
[5.2.8] - March 3, 2026
LatestImprovements
- Clear date, time, addons and cost on month/year switching on the date picker.
- Remove all transient caching from the slot generation, actually slows down loading with indexing enabled.
- Add a fail-safe approach to "woocommerce_appointments_time_slots" filter by adding back the 10th arg.
Fixes
- all-day appointments are timezone agnostic, treat them like that in admin calendar and elsewhere.
- edge case when indexing is disabled, indexing rules and appointments should not add them to the cache table.
- Failed Schedule Action wc-appointment-reminder (Twilio SMS connection). Issue #1305.
- Rule priority order should be respected from DB query. Issue #1306.
- When timezones are disabled for frontend do not account for the timezone cookie, which might remain from previous state.
- Admin datepicker header navigation SCSS is slightly off.
- Recurring time rule lasting till midnight does not show day as available on the calendar.
[5.2.7] - February 28, 2026
Fixes
- Staff availability rules are now indexed to the availability cache during save (synchronously), same as global rules, so availability is correct immediately after saving.
- Staff rule indexing was previously deferred to async jobs and could result in corrupted or missing cache entries; indexing now runs in the same request after the transaction commit.
[5.2.6] - February 28, 2026
Improvement
- Clear the date selection when switching months, so users start fresh in the new month without a confusing half-selected state.
Fixes
- Google Calendar sync is not converting to timezone properly when syncing back from the calendar in utc time zone.
- When main calendar is disconnected, leave staff sync intact, should work uninterrupted.
[5.2.5] - February 26, 2026
✨ Features
- Add timezone enable/disable setting, not just the filter. Filter overrides the setting.
- Add much more context to admin/staff when customer books in different timezone.
- Add timezone context to admin and staff separately, when in different timezone for all involved: admin, staff and customer.
Improvements
- Remove "—" before time selection in date-time form.
- Gcal sync should not deuthorize instantly and should deuthorize only after 3 failed attempts.
- Stale appointments shown from cache briefly and then hidden. Issue #1301.
- Add a setting to disable the timezones inside Appointment WooCommerce settings.
- Updated all translations. Added translations for the General product settings.
- FOUC fixes applied to availability rule settings, which did not render nice from initial load.
- Show uploaded files in addon fields as links in appointment viewing modal in admin.
- Centralize cart simulation for testing, so any plugin can hook in, woocommerce default factored in.
- Snippet to show month/year dropdown on frontend booking form doesn't work. Issue #1300.
Fixes
- date and time format should never use localize version for internal checking. 3-layer fix applied.
- gcal_availability_rules() calls set_sync_token() without user context.
- sync_from_gcal should return after the staff loop to avoid re-running the global sync with a potentially corrupted context.
- date and time format should never use localize version for internal checking. 3-layer fix applied.
- When staff disconnects the sync with gcal, it disconnects the main calendar sync. clear local tokens only. Issue #1298.
- When staff disconnects the sync with gcal, it should clear their calendar as well as gcal config to avoid stale data.
- PayPal sandbox testing can cause overbooking. Not a live example, but still should not do that.
- Fix already_indexed_in_request guard to track status — allow re-index on status change.
- Count of synced rules includes expired rules, but shouldn't.
- Yellow background highlighting availability rows should be removed when out of input focus.
- Timezones strtching to other days when switched do not open those days for certain availability rule types.
[5.2.4] - February 21, 2026
✨ Feature
- Added a 'woocommerce_appointments_show_timezone' filter that allows disabling timezone coversions plugin-wide. More in developer docs.
Improvements
- Disable datepicker caching, can lead to false date disabling and doesn't add much to rendering speed.
- Also show timezone shortname and description for product and global availability rules.
- Show customer's timezone in their admin profile and in staff shown Customers admin page.
- Updated all translations. Merged some almost the same strings for translation.
Fixes
- Double-counting in booked_qty_per_day_by_staff where specific-staff appointments are incorrectly pushed into the [0] aggregate bucket.
- Staff selection in product edit screen needs CSS fix.
[5.2.3] - February 21, 2026
Fixes
- Appointments with month duration not showing slots.
- Display error earlier in slot generation so it does not get caught in loading loop.
- No preference availability should not be overwritten with empty array.
- Handle overnight rules better, availability rule with same start and end should apply 24/7 availability.
[5.2.2] - February 20, 2026
✨ Feature
- Staff permissions: Rules set by staff now sectioned into minimal, standard and full, staff doesn't need that many options.
Improvements
- ICS export not working for other calendars (only works for gCal). Issue #970.
- Updated all translations. Staff permission settings missing translations.
- Appointments edited in admin calendar should instantly sync to the Google calendar, when connected.
- Appointment creation modal now has slightly polised UX, less autoclosing/autoopening, better timing and spacing.
- Appointment creation modal and viewing modal should have a simple link to appointment edit page, no fancy redirects.
Fixes
- Staff permission for editing and creating products not working, but should grant staff access to all products.
- Automatically assigned staff together issue when no staff assigned. Issue #1292.
- Patch non-indexed path where showing sold out slots could trigger fatal error through filter.
- Minimal CSS patch to prevent transition effect (added elsewhere) on datepicker back/forward buttons.
- Patch to show status drodown correctly on appointment viewing modal when statuses have long translations.
- Timezone change to UTC on frontend not working. Issue #1294.
- Timezone text on frontend not changing when selecting default. Issue #1295.
- Timezone overnight change not reflected on the calendar date picker. Issue #438.
- Appointment vierwing modal shows wrong duration for daily or monthly duration types. Issue #1296.
- Timezone should also be added to daily and monthly durations during creation or editing in admin calendar. Issue #1296.
- When product is selected in modal, end date/time is not adjusted based on product duration.
- When staff creates appointment in modal, they should be assigned to the product, not any other staff member.
- When staff is logged in, admin calendar should server preload appointment for the staff, but loads the via API (slower).
- Fix get_slots_availability to expand DB query range by padding. Issue #1256.
- Fix indexed path to include padded range more strictly. Issue #1256.
[5.2.1] - February 17, 2026
Improvements
- Remove JS hover effect for back/forward buttons on the frontend date picker, CSS styling only. Issue #1276.
- Add back option for Add as customer in modal for creating appointment, needs Screen options enabling. Issue #1290.
- Add better error feedback notice for quantity in admin modal for creating appointments.
- Refactored responsiveness and mobile UX for viewing and creating appointment modals in admin.
- Admin modal for viewing appointments status changing for more statuses, moved into conntent from modal footer.
- Updated all translations.
Fixes
- Admin modal for creating appointments should refresh mini date picker when quantity or staff chanage. Issue #1289.
- Staff dashboard link to availability section in their profile is broken.
[5.2.0] - February 16, 2026
✨ Features
- Staff dashboard: Migrated from custom submenu page to native WordPress dashboard widgets using wp_add_dashboard_widget().
- Staff dashboard: 8 individual widgets — Overview, Appointment Trends, Upcoming Appointments, Insights, This Week, Monthly Schedule, Top Products, Quick Actions.
- Staff dashboard: 3-column layout with automatic widget placement for staff users on first visit.
- Staff dashboard: Pending appointments alert rendered as native WP admin notice at the top of the dashboard.
- Refactored email timezone approach so each recipient will receive appointment times in separate email in their own timezone.
- Refactored admin calendar filtering system to work much better.
Improvements
- Staff dashboard: Removed forced redirect from WP dashboard (index.php) to custom page — staff now land on the native dashboard.
- Staff dashboard: WordPress Dashboard menu item now visible for staff users.
- Staff dashboard: Admin bar "Dashboard" link points to WP dashboard instead of old custom page.
- Staff dashboard: Default WP/WooCommerce widgets removed for staff to keep dashboard focused on appointments.
- Staff dashboard: Split monolithic template into 8 widget partials in views/dashboard-widgets/.
- Remove extra week addded to month view in admin as it adds confusion.
- Missed cached/indexed path are now patched: slots API, availability widget and block, finding default date.
- Add timezone in my-account, so customer always know which timezone appointment time is displayed in.
- Update all translations. Fixed mistranslated strings.
- When panel in admin modal for creating appointments is toggled gently scroll to the content if outside the viewport.
- Make past appointments faded, but not semi-transparent.
- Faster product preload for appointment creation modal.
- Add a legend to the footer of admin calendar, indicating stripped background meaning.
- Timezone setting for staff should include current timezone suggestion, same as customer setting does in my-account on frontend.
- Add appointment ID to toast messages in admin calendar.
- Staff dashboard should align more with the profile color scheme staff selects.
- Staff dashboard: Removed old html-staff-dashboard.php template, add_dashboard_page(), render_dashboard(), and redirect_staff_dashboard() methods.
- Staff dashboard: Updated all references from old page slug (wca-staff-dashboard) to admin_url('index.php').
Fixes
- Staff can create appointments with any product if permission allows it, otherwise not.
- Staff control panel live update/refresh does not work.
- Availability check in modal wrongly allowed manually entered time that wasn't available with selected staff.
- Are you sure not translatable in admin modal prompt.
- When product is selected in admin calendar filter, preselect it when creating appointment from calendar with name set, not just ID.
- Current week widget for staff did not account for timezone.
- Admin modal for creating appointments has slightly bigger font now, 13->14px.
- DST adjustments on all levels, use wall-clock-based conversion instead of offset, time conversion should follow exact date as well.
- Email order summary timezone conversion not working for admin and staff and still shows times in customers timezone.
- Some email templates are falsely flagged as not-admin email types, but they are, timezone conversion suffers in some cases.
- "appointment_time_from" validates input incorrectly inside modal for creating appointments.
- Toast message in admin calendar should only appear once for single action.
- Current time and day in week and day view should also be timezone aware in admin calendar.
- Invalidate cache selectively in admin calendar when appointments change to update stale cache and prevent double rendering.
- Recurring rules display also needs to account for the timezone of user.
- When admin is editing staff profile, edit in admin's timezone, but still show what timezone staff has set.
[5.2.0-beta5] - February 12, 2026
Pre-release✨ Features
- Admin modal: Month-duration products now show a 4×3 month-picker grid in the mini calendar with per-month availability.
- Admin modal: New "Browse availability" toggle button for on-demand calendar/slots display instead of always-visible. Issue #1278.
- Admin modal: Progressive disclosure — details, staff, and calendar sections hidden until product is selected, with reveal animation.
- Admin calendar: Semantic Dashicons (calendar, clock, user, staff) replace text labels in the viewing modal.
- Admin calendar: Product color dot indicator shown next to product name in the viewing modal.
Improvements
- Admin modal: Replaced WooCommerce Backbone modal shell with custom wca-appointment-modal (own positioning, backdrop, header, footer).
- Admin modal: All event selectors scoped to .wca-appointment-modal--create to prevent bleeding into React viewing modal.
- Admin modal: Staff field moved to its own section row, shown/hidden based on whether product has staff.
- Admin modal: Select2 dropdowns restyled with underline inputs, custom arrow icon, and minimalist dropdown via wca-modal-dropdown class.
- Admin modal: Billing and add-ons sections use border-top separator with dashicon icons instead of grey background.
- Admin modal: Billing fields switched to placeholder-based inputs with screen-reader-text labels.
- Admin modal: Human-readable duration label returned from get_product_data AJAX endpoint.
- Admin modal: Month-based products navigate by year in mini calendar (prev/next year arrows).
- Admin modal: Removed showPriceLoading/hidePriceLoading functions and price spinner element.
- Admin modal: Removed dead initOrderSearch(), initCustomerSearch(), and onCustomerTypeChange() functions.
- Admin modal: Deduplicated customer-row and order-row flex layout into shared selector.
- Admin modal: Addons validation notice styling consolidated with shared notice design.
- Admin calendar: Viewing modal narrowed from 500px to 420px with auto-width key column grid.
- Admin calendar: Product calColor stored in extendedProps for consistent color propagation.
Fix
- Admin modal: get_month_availability endpoint now returns actual per-month availability for month-duration products instead of marking all unavailable.
[5.2.0-beta4] - February 9, 2026
Pre-release✨ Features
- Admin modal: Availability-first UX with inline mini calendar showing day-level availability indicators.
- Admin modal: Slot chips panel displaying available time slots with capacity badges and staff counts.
- Admin modal: New get_day_slots AJAX endpoint returning per-slot availability with capacity and staff data.
- Admin modal: New get_month_availability AJAX endpoint returning lightweight day-level availability summary.
Improvements
- Admin modal: Selecting a date now proactively loads and displays available time slots.
- Admin modal: Mini calendar navigates months with prev/next arrows and highlights today, selected date, and availability dots.
- Admin modal: Clicking a slot chip auto-fills the from/to time inputs with correct duration.
- Admin modal: Staff and quantity changes refresh the availability-first UI in real time.
- Admin modal: Shimmer loading animations for calendar and slot panel during AJAX requests.
- Admin modal: Client-side caching for month availability (60s TTL) and day slots (30s TTL) to reduce server load.
- Admin modal: Add locale to mini calendar in modal for creating appointments.
- Admin calendar: Do not add timezone conversion in month view to avoid rendering issue when staf is in different timezone.
- Admin calendar: Truncate very long rule title displayed inside unavailable rule tooltip.
- Staff should be redirected to their dashboard when they log in.
Fix
- Product default color should be #0073aa, not black.
[5.2.0-beta3] - February 9, 2026
Pre-releaseImprovements
- Compatibility with WooCommerce 10.5.
- Managing rules in admin should work great on mobile.
- Increase same-time stacked appointments to 10 from 4. Issue #1288.
- UNavailable rule shown in admin caledar should show more context. Issue #1285.
- Remove cancelled appointments from admin calendar. Issue #1287.
- Removed double indexing run on every rule when re-index is selected.
Fixes
- JS error appears due to invalid recurring rule, which should be handled better. Issue #1280.
- Bug with default Addon checkbox. Issue #1277.
- Old "show sold out times" snippet causes Internal server error in 5.x. Issue #1284.
- Create order for past date on frontend. Issue #1274.
- Overbooking could occur if inventory changes or sold out option is enabled in final checkout. Issue #1275.
- Include sold out was hardcoded to false, show them with a filter "woocommerce_appointments_include_sold_out" set to true.
[5.2.0-beta2] - February 6, 2026
Pre-release✨ Features
- Staff Portal: Comprehensive staff permissions system with granular permissions across multiple categories.
- Staff Portal: Dedicated staff dashboard with appointment stats, quick actions, and upcoming appointments.
- Staff Portal: Permission presets (Minimal, Standard, Advanced) for quick staff permission setup.
- Staff Portal: Simplified admin menu for staff users showing only relevant items.
- Staff Portal: New "Staff Permissions" settings section under WooCommerce > Settings > Appointments.
Improvements
- Performance optimization. Patched the slow calendar query.
- Admin calendar displays gray stripes for past days in month and week views.
- Admin calendar should only show toast messages for approved status changes.
- Admin calendar should use staff members selected language for all translatable strings, including date_i18n.
- Admin calendar should batch together messages for multiple same-rule updates.
- Admin calendar bg events (unavailable slots) should be more apparent.
- Rebuild new js files to vanilla js if jquery is not required.
- When staff is logged in, preselect the staff in admin calendar and show their rules as unavailability striped bg events.
- Do not show account creation checkbox if selected customer is already registered.
- Permission for staff to export their appointments, when enabled.
- Update all translations. Added more than 150 new strings for each language.
Fixes
- Several languages had wrongly translated strings, broken HTML and singular/plural nouns mistranslated.
- Admin calendar does not show staff "custom" rule type.
- Admin calendar does not show staff availability rules in staff members timezone.
- Order notes api not working when staff is logged in admin calendar, permission issue.
- Admin calendar, switching from month to week view does not load unavailable rules.
[5.2.0-beta1] - January 30, 2026
Pre-release✨ Features
- Timezone displays now use short abbreviations (CET, PT, JST, EAT, etc.) for standalone display.
- New WC_Appointments_Rate_Limiter class for centralized rate limiting with IP detection and whitelist support.
- New WC_Appointments_Timezone_Helper class for centralized timezone handling.
- Customer timezone preference in My Account > Account Details with browser detection prompt.
- Staff timezone preference in admin user profile for staff members.
- Appointments now tagged with creation timezone metadata (_creation_tz) for accurate DST handling.
- Timezone selector now includes "Default" option that dynamically reflects site timezone.
Improvements
- BREAKING: Timezone support now always enabled site-wide (product-level "Customer Timezones?" setting deprecated).
- Timezone dropdown shows city names with short abbreviations appended (e.g., "Berlin — CET (UTC+1)").
- Hover on timezone options shows full timezone identifier with short name.
- All timezone indicators across admin and frontend use short names with UTC offsets.
- Booking form auto-populates timezone from user preference (Priority: User preference > Cookie > Default/site timezone).
- Enhanced email timezone display with fallback to customer's account timezone preference.
- Timezone cookie now also saves to user meta for logged-in users (persistent preference).
- Added more email hooks for timezone display (woocommerce_email_before_order_table, woocommerce_email_order_details).
- Discrete timezone indicator shown next to dates in admin when timezone differs from site timezone.
- Admin appointment list shows timezone indicator in "When" column for cross-timezone appointments.
- Admin appointment details meta box shows timezone indicator with site timezone reference.
- Admin calendar modal shows timezone indicator when customer timezone differs from site timezone.
- Staff availability rules editor shows timezone indicator confirming what timezone rules are edited in.
- Appointment edit screen Date/Time section shows timezone indicator confirming editing timezone.
- Timezone dropdown now properly shows "Default (City)" as selected when no preference is saved..
- Rate limiter defaults increased to 60 requests/minute for moderate traffic handling (filterable via hooks).
- Rate limiter now supports IP whitelist filter and context-specific limit overrides.
- Empty timezone preference now correctly uses site timezone dynamically (follows site changes).
- Cart/checkout shows timezone indicator on date/time fields when customer timezone differs from site.
- Browser timezone auto-detection always active with timezone selector shown on all appointment products.
- Browser auto-detection no longer overrides logged-in user's saved timezone preference.
Fixes
- Added legacy fallback timezone conversion when timestamp field not available.
- Fixed double timezone conversion bug: slots now store original timestamp to prevent conversion on both display AND submission.
- Popover with lots of appointments displayed needs limited max height to prevent spilling outside viewport in admin calendar.
- Optimize saving of hundreds or rules at a time in staff profile page.
Securitys
- Added rate limiting to public AJAX endpoints (calculate_costs, get_time_slots_for_date, find_scheduled_day_slots) to prevent abuse.
- Removed unnecessary nopriv hook from SSE endpoint (admin capability already required).
- Improved input sanitization in AJAX handlers with consistent use of wp_unslash() and sanitization functions.
- Added conditional nonce verification for find_scheduled_day_slots with stricter rate limiting on failure.
[5.1.2] - January 26, 2026
✨ Feature
- Admin calendar toast notifications: Real-time updates when appointments are created, updated, cancelled, or rescheduled via SSE.
Improvements
- Customer contact icons in appointment modal: Email and phone icons appear on hover with click-to-action (mailto/tel).
- Appointment needs to use staff_ids as single source of truth, added comprehensive checks to ensure this.
- Guest appointment that leaves name/surname should display it in admin calendar even if not registered.
- Update all translations.
- Show Guest name in Calendar view + change default calendar view. Issue #1271.
- Appointment modal has all content filterable through React/JS.
- Ensure plugin installation does not happen too early and everything hooks after 'init' call to avoid potential issues.
- Deposits with one full and one part payment appointment in the same order. Issue #1270.
Fixes
- Resolved double notification issue when cancelling appointments by improving SSE event deduplication.
- SSE not updating admin calendar for appointments created via shortcode checkout (deduplication was blocking status change events in same request).
- Fix NL translation.
- Staff 2-way sync doesn't work fine with multiple calendars sync (staff + global). Issue #1268.
- Sync issue: when parent recurring event was deleted, modified instance availability rules remained orphaned. Issue #1216.
[5.1.1] - January 22, 2026
Fixes
- Staff permissions in admin calendar: Staff members without 'manage_others_appointments' capability can now only see their own appointments. Issue #1265.
- Add-on price not calculated correctly with product quantity (flat fee, quantity-based, percentage-based). Issue #1266.
- WCML 5.5.x compatibility: Restored version checking logic for WCML_Product_Addons constructor. Issue #1264.
- Google Calendar 2-way sync: Changes made in gCal were not reflecting in WP due to overly aggressive date comparison check blocking updates. Issue #1263.
[5.1.0] - January 21, 2026
Improvements
- Updated What's New admin page with better styling and to include clear roadmap, updates with improved release notes.
- Refining admin calendar hover effects, turn past appointments grayscale and unavailable time ranges into stripes.
Fixes
- Non-recurring rules could expire same day, before the 30 days grace period. Issue #1261.
- Cart persistence: Rewrote cart_loaded_from_session with whitelist approach to prevent premature cart clearing with any payment plugin.
- Only removes items from cart when order is definitively paid (processing/completed/partial-payment).
- Removed delete_in_cart_appointments_before_empty method as it was too unpredictable.
[5.1.0-rc2] - January 19, 2026
Pre-release✨ Feature
- Create new Calendar API, used internally to power the new admin calendar.
Improvements
- Instantly load appointment modal and all data when selected in admin calendar.
- Show hover effects in admin calendar.
- Show admin calendar times in WordPress time format set by user.
- Remove automatic redirect to what's new admin page after update/installation. Issue #1260.
- Update all translations.
Fixes
- Error with "autoselect first slot" in 5.1.0-rc1. Issue #1259.
- Appointments sync back as availability rules in 5.1.0-rc1. Issue #1258.
- When syncing back from google calendar, make sure modified date is processed correctly. Issue #1253.
- PayPal Payments plugin compatibility: Disable smart buttons on appointment product pages to prevent cart issues.
- "Requires confirmation" with 100% discount coupon now correctly completes order after confirmation. Issue #1254.
- Make sure 'checkout-draft' doesn't clear appointments from cart/checkout with persistent sessions.
[5.1.0-rc1] - January 15, 2026
Pre-release✨ Feature
- Export system refactoring: Implemented unified exporter interface for CSV and ICS formats.
Improvements
- Added Export Manager class to centralize exporter registration and routing.
- Reorganized all exporter files under includes/admin/export/ for better organization.
- Added format selection (CSV/ICS) to admin export page.
- ICS export now respects all filter options (date range, products, staff, add-ons).
- Renamed WC_Appointment_CSV_Exporter to WC_Appointments_CSV_Exporter for consistency.
- Update all translations to account for updated and new strings.
- Interval should start from first available slot. Issue #1214.
Fixes
- Staff with gCal sync issue 5.1.0-beta2.
- WooCommerce Deposits not working ok on any more. Issue #1250.
- Do not mark global calendar unavailable, when availability rule doesn't cover all days.
- Indexing turned on makes produce Interval start from midnight instead of inside each available range. Issue #1252.
- When there are available gaps but not long enough for the whole appointment, the day is clickable, still not available. Issue #1252.
- Appointment remains in cart as order is created too late in some cases.
[5.1.0-beta3] - January 9, 2026
Pre-releaseImprovements
- Optimized slow appointment queries by adding composite index on (post_id, meta_key) to postmeta table.
- Query optimization: Use INNER JOIN instead of LEFT JOIN when meta values are required (used in WHERE or ORDER BY).
- Query optimization: Use EXISTS subqueries for filtering conditions instead of JOINs when meta is not used in ORDER BY (significantly faster).
- Query optimization: Only JOIN meta keys that are needed for ORDER BY, use EXISTS for pure filtering (reduces JOIN overhead).
- Optimized get_qty_input_max() query: Replaced OR conditions with UNION for better index usage and performance.
- Added composite index on availability_cache table (source, qty, appointable, scope, product_id, staff_id, source_id) for get_qty_input_max() queries.
- Added automatic index creation for appointment postmeta queries on plugin activation/update.
- Added index verification and logging to ensure indexes are created successfully.
- Phase 3: Single Responsibility Refactoring - Extracted booking logic into dedicated classes.
- Created WC_Appointment_Booking_Lock class with exponential backoff retry mechanism.
- Created WC_Appointment_Booking_Handler class to centralize booking operations.
- Refactored create_wc_appointment() and add_appointment_from_cart_data() to use booking handler.
- Updated booking lock functions to use WC_Appointment_Booking_Lock class with backward compatibility.
- Admin modal customer creation now saves all billing fields to user account, matching checkout.
- Admin modal now saves billing data for existing customers when provided.
- Admin modal staff selection properly handles multiple staff scenarios and "No preference" option.
- Admin modal "Create account" checkbox automatically hides when customer is selected.
- Added comprehensive timezone architecture documentation across codebase. See docs/TIMEZONE_ARCHITECTURE.md.
- Significantly improved performance of get_appointment_ids_by() queries, especially for customer appointment lookups with date filters. Reduced from 3 JOINs to 1 JOIN + 2 EXISTS subqueries for typical queries.
- Improved get_qty_input_max() query performance by using UNION instead of OR conditions, allowing MySQL to use indexes more efficiently.
Fixes
- Fixed staff selection field not being enabled when multiple staff available.
- Fixed array to string conversion warning when creating appointments in admin modal.
- Admin modal staff selection only disables when "all staff assigned together", not when staff data is temporarily empty.
- Admin modal now randomly selects staff when "no preference" is selected, matching frontend behavior.
- Fixed timezone handling where selecting a day showed 23:00 for previous day. Changed to local methods in timestamp extraction.
[5.1.0-beta2] - January 8, 2026
Pre-releaseImprovements
- Document the whole code base properly. PHPDoc was missing or wasn't done correctly for a lot of cases.
- Querystring date/month/time selections now use direct function calls instead of triggering click events.
- Optimized WC_Appointments_Cache::set() to avoid unnecessary database writes when values haven't changed.
- License activation, when limit is reached now displays the notice that reflects this.
Fixes
- REST API v2 slots endpoint now correctly returns WP_REST_Response instead of array.
- REST API v2 slots endpoint date-only max_date parameter now correctly includes all slots on the day.
- "Use legacy calendar temporarily" option does not work.
- Programmatic clicks from date/month/time picker now stop propagation to prevent theme conflicts.
- Unavailable slots are no longer displayed when staff rules make them unavailable.
- Latest WooPayments (10.4.0) causes Internal server error on wc_appointments_calculate_costs.
[5.1.0-beta1] - January 5, 2026
Pre-releaseImprovements
- event.stopPropagation() on time slot click.
- PHP modernization: Added 5 interfaces for better code contracts and type safety.
- PHP modernization: Created 2 traits to eliminate code duplication across 8 classes.
- PHP modernization: Refactored 3 meta box classes to use shared trait, eliminating ~45 lines.
- PHP modernization: Implemented exporter interface in CSV and ICS exporters.
- PHP modernization: Refactored 5 manager classes to use shared manager trait.
- PHP modernization: Updated integration classes to implement integration interface.
- Modernization of integrations usage and dependencies.
Fix
- License management refresh shows notice and deactivation doesn't hide it.
[5.0.2] - January 4, 2026
Improvement
- Speed up loading of avatar, staff and order in admin calendar appointment modal.
[5.0.1] - January 3, 2026
Improvements
- Update documentation suggestions to the new docs.bookingwp.com site.
- Re-index up to retention date, do not index all appointments.
- Speed up re-indexing and avoid logging deletion, truncate instead.
Fixes
- Re-indexing large amounts of data should not result in PHP timeout.
- Next suggest time in admin modal for creating appointment should not use timezone conversion twice.
[5.0.0] - January 2, 2026
Improvements
- Compatibility with WooCommerce 10.4.
- 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
Pre-releaseImprovements
- 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
Pre-releaseImprovements
- 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
Pre-releaseImprovements
- 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
Pre-release✨ 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
Pre-release✨ 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
Pre-release✨ 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
Pre-releaseImprovements
- 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
Pre-release✨ 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
Pre-release✨ 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
Pre-release✨ 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
Pre-release✨ 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
Pre-release✨ 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
Fix
[2.5.0] - January 22, 2017
Improvement
- Better automatic updates for the plugin.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/102/autoselect-doesnt-work-if-current-month
- Better slot availability checking, when multiple staff is present. Added missing slots.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/112/css-rules-for-global-availablity
[2.4.9] - January 20, 2017
Improvements
- Added filter for time slots: 'woocommerce_appointments_time_slots_html'.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/28/deleting-staff-should-update-products
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/100/date-time-editing-for-approved-confirmed
- Updated translations.
Fixes
- Fixed Google Calendar response_move variable notice.
- Google calndar events not synced into existing products correctly.
[2.4.8] - January 19, 2017
Improvement
- Added missing appointment_id variable to Follow Ups plugin integration.
Fixes
- Only schedule reminder for future appointments.
- Midnight being 1 minute short is now fixed.
- Datetime checking now works for the full appointment duration and not just intervals.
- Added missing $minutes_not_available variable for checking scheduled out time.
- Saving staff clears transients correctly.
[2.4.7] - January 6, 2017
Fixes
- Notices on comflict not working correctly.
- Clearing transients on staff deleting on product edit screen.
- Removed unused Appointment Notification email template to reduce confusion.
[2.4.6] - January 4, 2017
✨ Feature
- Notice on appointment conflicts in admin
Improvements
- Deprecated 'woocommerce_appointments_appointment_cost_string' filter
- Date/time editing for approved/confirmed appointment should reschedule reminders.
- Better organized external integration classes
Fixes
- Frontend CSS fixes for various themes
- Added plugin version number to all JS files for caching issues.
- Clearing transients on staff saving on product edit screen.
- https://bookingwp.com/forums/topic/not-sending-appointment-confirmation-email-and-error/
[2.4.5] - December 26, 2016
Fixes
- Minute slots shows not available when paired with time range with date rule type.
- Blogname not shown when cancelling appointments via bulk order.
- Availability rules ignored for hour duration type in certain configurations.
- Form fields don't save due to non-indexed form arrays.
- Fully scheduled days showing up as partially scheduled days and can be over scheduled.
- Product add on not calculating on when the duration unit was set to day.
[2.4.4] - December 23, 2016
Improvements
- Updated Product add-ons to version 2.7.26
- Dropped some support for WooCommerce 2.1 or older
Fix
- Some date format might be causing unintended message: "The earliest appointment possible is currently..."
[2.4.3] - December 14, 2016
Fixes
- https://bookingwp.com/forums/topic/appointment-confirmation-not-working-after-new-version-update-yesterday/
- https://bookingwp.com/forums/topic/only-one-slot-available-for-appointment/
[2.4.2] - December 9, 2016
Improvement
- Updated translations
Fix
- Availability rules issues.
[2.4.1] - December 7, 2016
Fix
- PHP error when adding appointment in admin.
[2.4.0] - December 7, 2016
✨ Features
- Better support for Deposits partialy paid status.
- Full compatibitily with Follow Up Emails extensions 5.0
Improvements
- Dropped support for WooCommerce 2.2 or older
- Improved cutomer metabox
Fixes
- "Time Range (date range)" availability rule now works as it should
- Different rule types couldn't be used on the same product as priorities were not respected across types.
- Unavailable slots showed when rule time range goes beyond midnight (e.g. 9:30 PM - 06:30 AM )
- Date with time showed days as not available when only a few hours was set is not available.
- Multiple appointments per order cancellation emails polluted email data.
[2.3.0] - November 16, 2016
Improvements
- Filter
woocommerce_appointments_get_posted_datato filter the data within an ajax request. - Filter
woocommerce_appointment_is_scheduled_on_day. - Appointment status strings can be translated.
- Refactored appointment product query, broken into several parts
- Better code quality
- Updated translations
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/98/customer-status-on-completed-appointment
- Cache is not emptying properly.
- In cart appointments not showing unavailable in calendar.
- Appointment spanning into multi-day shows 0 slots available.
- Confirmation email sent with wrong dates when creating and changing an appointment date/time in admin.
[2.2.9] - November 2, 2016
✨ Feature
- Set up advanced caching functions for implementation with one of next updates
Improvement
- Updated Product add-ons to 2.7.25
Fix
- Staff capacity re-fix
[2.2.8] - October 25, 2016
Improvement
- Minor performance upgrade
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/93/synching-repeated-events-from-google
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/83/hide-others-appointments-with-staff-role
- Staff capacity
[2.2.7] - October 19, 2016
✨ Feature
- Introduced staff capacity
Improvement
- Updated all translations
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/90/appointment-status-bug
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/84/multiply-duration-with-add-on-multiplier
- Fixed overflow issue for calendar in admin, where appointments would stretch far right
[2.2.6] - October 14, 2016
Fix
[2.2.5] - October 14, 2016
Improvement
- Appointment filtering by staf and/or product available
Fixes
- No more duplicates from Google Calendar sync to multiple sites
- Appointment filtering now works for date and status inside appointment list table
[2.2.4] - October 13, 2016
✨ Feature
Improvements
- Slightly optimized code for better performance
- Added filter 'woocommerce_appointments_convert_to_hours'
- Unavailable times don't show up for multiple staff assigned any more
- Better day availability detection for multi-day duration
[2.2.3] - October 5, 2016
Fix
[2.2.2] - October 5, 2016
Fix
- Slots scheduled on Google Calendar not greyed out on calendar
[2.2.1] - October 4, 2016
Improvement
- Updated Product add-ons to 2.7.24
Fixes
- Live Google Calendar sync now connects to correct resource ID
- Syncing all statuses now possible
[2.2.0] - October 3, 2016
✨ Features
- Calendar now has option to see all staff in columns for Day View
- Google Calendar v2
- Ability to define minimum and maximum quantity required for schduling
Improvements
- Calendar dilog box has better styling and customer avatars are enabled
- Day View has been improved and allows for better display
- Simpler query for appointable products
- Twilio SMS now better integrated
Fix
[2.1.6] - September 16, 2016
Improvements
- Added filter 'woocommerce_appointments_get_staff_assignment'
- Product Add-ons: Duration label can be hidden for customers
- Product Add-ons: Price label can be hidden for customers
Fix
- Better integration with plugin WooCommerce Twilio SMS Notification
[2.1.5] - September 14, 2016
Improvement
- Updated Product add-ons to 2.7.23
Fixes
- https://bookingwp.com/forums/topic/received-3-email-when-appointment-status-updated/
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/74/appointment-edit-with-shop-staff-role
[2.1.4] - September 5, 2016
✨ Feature
Improvements
- Added much better WPML + WooCommerce Multilingual support
- Priority for availability is now on product level: Product < Staff < Global
- When duration is set to multiple days, all days available for scheduling are highlighted, not just start date
- Updated My Appointments template page under My Account !IMPORTANT Save permalinks to take into account updated structure
- Updated all translations
Fixes
- Renamed main plugin filename.
- Email recipients not showing "customer" in email settings.
[2.1.3] - September 1, 2016
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/68/staff-date-range-time-range-date-range-bug
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/71/order-status-notes
[2.1.2] - August 31, 2016
Improvements
- Updating appointment status manually now triggers events like reminder emails etc.
- Deprecated filter 'woocommerce_appointments_remind_before_days' and replaced it with 'woocommerce_appointments_remind_before_time'
- New filter 'woocommerce_appointments_remind_before_time' now allows you to specify '1 hour' or '1 day' etc.
- When staff is changed and autoselected date/time is on, don't reload the whole calendar
Fixes
- https://bookingwp.com/forums/topic/wrong-message/
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/64/malfunctioning-appointments-nonsense
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/65/bug-with-staff-availability-rules
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/68/staff-date-range-time-range-date-range-bug
- Fatal error: Uncaught Error: Class 'WC_Appointments_Admin' not found
[2.1.1] - August 19, 2016
Fix
- Email templates now copied to woocommerce/ folder for overriding
[2.1.0] - August 18, 2016
Improvements
- Moved all template overrides from /woocommerce-appointments/ to core /woocommerce/ theme folder
- Support core template overrides scan via 'woocommerce_template_overrides_scan_paths'.
- Introduced better template versioning, baked into core WooCommerce system
- Optimized DB query for existing appointment
- Updated all translations
[2.0.1] - August 16, 2016
Improvement
- Admin calendar with miultiple staff assigned
Fixes
- Gravity Forms Product Add-ons now works with newer versions
- Global Add-ons now work with duration as well
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/60/multiple-staff-will-not-appear-on-edit
[2.0.0] - August 12, 2016
✨ Features
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/22/assign-multiple-staff-members-to-same
- Added French translation
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/57/add-on-duration-for-multiple-days
Improvements
- Updated all translations
- Avaialbility rules and capacity now work across board without any known glitches
- Updated all email templates !IMPORTANT if you edited email templates
- Product and staff now separated in admin
- Padding is now simplified and works much smoother, when padding times are evalauted for multiple product for same staff
- Added template versioning for better future compatibility
Fixes
- https://bookingwp.com/forums/topic/padding-time-after-doesnt-work/
- Capacity now correctly configured for date and time. Only product capacity is taken, no multiplication by staff.
- Staff notification emails now work
[1.9.15] - July 20, 2016
Improvement
- Updated German translation
[1.9.14] - July 19, 2016
Improvement
- Updated translations and added RTL support
[1.9.13] - July 19, 2016
✨ Feature
- Added German translation
Improvements
- Updated Product Add-ons to v2.7.21
- Appointments with price set to zero are now labled as Free!
- Transitioned to system fonts on all levels
- Updated Hebrew translation
- Updated Dutch translation
- Filter to account for different country calendar formats 'woocommerce_appointments_mdy_format'.
Fixes
- Order status not being prefixed in db.
- Remove heavy appointment object cache from being saved to db causing performance issue.
- When staff is not enabled, default it to customer assignment.
- Partially scheduled days were not showing on the calendar for duration minute and hours.
[1.9.12] - July 18, 2016
Fix
[1.9.11] - July 18, 2016
Improvement
- Fixed CRM Integration (filter instead of action) New features: display customer & order notes as tooltips.
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/54/appointment-reminder-don-t-get-send
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/53/appointment-guest
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/52/php-error
[1.9.10] - July 8, 2016
Improvements
- WordPress 4.6 compatibility
- Date picker now unified across admin interface and automatically translated for WP 4.6+
- Theme compatibility fixes for calendar on front-end
Fixes
- Admin scripts for datepicker now called correctly
- Automatic staff assignment on empty staff
[1.9.9] - July 7, 2016
Improvements
- Styled datepicker in admin
- Styled admin calendar
- Moved all-day appointment to top
- Removed jQuery UI style from front-end
Fix
[1.9.8] - July 4, 2016
Improvements
- Moved appointments in My account to separate tab (WC 2.6+ feature)
- Increased staff avatars size to 48px for retina displays
- Further integration with http://codecanyon.net/item/woocommerce-point-of-sale-pos/7869665
- Better appointment editing screen
- Better day view calendar
- Updated Select2 library to v4.0.3
- When staff count is less than 6, search is disabled
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/47/serious-availability-bug
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/21/provider-no-preference-today
[1.9.7.2] - June 23, 2016
Fix
- Unavailable dates displayed on calendar
[1.9.7.1] - June 23, 2016
Fix
- PHP error
[1.9.7] - June 23, 2016
Fixes
- Staff select box now displays correctly with increased z-index
- Edit staff link in admin is now fully clickable
- Auto-selecting first available day doesn't trigger automatically any more
- Availability rules work for time range with date correctly
[1.9.6] - June 22, 2016
Improvements
- Staff availability drops to default if no availability is set up.
- Only paid and confirmed appointments are considered for occupied date/time slots
- Filter wc_appointments_product_get_available_slots
Fixes
- WC 2.6 request confirmation showing even when no appointable product in cart.
- Google Calendar missign $wpdb variable
- Unable to pay for confirmed appointment if coupon reduces price.
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/29/customer-billing-shipping-address
[1.9.5] - June 17, 2016
Fix
- Site crash due to unregistered is_plugin_active() function
[1.9.4.1] - June 17, 2016
Fix
[1.9.4] - June 17, 2016
✨ Feature
- Option to Auto-select first available day
Improvements
- Reduced staff table queries to 1 transient
- Significant loading time reduction
- Updated Product Add-ons to v2.7.19
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/35/delete-appointment-from-postphp
- Local time conversion now works the same across all devices
[1.9.3] - June 15, 2016
✨ Features
- Integration with http://codecanyon.net/item/woocommerce-point-of-sale-pos/7869665
- Integration with http://codecanyon.net/item/woocommerce-customer-relationship-manager/5712695
Improvements
- Text "Book Appointment" is now "Book Now" and "Book Now" is now only "Book"
- Slightly faster appointment form loading time
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/43/staff-members-see-only-their-own
- Staff filtering in admin now works as it should
- Cancelled appointments slots are available again
- Don't count padding time into interval
- Cart item quantity can't be modified any more in any theme (Avada fix)
- All admin tooltips are now generalized with wc_help_tip() function
[1.9.2] - June 8, 2016
Improvements
- Appointment form set to 100% width for wider theme compatibility
- "Appointment cost" text set to just "Cost"
- Removed Busy filter option as practically nobody used it
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/36/edit-appointment-format-of-date
Fix
- Integration with latest version of "WooCommerce TM Extra Product Options" plugin
[1.9.1] - June 6, 2016
Improvements
- Updated Product Add-ons to v2.7.18
- admin calendar works better
[1.9.0] - May 30, 2016
✨ Feature
Improvements
- admin CSS structure
- admin calendar time format now in line with site's time format
[1.8.9] - May 25, 2016
✨ Feature
- Times are converted to local times of visitors
Improvement
Fix
- Updating appointments with no orders PHP notice
[1.8.8] - May 23, 2016
Improvement
- Admin calendar view dialog now includes appointable product title
[1.8.7] - May 21, 2016
✨ Feature
- Admin calendar appointment can be viewed in a dialog for better overview with basic actions
Improvements
- Improvement admin calendar view
- Appointment reminder email now shows reminder for today if set so
Fixes
- Frontend CSS fix for addons spacing
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/33/staff-capacity-mimicking-pre-version-182
[1.8.6] - May 8, 2016
Improvements
- Replaced all date and time format with native WooCommerce functions
- Added current time indicator for day view, when viewing current day
- Improvement admin calendar view
Fix
[1.8.5] - May 4, 2016
Improvement
- Frontend calendar design looks slightly better
Fixes
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/27/memory-issue-with-scheduled_slots-array
- Removed duplicated post type registration
- Warning on single product page caused by appointment objects transient stored
- Plugin files loaded after all other plugins for better compatibility
- Appointment editing now syncs with order correctly, including customer ID
[1.8.4] - April 22, 2016
Improvements
- Cache appointment objects in appointment's controller.
- Google calendar sync now works better for all statuses. Sync appointment when appointment is edited from edit appointment screen.
- Use WC logging mechanism, especially when appointment is added to or removed from cart.
Fixes
- Make sure appointment costs that span beyond end of the year are supported.
- Staff availability is now displayed correctly.
- Add a false value if order_ids return empty during search. This fixes issue of SQL syntax error when searching in Appointments.
- Limit status changes to only affect qualifying appointments. This should prevents status updated to 'was-in-cart' issue.
- Set default staff availability quantity to 1 which fixes issue of a product with staff is not appointable.
- Construct Date-object from UTC to ignore browser's TZ and incorrect calculated duration on particular timezones.
- Check automatic staff assignments on each date to make sure a fully scheduled date is not available instead of partially scheduled.
- Use admin_url instead of WC()->ajax_url() for ajax_url in class-wc-appointment-form.php WC()->ajax_url() uses relative scheme that might cause if fronted site is SSL'ed.
- Reset tags on email body before each trigger which fixes tag placeholders. were not substituted properly.
- Removed deprecated args causing notices displayed in confirmation email.
[1.8.3] - April 19, 2016
Fix
[1.8.2] - April 18, 2016
✨ Feature
- Added Hebrew language support
Improvements
- Added 'woocommerce_appointments_calendar_view' filter that allows setting default calendar view to 'day'
- Updated Product add-ons to 2.7.17
Fixes
- Addon total now displays again
- https://bookingwp.com/forums/topic/time-slot-gone-after-1-booking-but-capacity-is-80/
- Qty display for appointments in admin
[1.8.1] - March 30, 2016
Improvements
- Product Add-ons intergration updated to 2.7.16
- Select2 library updated from RC1 to 4.0.2
- Linted all JS files
Fixes
- Capacity checking for daily appointments
- https://bitbucket.org/bookingwp/woocommerce-appointments/issues/1/wrong-z-index-lightbox-and-select-input
[1.8.0] - March 25, 2016
✨ Features
- Pricing rule for quantity scheduled
- Added support for padding days, not just padding hours
Improvements
- Added option for quantity inside Add appointment in admin screen
- Localized admin calendar inside appointment edit screen
- Appointments statuses now available for translation
- Color palette resembles that from latest WooCommerce version
- Show discounts for each day in calendar with 'add_theme_support( 'woocomerce-appointments-show-discounted-slots' );' added to your theme
Fix
- Appointment with guest checkouts now list 'Guest' on the list of appointments
[1.7.9] - March 22, 2016
✨ Feature
- Allow multiple appointments per staff at one time
Improvements
- Appointable product page load speed increased
- Add-on price symbol now wrapped in span with class name "amount-symbol"
Fixes
- Undefined notice for global availability settings
- Availability rule order now correct global > product > staff
- Previous day was highlighted
- Dates that are not available are now disabled
[1.7.8] - February 29, 2016
Fix
[1.7.7] - February 27, 2016
✨ Feature
- Staff notification emails
Improvement
- Added margin below email notification table for better styling
[1.7.6] - February 27, 2016
Improvements
- Calendar font now inherits body font
- Calendar day columns now have the same width
- Select2 library updated to 4.0.2-RC1
[1.7.5] - February 24, 2016
Fixes
- PHP Notice: Trying to get property of non-object in \includes\class-wc-appointment.php on line 566
- PHP Notice: Undefined variable: values in \includes\integrations\class-wc-appointments-integration-addons.php on line 98
[1.7.4] - February 24, 2016
Fixes
- https://bookingwp.com/forums/topic/error-message-at-cart/
- Overrides Bookly absolute calendar positioning: https://bookingwp.com/forums/topic/divi-theme-not-showing-good-calendar-in-products-page/
- https://bookingwp.com/forums/topic/add-ons-are-not-being-added-to-the-order-item-list-properly/
[1.7.3] - February 17, 2016
Fix
- Scheduled multiple quantity is now correctly calculated in
[1.7.2] - February 12, 2016
✨ Feature
- Select custom time intervals independently from duration
Improvement
- Cancel time is now by default 1 day prior to appointment instead of 1 month
Fix
- Adding appointment in now shows the calculated price
[1.7.1] - February 12, 2016
Fixes
- Sale price display error
- Translation of remaining slots for scheduling
[1.7.0] - February 11, 2016
✨ Feature
- Customer can now schedule multiple appointments at once
Improvements
- Add-ons cost now displayed with a plus + sign prefix
- jQuery: deprecated size() replaced with length()
- Updated translations
- Add-ons multipled with quantity scheduled
Fixes
- gCal sync error on appointment removal fixed
- Appointment editing in admin now correctly synced with corresponding Order
[1.6.2] - February 9, 2016
Improvements
- Added more WPML support
- New Appointments specific add-on section under WooCommerce > Add-ons.
- Show a notice when viewing an appointment if it's add-on plugin no longer is installed.
Fixes
- Prevent the Duration input field from displaying on non appointment products when using the product add-ons extension.
- Prevent start times that end after date times from showing up when using padding times.
- Appointment in "My Account" not created with Confirmation Requried Appointment + New User account
- Missing ending double quotes in order note of appointment status transition
- Use full unit 'hour' when using date/time str in strtotime
- Removed a bug with cost calculation that resulted in PHP warning
[1.6.1] - February 4, 2016
Fix
- Price wasn't calculated correctly for Staff, when pricing rules were empty
[1.6.0] - February 3, 2016
✨ Features
- Custom pricing rule
- Additional price per staff
Improvements
- Price calculations on all product levels
- Display FROM label before price, when additional costs are applied
- Staff capacity overrides appointment capacity
- Staff is set as appointment author, so you can filter capabilities correctly
Fixes
- No preference for staff now selects only available staff
- Changing staff on scheduling form now reloads the time slots
[1.5.4] - January 28, 2016
Improvements
- Updated Add-ons to version 2.7.15
- Sync appointments without orders (manually created appointments) to Google Calendar.
- Humanized order status in order column of appointments list.
Fixes
- If the new staff input is canceled, the staff input area will no longer be blocked.
- Format the datetime form based on site language (matches behavior for day form).
- Fix for possible availability problems using time range slots.
- Prevent extra border from showing on time slots when using TwentySixteen as your theme.
- Save the correct (appointment, not order) ID when saving appointment details on the admin screen.
[1.5.3] - January 27, 2016
✨ Feature
- Ability to check availability rules against starting slot in range only
[1.5.2] - January 26, 2016
✨ Feature
- Full integration with 'WooCommerce Follow Up Emails' extension
Improvement
- Display of appointment customer in admin
[1.5.1] - January 20, 2016
Improvements
- Updated Add-ons to version 2.7.14
- Some WooCommerce 2.5 compatibility fixes
Fix
- Staff access to their schedule
[1.5.0] - January 15, 2016
✨ Feature
- Capacity can be overriden on availability rule level, great for classes
Improvements
- When manually creating appointments that either have no order or are attached to an existing order, the status will now default to "confirmed" instead of "pending confirmation".
- Adding staff now more stramlined
- Deprecated time range on specific date and replaced with time range with date range
- Highlighted all selected day if appointment lasts for more than 1 day
- Not messing with WooCommerce pricing any more. Selecting price label doesn't set price to zero.
Fix
- Fix ranges on non-product rules.
[1.4.6] - December 23, 2015
✨ Feature
- Full WPML compatibility
Improvements
- Added 'woocommerce_appointments_get_posted_data' filter
- Added 'woocommerce_appointments_order_item_status' filter
Fix
- Capacity is now independent from staff count
[1.4.5] - December 23, 2015
✨ Features
- Integration with free plugin "WooCommerce Product Price Based on Countries"
- Integration with free plugin "TM Extra Product Options"
Improvements
- Zero total in cart should avoid cache, temporarily disabled hiding price, when zero
- Updated Select2 script to 4.0.1
Fix
- Price including tax displayed correctly
[1.4.4] - December 17, 2015
Improvement
- New filter added: 'woocommerce_appointments_gcal_sync_statuses'
[1.4.3] - December 17, 2015
Improvements
- New filter added: 'woocommerce_before_appointment_form_output'
- WooCommerce 2.5+ compatibility
Fixes
- Email reminders not looped any more
- Email reminders now sent on paid appointment status only
[1.4.2] - December 8, 2015
Fix
- Add-ons syntax error
[1.4.1] - December 8, 2015
Fixes
- Calendar day names localization
- Product Add-ons localization is now merged with "woocommercea-appointments" text-string
[1.4.0] - December 5, 2015
✨ Feature
- Appointments by day - can be scheduled for multiple days at a time.
Improvements
- Better UI for adding appointments in admin
- Integrated product add-ons, when adding appointments in admin
- Add-ons displayed after available time slot is selected
- Add-ons now show extra duration next to each addon label
[1.3.1] - December 1, 2015
Improvement
- first day of week also applies to admin calendar picker
[1.3.0] - December 1, 2015
✨ Features
- Time based appointments can now extend into the next day.
- Rules can now have priorities set to create custom availability schedules.
Improvements
- New filter to change custom appointment labels.
- Our "partially scheduled" indicator now works for day slots with multiple spots.
- Tooltips have been added on the appointment calendar to explain what each color means.
- New get_wc_appointment_statuses() to return an array of appointment statuses.
- Use wc_date_format/wc_time_format instead of hard-coded format strings for default date & time formats.
- Updated Product Add-ons to 2.7.13
Fixes
- Rules ending at midnight will now properly be parsed.
- Google Calendar events now properly include the correct end date.
- Slots smaller than 30 minute chunks will no longer get cut off on the admin calendar.
- Prevent the partial scheduled indicator from sometimes showing on a previous day to a day with appointments.
- If there are 0 time slots left, make sure not to show the slot at all.
- Fix a bug with hours spanning days that can potentially show (still unschedulable) slots on other days
- Show days as available if time based rules say so.
- Fatal error that occurs when setting an appointment's scheduled product to N/A.
- Associate appointment details with an order, even if the appointment and order are created separately.
- Only send appointment cancelation emails for appointments and not orders.
- Next/Previous tooltip text can now be translated.
- Capacity not showing correct number
[1.2.4] - November 9, 2015
✨ Feature
- added shortcode 'appointment_form'
Improvements
- Better price display with label instead of cost
- Removed any cost mention, when cart/order total is zero
Fixes
- appointment form design now more consistent
- time range with specific date now works correctly (leading zero not added for months and days)
[1.2.3] - October 15, 2015
Fixes
- wc_appointment_pretty_addon_duration functions definition
- Product Add-ons assests linked correctly
- availability error
[1.2.2] - October 15, 2015
Improvement
- Better price display with sale price
Fix
- Price label display
[1.2.1] - October 15, 2015
Fix
- Availability for Time range (specific date) now works, when no other rule is active
[1.2.0] - October 14, 2015
✨ Feature
- When duration longer than 120 minutes it gets broken into hours and minutes
Improvements
- Updated WooCommerce Product Add-ons to 2.7.10
- Front-end classes now fire inside $GLOBALS[] variable
- Translations can now be handled inside WP languages directory
- Replaced WC deprecated functions
Fixes
- Cancelled appointment staff member
- Select2 removed from datetime-picker.php template
- Padding time now assinged correctly
[1.1.0] - September 7, 2015
Fixes
- Clear transients after an order is canceled by a user
- Show an error message if an invalid date is entered
- Fatal error that sometimes occurs when canceling a "requires confirmation" appointment
- Search now correctly pulls out appointments when you search for customer info
- Correctly calculate the quantity of spots needed in create_wc_appointment if the multiplier is set to yes & multiple persons are appointment
[1.0.0] - September 1, 2015
No changes documented for this release.
This changelog is automatically generated from the plugin's changelog.txt file during the build process.