Designed2Use Events

Changelog

1.0.4

  • Changed: refreshed the “Designed2Use Events Pro” section of the plugin
    description to a “Coming Soon” overview of the planned Pro features
    (recurring events, multi-tier tickets, registration form builder, QR
    check-in, organizers, week / day / map views, importer, automatic
    updates). No code or behaviour changes — the free plugin is unchanged
    and every free feature stays free.

1.0.3

  • Changed: every global symbol now uses the longer, more distinct
    d2uevents prefix (functions, hooks, options, post types, meta keys,
    the D2UEvents namespace, REST route and blocks) to avoid collisions,
    per the WordPress.org plugin guidelines.
  • Removed: the optional one-instance limit on the Events Calendar block —
    any number of calendar blocks can now be placed on a page. The free
    plugin has no feature gating of any kind.

1.0.2

  • Fixed: a ticket saved without an explicit sale window stored a
    0000-00-00 00:00:00 zero-date instead of an empty window, which made
    the event report “Ticket sales for this event have ended” even though
    the event was in the future. Blank sale windows are now stored as NULL,
    and any existing zero-date rows are treated as “no window” on read.

1.0.1

  • Added: d2uevents_pre_sync_occurrences filter, letting an add-on
    (e.g. Designed2Use Events Pro) take over occurrence-row management for
    an event — the foundation for the Pro recurrence engine.
  • Added: d2uevents_single_occurrence_limit filter to control how many
    upcoming occurrences a single event’s date picker offers.
  • Added: occurrence-table repository helpers for in-place row updates and
    re-parenting rows between events (so bookings survive a series split).

1.0.0

  • Initial release.
  • Events, Venues and event categories / tags as custom post types
    with sortable admin lists.
  • Frontend Pages for the calendar and venues archive, created on
    activation, rendered through the_content so the active theme owns
    the chrome.
  • Month + List calendar views with prev / next navigation, venue /
    category / featured filters and a URL for every state.
  • REST endpoint /wp-json/d2uevents/v1/occurrences and a
    server-rendered + client-driven viewport swap.
  • Four blocks under the “Events shortcodes” inserter category and
    five shortcodes that mirror them.
  • Per-event .ics download and subscribable iCal feed.
  • JSON-LD Event schema in <head>.
  • Multi-day events span every covered day in month view; “Through”
    hint in list view.
  • Single event and single venue pages with embedded OpenStreetMap
    (Leaflet) maps.
  • “Add to calendar” dropdown on the single event page — Google
    Calendar, Outlook.com, Yahoo Calendar and Apple Calendar (.ics).
    Outside-click and Esc both close the menu; Esc returns focus to
    the trigger.
  • Optional WooCommerce ticketing module — Tickets meta box with
    inline editor, deductive event-cap model (per-ticket capacities
    reserve from the event pool), sale window with event-end fallback,
    atomic capacity decrement, refund-aware release, per-ticket
    attendee capture, HPOS compatibility.
  • Per-event “Maximum tickets per user” limit for logged-in customers
    — enforced on the event page, at add-to-cart and at order
    completion.
  • Per-event Attendees admin screen with CSV export (RFC-4180 +
    UTF-8 BOM, opens cleanly in Excel).
  • WooCommerce privacy export / erasure integration.
  • Customer my-account attendee editor with configurable cutoff.
  • Email customisations — appended “Your attendees” section on
    customer order confirmation emails (HTML + plain-text,
    theme-overridable). Events → Settings → Emails exposes a
    per-WC-email toggle, custom section heading, optional intro
    paragraph and column-visibility toggles.
  • Full settings page under Events → Settings.
  • Calendar grid is keyboard-navigable — arrow keys move focus by
    ±1 day / ±1 week, Home / End jump to row edges,
    PageUp / PageDown paginate months, Enter on a focused cell opens
    the first event. role=”grid” + aria-label on each cell + a
    screen-reader live region announce view swaps.
  • Calendar query cached in the object cache (group
    d2uevents_calendar) with namespace-version invalidation on
    every event save, trash, settings save or category change. Two
    filters (d2uevents_calendar_query_cacheable,
    d2uevents_calendar_query_cache_ttl) and one action
    (d2uevents_calendar_query_invalidated) let downstream caches
    hook the same lifecycle.
  • CSS custom properties (–d2u-events-*) for theming — accent,
    surface, border, state and spacing tokens declared on a :where()
    selector list so theme overrides win without specificity wars.
    Documented in docs/templates.md with three worked
    template-override examples.
  • Toast feedback on the Tickets meta box for every AJAX round-trip
    (create / link / unlink / delete / save) so success messages
    survive the list-item DOM swap.
  • Friendly empty states — calendar Page with active filters shows
    “Clear filters” CTA; site-wide empty shows admins a “Create your
    first event →” prompt; REST-failure path on view-swap offers an
    inline Try again + “Open server-rendered view” link instead
    of an auto-redirect.
  • Plugin Check clean (zero errors, zero warnings under the wp.org
    preset).

Plugin Website
Visit website

Author
Ian Hulme
Version:
1.0.4
Last Updated
June 29, 2026
Requires
WordPress 6.4
Tested Up To
WordPress 7.0
Requires PHP
8.1

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.