| 开发者 |
designed2use
guy1ncognito |
|---|---|
| 更新时间 | 2026年9月17日 18:04 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPL-2.0-or-later |
| 版权网址: | 版权信息 |
/events/) and the venues archive
(/venues/) — created on activation and rendered through your active
theme, no template takeoverEvent schema in the document <head> for Rich Results.ics download and a subscribable iCal feed
(/event/{slug}/feed/ics/)your-theme/designed2use-events/{name}.php[d2uevents_calendar], [d2uevents_list],
[d2uevents_event], [d2uevents_venues]) and matching server-rendered blocks
under an "Events shortcodes" inserter category/wp-json/d2uevents/v1/occurrences for headless used2uevents_ action / filter API — a documented contract for
third-party developers, not just the free ↔ Pro boundary
(docs/hooks.md)docs/shortcodes.md)docs/templates.md)D2UEvents\d2uevents_ API a third-party
add-on would — no privileged access, no patching of free internals. See
designed2use.co.uk/plugins/designed2use-events/.
designed2use-events folder to /wp-content/plugins/,
or install through Plugins → Add New in the dashboard./events/) and the Venues Page
(/venues/) are created automatically the first time the plugin
activates. If a Page already exists at one of those slugs the
plugin adopts it rather than creating a duplicate.No. The calendar, venues, single-event / single-venue pages, iCal feeds, blocks, shortcodes and REST endpoint all work without WooCommerce. Activating WooCommerce just switches on the optional ticketing module.
On a real WordPress Page at the configured calendar slug (default
/events/). The plugin renders its markup through the the_content
filter so the active theme's header, sidebar and footer surround the
calendar — no template takeover, works the same on block and classic
themes.
Copy any file from wp-content/plugins/designed2use-events/templates/
to wp-content/themes/your-theme/designed2use-events/ at the same
relative path. The plugin picks up your version automatically. See
docs/templates.md for the full lookup order and the variables each
part receives.
docs/hooks.md in the plugin folder. Every public action and filter
is documented with parameters, since-version and example usage. The
machine-readable source is
src/Extension/HooksRegistry.php.
Not in 1.0 — ticketing routes through WooCommerce only.
When a ticket has its own capacity, that capacity tracks its own counter. Otherwise the event's capacity (which itself cascades from event → venue → settings → unlimited) is what every ticket on that event shares. The cascade picks the first level that has a set value; booked totals decrement that same level so refunds release back to where the booking came from.
Nothing destructive by default. Events → Settings → Privacy & uninstall has a "delete data on uninstall" opt-in — only when it's on does uninstall remove events, venues, the occurrence table, the ticket-stock table and the settings. Deactivating the plugin never deletes data.
Each event has an "Add to calendar" button that downloads an .ics
file. Subscribers can paste the iCal feed URL
(/event/{slug}/feed/ics/) into Google Calendar or any other
RFC 5545 calendar client — updates flow through automatically.
The CPT capability mapping follows the WordPress meta-cap rule (plural
primitive caps only, mapped to edit_pages) so super admins keep
access. The plugin has not yet been functionally regression-tested on
multisite — please report any issues.
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.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.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.d2uevents_single_occurrence_limit filter to control how many
upcoming occurrences a single event's date picker offers.the_content so the active theme owns
the chrome./wp-json/d2uevents/v1/occurrences and a
server-rendered + client-driven viewport swap..ics download and subscribable iCal feed.Event schema in <head>.role="grid" + aria-label on each cell + a
screen-reader live region announce view swaps.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.--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.