BookingWP WooCommerce Appointments

BookingWP WooCommerce Appointments v5.4.9 Nulled

No permission to download
BookingWP WooCommerce Appointments v5.4.9 Nulled
= [5.4.9] - August 15, 2026
Latest

Focused on Admin panel, Storefront, and Cart (+2 more). 2 improvements and 6 fixes.

Improvements​

  • Admin panel create: WooCommerce Deposits uses the same outlined card as billing, with pay-deposit guidance and payment plans only while paying a deposit.
  • Admin panel browse: month availability includes the day’s time slots in one request; open browse joins the in-flight prefetch.

Fixes​

  • Cart: logging back in during checkout restores the in-cart hold; abandoned-cart cleanup no longer deletes a hold already linked to an order.
  • Admin panel: mini calendar marks a day available only when at least one slot has enough capacity for the quantity field (same rule as the time list).
  • Storefront: time slots refresh for the full add-on duration (longer or shorter), so late starts that no longer fit are removed from the list.
  • Emails: custom theme subclasses of appointment emails no longer fatal on PHP 8 when they override trigger() or init_form_fields() without a : void return type.
  • Storefront: add-ons after the calendar appear once a date (or month) is chosen, so extras that change duration stay visible when no times are left.
  • Admin calendar: third-party admin notices no longer push the grid down; calendar errors still show flush under the toolbar.
BookingWP WooCommerce Appointments v5.4.8 Nulled
2026.08.08 - version 5.4.8
* Feature - Appointable product: set Padding Before and After separately on one row. Existing padding stays Before; After defaults to 0.
* Improvement - Availability / slots: the gap between appointments uses After from the earlier booking plus Before from the later one (timed, day, and shared staff). With only Before set (the default after upgrade), identical products keep the same handoff gap.
* Improvement - Admin panel: create/edit recurring uses the same outlined card as billing and add-ons; schedule fields use compact floating labels in one row.
* Improvement - Admin calendar: on narrow screens the period title opens a month or date picker (prev/next hide); week and list show a month label; tapping a month day opens Day view and Back returns to that month.
* Dev - Padding: `padding_duration` remains buffer before; added `get_padding_after_duration()`, `get_padding_after_in_minutes()`, `set_padding_after_duration()`, and `get_padding_before_in_minutes()` (alias of `get_padding_duration_in_minutes()`). Overlap builders and `per_day_booked_totals` reserve both sides; day/month `get_padding_days_for_fully_booked_dates()` expands `(before + after)` days on each side. Meta `_wc_appointment_padding_after_duration` via REST (`padding_after_duration`), product CSV (`Padding after duration`), and WPML / Polylang. Interim cross-product `max()` bridge removed.
* Dev - Tests: PaddingBeforeAfterLiveTest (timed/day, shared-staff gaps, cancelled, empty-window, dynamic vs indexed); ProductConfigLiveTest and SlotsScenarioTest lock 24h hourly listing and after-only / before+after index parity; ProductConfigCheckLiveTest skips notices on simple products; `wca-when-deps-ready.test.ts` for `wcaShared.whenDepsReady`.
* Dev - Tests: opt-in `npm run test:php:stress` and `npm run test:php:smoke`; default `npm run test:php` stays full unit+integration. Clean test-blog setup in `tests/phpunit-env.local.example`.
* Dev - Integrations: `WC_Appointments_Integration_Page_Optimizers` opts form JS out of LiteSpeed / Autoptimize / WP Rocket Delay-Defer on form pages. Appointable product General number/unit widths moved into `admin.scss`.
* Tweak - Admin panel: create opens upper-biased on narrow screens; tighter floating-label insets; availability dims while checking; status chips match border to label on create/edit; customer search drops the clear control; overnight +Nd sits beside the End date floating label.
* Tweak - Admin calendar: Screen Options/Help tuck with a peek and hide the toolbar when open; toolbar stays fixed under the admin bar; borderless period/view controls; wider padding on large screens.
* Tweak - Storefront: Customizer Selection color skips inline CSS when it matches the default.
* Fix - Storefront: multi-day day-duration products again highlight the booking span after picking a start day; timezone abbr shows one tip; the form still initializes when page optimizers delay jQuery or script params.
* Fix - Availability / slots: 24h duration with an hourly grid again lists each hour when the next day is also appointable.
* Fix - Admin panel: Select2 aligns on create from Add New; focused fields scroll above the mobile keyboard; mini calendar fits narrow panels; edit keeps Update in the footer (disabled until dirty).
* Fix - Admin panel create: Product Add-Ons date picker no longer closes the panel; footer cost refreshes when add-on prices change without duration.
* Fix - Admin panel: product dropdown lists appointable products again on non-calendar screens; customer search and Customer label translate on standalone create/edit.
* Fix - Admin panel: Pick from calendar keeps the selected day for staff timezones; day/all-day edit availability uses civil dates; mini calendar refreshes when product, staff, or quantity changes; switching product on edit updates date/time for the new type without jumping the panel.
* Fix - Admin panel: staff on unstaffed products is optional for managers only and ignored in availability checks.
* Fix - Admin calendar: Order Total after panel create is correct; narrow layouts keep the filter panel, month cells, and timed events in bounds; day headers stay flush under the fixed toolbar with admin notices below.
* Fix - Admin calendar: midnight appointments show when staff timezone differs from the site; opening a view scrolls to now or 08:00 in week/day, and to the top in month/list.
* Fix - Admin calendar: Screen Options and Help are usable again for admins and staff (WooCommerce sticky header no longer covers them).
* Fix - Admin: legacy Create as a Customer again books for the selected customer; configuration notices no longer appear on non-appointable products.
* Fix - Appointable product: Padding Before/After keeps equal gap when the unit wraps and no longer sits flush against the field above.
BookingWP WooCommerce Appointments v5.4.7 Nulled
= [5.4.7] - August 3, 2026
Latest

Focused on Admin panel, Admin calendar, and Availability / slots (+2 more). 9 improvements and 15 fixes.

Improvements​

  • Admin panel: create/edit fields use outlined floating labels (Checkout-style); status uses compact filter chips; attendance is hidden on create, editable on edit, and muted text on view; Pick from a calendar stays a compact trigger until opened.
  • Admin calendar: sticky toolbar and day headers under admin chrome with one page scrollbar; the toolbar docks under the admin bar while you scroll.
  • Admin: calendar/panel product list loads with a light id/title/color query instead of hydrating up to 200 full product objects on every admin load.
  • Admin panel browse: day availability evaluates each rule once; all-day RRULEs reuse the in-request path instead of rebuilding minutes every civil day.
  • Admin panel: primary form controls use 14px body text; series list shows date and time ranges on separate lines.
  • Admin panel create: browse no longer auto-opens when a slot is unavailable; Add New without calendar prefill leaves date/time empty (date-only calendar picks still auto-select the first time).
  • Admin panel: product select uses preloaded products (instant); clear (x) removed on create/edit; duplicate titles append SKU or #id; duration sits on the When row; line Total shows only when it differs from order total.
  • Admin calendar: compact one-row toolbar; Add New is a leading filled button (label on wide screens, icon-only on narrow); filter button shows an active-count badge only (selections stay in the filter panel).
  • Admin calendar: hovered and selected events use a white ring plus lift; selected events rise above overlaps.

Fixes​

  • Admin calendar (staff): appointments you create for products without assigned staff stay on the calendar immediately (creator matches the locked staff filter, same as after reload).
  • Admin panel create: real midnight slots (00:00), including admin-TZ midnight, keep a timed calendar preview and availability checkmark (slot timestamp distinguishes them from date-only placeholders).
  • Admin panel: narrow view fills the viewport; series uses panel scroll; customer timezone and cost lines stack; series rows are date | status | open.
  • Admin calendar: switching the appointment panel from view to edit no longer flickers the calendar event (preview ghost only appears after the draft schedule changes).
  • Admin calendar: full-day unavailable stripes stay on the civil day (not shifted by admin timezone); stripe tips on hover/tap instead of a modal; tapping a stripe no longer opens create; empty cells open create again.
  • Admin calendar: sticky WooCommerce header chrome scoped to the calendar page only; staff Screen Options/Help no longer inflate Firefox scroll; empty preload ranges still seed so first paint skips REST; availability rules load again when indexed cache is enabled.
  • Admin calendar SSE: after a recurring series materializes, the view panel gets the full occurrence list and package pricing; one series create snackbar with customer and pattern.
  • Admin calendar SSE: new appointments stay after month navigation (cache insert); payloads build only when queued and flush once per request; burst creates/bookings collapse to one snackbar count.
  • Admin calendar/panel (staff): product preload respects Create Appointments for Any Product; create auto-selects the logged-in staff when assigned; toolbar Add New uses the same path as slot-pick (no full reload).
  • Admin panel create: required date/time errors show under those fields and clear when valid; hourly auto-select no longer rolls the form date forward when staff timezone differs from the site.
  • Admin panel: Staff field shows or hides from product preload (same as add-ons); create availability responds faster; day-duration checks use the correct civil day when staff timezone differs; timed availability keeps slot timestamps when site and admin browse days differ.
  • Admin panel browse: skeleton cells under a kept header; day click and view toggles reuse in-memory data; SSE invalidates browse caches while open; product switch reloads the open mini-cal.
  • Availability / slots: overnight RRULE blocks (e.g. weekly Fri 22:00-02:00) again split across civil days (evening on the start day, morning on the next).
  • Storefront recurring: create the series when the order reaches on-hold (cheque/BACS), not only processing/completed, so offline payment checkouts still materialize appointments.
  • ICS export: offset-based store timezones (e.g. +01:00 from gmt_offset) no longer fatal VTIMEZONE generation when DateTimeZone::getTransitions() returns false.
BookingWP WooCommerce Appointments v5.4.6 Nulled
2026.07.30 - version 5.4.6
* Dev - Tests: global-only availability with indexing enabled (plain and staff products), index readiness ignoring malformed scoped cache rows, and product config probe when global rules start after the initial 14-day window.
* Fix - Admin panel: product configuration probe scans the booking horizon in capped chunks (14/30/60 days) instead of only the next two weeks, so global rules or RRULEs with a later start do not trigger false "no bookable times" notices.
* Fix - Indexed availability: index readiness and multi-staff slot generation align with fetch guards (malformed scope rows no longer mark the index ready; empty indexed batch falls back to dynamic/global rules); fixes global-only rules not applying and false product config notices after 5.4.5.
BookingWP WooCommerce Appointments v5.4.4 Nulled
= [5.4.4] - July 27, 2026
1 improvement · 2 fixes — Product Add-ons integration, Admin calendar

Improvement​

  • PHPStan raised to level 5 — type narrowing, expanded plugin and WordPress stubs, and dead-code cleanup across admin, data stores, API, GCal, and integrations (clean baseline).

Fixes​

  • Product Add-ons integration: decode jQuery .serialize() form payloads with wp_unslash() before parse_str() in legacy cost filter.
  • Admin calendar: guest customer labels on HPOS stores read billing from wc_order_addresses (not legacy _billing_* order meta), restoring "Name (Guest)" on calendar preload and SSE updates.
BookingWP WooCommerce Appointments v5.4.3 Nulled
= [5.4.3] - July 26, 2026
9 improvements · 10 fixes — Admin calendar, ICS export, Admin calendar preload, PHPCS, +10 more

Improvements​

  • Admin calendar preload: eligible-ID query plus batched postmeta hydration; batched order meta (no per-order WC_Order hydration). Recurring series package summary on bulk fetch (get_panel_preload, one load per series id); full appointment panel still loads on open.
  • PHPCS: WPCS security ruleset (phpcs.security.ruleset.xml, npm run lint:php:security), shared path rulesets and request helpers; lint:php / build gate runs security scan + PHPStan; optional lint:php:standards / lint:php:quality; PHP-CS-Fixer via format:php.
  • PHPStan raised to level 4 — dead-code cleanup across admin, slots, API, GCal, and core (clean baseline).
  • Rate limiting: filterable enabled, guest_only, and strict_max_requests; named guest-read defaults on WC_Appointments_Rate_Limiter.
  • Tests: PublicAjaxSecurityLiveTest, PhpstanLevel4RegressionLiveTest, IcsExporterStaleEntryRegressionLiveTest, MyAccountRescheduleContractLiveTest, CalendarPreloadParityLiveTest (calendar preload vs independent eligibility SQL; non-UTC and all-day; attribute term labels), RequestBoundaryRegressionLiveTest, SanitizerBeforeParseGuardTest, and SseTopicContractVerificationTest (request transport boundaries, PHP/JS SSE topic contract, FC week/day header zone).
  • WC_Product_Appointment_Rule_Manager::get_minutes_from_rules() remains as a compatibility shim; use WC_Appointment_Slots_Rule_Resolver::build_minute_mask() instead.
  • Admin panel: remove Cancel from create/edit footer (close via X / backdrop).
  • Admin calendar: Google-style grid (horizontal week lines only in month, stacked week/day headers, centered month dates); neutral toolbar chrome (admin body text/borders), segmented view switcher, primary + Add New beside Filters (icon-only; label on hover/aria).
  • ICS export: log a warning when unloadable entries are skipped (WooCommerce → Status → Logs).

Fixes​

  • Admin calendar: toolbar spans full wrap width below Screen Options/Help; staff without WooCommerce header get Add New in the toolbar; staff/creator filter uses EXISTS (not INNER JOINs); Fake UTC civil preload range and YmdHis row parsing (not strtotime); shared excluded-status list (cancelled visible; holds/trash/drafts hidden) on SQL query, legacy API, and frontend; orphan/deleted post_parent order IDs pre-filtered before batch order load; availability rule background stripes reload when switching months.
  • REST API: appointments get_item_schema() extends the parent schema instead of starting from null.
  • Security: sanitize/unslash POST/GET at origin across storefront AJAX, data stores, cart, SSE, cron, widget, admin (AJAX, settings, calendar, list table, exporters, meta boxes, product edit), WPML, Google Calendar, and integrations; prepared SQL for lookups and migrations; escape output in admin views; guest-only rate limit preserved for cached pages with optional nonces.
  • Storefront/admin AJAX: parse jQuery .serialize() form payloads before per-field sanitization (not sanitize_text_field() on the encoded string — destroys %XX sequences for timezones, times, and add-on text).
  • SSE: preserve dotted event names (appointment.created) in the stream; sanitize_key() stripped dots and broke admin calendar live updates.
  • Availability rules JSON: decode unslashed payloads first (callers pass wp_unslash( $_POST )); double-unslash broke rule titles containing quotes.
  • Admin calendar: week/day column headers use browser-local date (not UTC parts); legacy week/day data-time and calendar_day= links use site timezone (not gmdate); batched order line item meta resolves global attribute term names (not raw slugs) in the appointment panel.
  • Add Appointment and My Account series actions: read REQUEST_METHOD from $_SERVER (not filter_input( INPUT_SERVER ), unreliable under some SAPIs).
  • Legacy install migration: delete product availability post meta by key after table migration (not a single rule value).
  • ICS export: skip unloadable appointment entries so stale IDs do not fatal calendar generation.
BookingWP WooCommerce Appointments v5.4.2 Nulled
2026.07.18 - version 5.4.2
* Dev - PHPStan raised to level 3 (phpVersion 7.4).
* Dev - Tests: regression coverage for range_type RRULE routing parity and orphan `rrule` field cleanup.
* Dev - Tests: lock GCal failure-path contracts (`make_gcal_request()` → `WP_Error`, `sync_event_resource()` → `false`) and rule-minutes payload shape across all `compute_rule_minutes()` branches.
* Fix - Indexed availability: RRULE expansion follows `range_type` (same as dynamic); orphan `rrule` on non-`rrule` rules uses the non-RRULE path and purges legacy expand rows on background passes.
* Fix - Google Calendar: inbound sync clears `rrule` when an event is stored as non-recurring (`custom` / `custom:daterange`).
BookingWP WooCommerce Appointments v5.4.1 Nulled
[5.4.1] - July 16, 2026
5 improvements · 5 fixes — Orders, Indexed availability, PHPStan, Storefront calendar, +3 more

Improvements​

  • PHPStan: level 2 with a clean baseline — expanded plugin and integration stubs plus PHPDoc/type fixes across core.
  • Indexed availability: occupancy reads from appointment cache when healthy (live fallback during backfill; in-cart recurring holds merged); backfill batches gap-only missing appointments.
  • Storefront calendar: data-engine reports rules/occupancy source (1 indexed, 2 dynamic, 3 indexed + appointment cache).
  • Orders: get_appointment_ids_from_order_and_item_id() deprecated — use get_appointment_ids_from_order_item_id( $order_item_id, true, $order_id ).
  • Orders: get_appointment_ids_from_order_item_id() triggers wc_doing_it_wrong when $order_id is omitted (except opt-in order-line _appointment_id cache).

Fixes​

  • Indexed availability: weekday time:N rules count only matching days; re-enable no longer wipes inline indexing; backfill pending flag clears/re-queues stale jobs and stops on zero-gap batches.
  • Google Calendar: scheduled sync is forward-only unless admin full re-sync; inbound sync skips stale events (event ID / site_url mismatch).
  • Availability / slots: overlap day keys use Fake UTC civil midnight so 00:00 wall slots stay on the correct day on negative-offset stores.
  • Orders: order-scoped line-item lookup ($order_id on get_appointment_ids_from_order_item_id) — orphaned _appointment_order_item_id no longer shows another customer’s appointment; line delete clears the link before ID reuse.
  • Cart: session load removes holds tied to terminal orders or past start dates and releases in-cart appointments to was-in-cart.
BookingWP WooCommerce Appointments v5.3.12 Nulled
*** WooCommerce Appointments Changelog ***

2026.07.10 - version 5.4.0
* Improvement - Settings → Indexing: combined section intro with scannable structure (benefit, when to use, warning, maintenance).
* Improvement - Pricing: `calculate_appointment_cost()` can skip `is_appointable()` for display-only quotes — post `wc_appointments_field_quote_only` or filter `woocommerce_appointments_calculate_cost_validate_appointable`; add-to-cart still validates separately.
* Performance - Removed ~1 MB of unused Moment.js from storefront scripts.
* Dev - PHPStan: third-party and WP-CLI stubs, admin include `@var` docblocks, Sprint 5–6 cleanup — baseline cleared (0 suppressed errors).
* Fix - REST API: allowlist availability `filter` column keys before SQL (closes unauthenticated injection on public `/availabilities`).
* Fix - Storefront timezone **Default**: persist site-timezone choice via `appointments_use_site_timezone` (not a fixed IANA string); custom zones still use `appointments_time_zone`; first visit uses timezone AJAX.
* Fix - Availability / slots: past-date guard uses Fake UTC civil day (`gmdate`, not `wp_date`) for minute/hour tokens; day/month posts omit `_time` so same-day all-day add-to-cart is not rejected after midnight; legacy timed data stores the same Fake UTC instant as listed slots.
* Fix - Availability rules: initialize `$rule_val` each iteration; `offsetSet( 'id', … )` assigns the posted id (was parameterless `set_id()`).
* Fix - Pricing: multi-day day-unit totals sum each civil day in the span (checkout uses same per-day engine as slot preview; PAO duration flat prices skipped when already billed per day).
* Improvement - Recurring package footer: single cost summary list (no duplicate Total/Due today on prepaid); session count under the hero price; deposits excluded from package preview (matches admin). Series preview summary no longer returns deprecated `checkout_footer_html` (use `total_price_html` only).
* Fix - Per-day inventory: in-cart recurring `session_starts` occupancy included when marking civil days sold out (calendar/conflict checks match slots overlap index).
* Fix - Storefront: unavailable `?time=HHMM` shows selected time with "(Selected time is unavailable)" instead of auto-picking first slot.
* Fix - Admin add appointment: reject missing posted date before parsing year/month/day.
* Fix - Admin panel: create panel anchors beside the calendar slot when **Add New Appointment** is opened first and a date/time is picked afterward (clear centered mode on calendar trigger).
* Fix - Admin product staff panel: fix assign-staff AJAX scope (`$staff_base_cost`, `$staff_qty`) and staff view `self::` call (`WC_Appointments_Admin::get_appointment_staff()`).
* Fix - Google Calendar: sync errors log exception messages; HTTP backoff returns explicit error when retry loop exits without a response.
* Fix - Partial refunds: each reduced-qty appointment keeps the correct per-line-item `$remaining_qty`.
* Fix - Series My Account: invalid action redirect no longer leaves `$result` / `$notice` undefined.
* Fix - Helpers: remove undefined `$gmt_offset` / `$cart_item` reads in `wc_appointment_get_timezone_offset()` and `wc_appointment_pretty_addon_duration()`.
* Fix - Privacy: exporter registration returns exporters array from `register_exporters()`.
* Fix - CRM integration: initialize note strings before appending comment HTML.
* Fix - Webtomizer deposits: check `$appointment_ids` array before updating partial-payment status.
* Fix - Product Vendors integration: declare `global $wp_roles` before role cap setup.
* Fix - Follow-Up Emails: pass `null` appointment to variable-replacement filter when queue item has no appointment context.
* Fix - Admin calendar: server preload always spans prev/current/next month grids regardless of default view (day/week/month/list), so switching views serves preloaded appointments instantly instead of refetching via REST.
* Fix - Availability rules: priority input fills column width on global (Settings → Appointments) and staff availability tables (site and synced tabs).
BookingWP WooCommerce Appointments v5.3.11 Nulled
= [5.3.11] - June 9, 2026
Latest

Fixes​

  • Twilio SMS integration: restore hook registration removed in 5.1.0 (Appointments SMS settings, scheduling, and notifications with WooCommerce Twilio SMS Notifications 1.12+); {appointment_date} / time tokens use get_start_date() / get_end_date() so all-day civil dates match emails and order summary on non-UTC stores.
  • All-day (day/month duration) appointments after checkout: order summary, emails, and My Account show the same civil date as cart/checkout — get_start_date() / get_end_date() and email formatters use Fake UTC civil digits (gmdate + date_i18n) instead of wp_date() on stored midnight tokens, which shifted the calendar day on non-UTC site timezones.
  • All-day bookings: _local_timezone is written only for timed products in wc_appointments_get_posted_data(); WC_Appointment::set_all_day() / set_local_timezone() and the data store drop customer TZ meta on all-day saves — civil dates stay timezone-agnostic without per-caller guards.

About us

  • Babiato Forum - The webmaster community has been around for many years and pride ourselves on offering unbiased, critical discussion among people of all different backgrounds. We are working every day, updating Daily resource to make sure our community is one of the best.

Quick Navigation

User Menu