Skip to content

Releases: GatherPress/gatherpress

0.35.0-beta.1

0.35.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Jul 01:26
fce7aa1

Added

  • Added an "Add New Venue" entry to the editor command palette, matching the "Add New Event" one core provides. #1357
  • Container blocks (Add to Calendar, Modal Content, Online Event, RSVP, RSVP Form, RSVP Response, RSVP Template, Venue) now declare the WordPress 7.0 List View block support, and Block Guard extends to the new inspector List View tab so guarded blocks stay protected there. #1934
  • Form Field blocks gain a prefill toggle for Text and Email field types: when enabled, a logged-in visitor sees the field pre-populated with their display name or account email. The RSVP form's Name and Email fields enable it by default, so logged-in users no longer retype their own details. #1960
  • GatherPress blocks now identify user-editable content and content containers for WordPress content-only editing, including dynamic venue details that source their content from post meta. #1953
  • Interactive Google maps now use the Maps JavaScript API when an API key is configured, unlocking hybrid and terrain map types. #2003
  • Starter pattern definitions passed through the gatherpress_event_starter_patterns and gatherpress_venue_starter_patterns filters may now include a postTypes key to register a single pattern against specific post types instead of every post type sharing the support. #1958
  • The Event Date block supports a new isLink attribute, matching the core Post Date block: toggle "Link to event" in the block settings to render the date as a link to the event. #1935

Changed

  • Clarified the RSVP Cleanup Interval setting description to explain that it multiplies the Cleanup Frequency. #2043

  • Declare native return types on methods that only described them in a docblock, so static analysis verifies them instead of trusting the comment. No behavior change. #1977

  • Document how companion plugins boot on the gatherpress_loaded lifecycle action. #1987

  • Geocoded address labels are now composed through translatable format strings, so each locale's translators control component ordering (e.g. German "Hauptstraße 42, 10115 Berlin") in the editor's address suggestions and the saved address alike. The narrow gatherpress_geocode_street_line filter from 0.34.0 is replaced by gatherpress_formatted_address, which receives the full label plus every raw address component. #1956

  • Mark classes that are not extension points as final, and drop return types that only existed for PHP 7.4. No behavior change; extending GatherPress continues to work through hooks, post type supports, and the abstract provider base classes. #1975

  • Mark write-once properties readonly so immutability is enforced by the type system. No behavior change. #1979

  • Mount the venue map through the Interactivity API so it works with Query Loop enhanced pagination, and drop React from the frontend map path. #2010

  • Raised the minimum required PHP version from 7.4 to 8.1. #1929

  • Resolved SonarCloud findings in the venue map block and closed two branch-coverage gaps in its helpers. #2030

  • Rework Block Guard so it is far less obtrusive. The on/off toggle is gone: a guarded block is simply protected in the editor, so clicking it selects the whole block instead of grabbing an inner piece and pulling it out of place. Click the selected block again (or press Enter or Space) to edit inside it, and click away or select the block again to put the guard back on. Guarded blocks show a soft tint while selected, and the List View is never restricted, so inner blocks remain available there whenever you need them. #1973

  • The admin RSVP badge hover and pending-count states now follow the selected WordPress admin color scheme, with the existing colors as fallbacks. #1943

  • The GatherPress Icon block was removed in favor of the WordPress core Icon block (block templates now use core/icon), and the minimum required WordPress version was raised to 7.0. Run the GatherPress Alpha compatibility updates to migrate existing content. #1931

  • The RSVP settings page now hides options that don't apply: the Open RSVP, Maximum Attendance Limit, Maximum Number of Guests, and Anonymous RSVP fields disappear when RSVP Mode is set to Disabled, and the Cleanup Frequency and Cleanup Interval fields disappear when RSVP cleanup is off. Powered by a new negation form for the settings show_if feature (array( 'not' => … )).

    Every GatherPress settings page slug is now suffixed with _settings for consistency — Events, Venues, Roles, Tools, Credits, and RSVP. Saved settings are unaffected; only the admin page URLs change (e.g. …page=gatherpress_rsvp_settings).

    The RSVP settings values now speak one vocabulary: RSVP Mode's on/off variants become enabled, per_event_enabled, per_event_disabled (Disabled unchanged), and the Cleanup toggle moves from off/on to disabled/enabled. A GatherPress Alpha migration rewrites saved values. #1970

  • The RSVP system is rebuilt on a generic provider architecture: responses flow through identity providers (user account and email) registered in a provider registry, so plugins can add their own RSVP identity types. A new gatherpress_loaded action fires once GatherPress finishes bootstrapping — the hook where such providers register. #1509

  • The Venue Map block now uses WordPress core's dimensions support: the map always fills its container (use alignments for wider layouts), and height is the only stored dimension — resized with the bottom drag handle or the core Dimensions panel, stored as a CSS value. The Default Width setting under Settings → Venues is removed; running the GatherPress Alpha migration is required for content saved with the old numeric attributes. #1941

  • Use match expressions for the three switch statements that existed only to pick a value. No behavior change. #1978

  • Assets::get_asset_data() is now public, so block templates and companion plugins can resolve a build asset's version and dependencies through the same memoized reader core uses. #2030

Removed

  • Removed the upcoming PHP 8.1 and WordPress 7.0 requirement notices, which are obsolete now that 0.35.0 requires both. #2044

Fixed

  • Announce RSVP status changes, attendee counts, and online event link availability to screen readers. #2015
  • Declare Interactivity API support on every block so Query Loops with enhanced pagination no longer flag GatherPress blocks as incompatible (the Leaflet-based venue map remains genuinely incompatible). #2008
  • Editing a Form Field block's default value in the sidebar now updates the block's preview in the editor canvas immediately; previously the preview kept showing the old value until the editor was reloaded. #1960
  • Fire registered_taxonomy_for_object_type for the topic/event pairing by wiring the taxonomy explicitly, so extenders can hook the connection. #2006
  • Fixed keyboard navigation on non-anchor modal triggers, where pressing Enter or Space did not open or close the modal. #1985
  • Fixed the RSVP and nonce REST endpoints returning a 404 when pretty permalinks are disabled, by building the event REST API URL with rest_url() instead of a hardcoded /wp-json/ path. #1945
  • Fixed the venue creation Save button not disabling while the request is in flight, which allowed repeated clicks to create multiple duplicate venue posts. #1947
  • Stop generating rewrite rules for the private RSVP status and provider comment taxonomies; their terms are never reachable through a URL. #2005
  • Stop loading wp-date and moment.js on every front-end page; the timezone shim now only applies when something else already enqueued wp-date. #1944
  • Venue blocks set to wide or full width now let their inner content expand with them: the block's inner layout no longer defaults to content-width constraint, and the frontend wrapper keeps the layout and block-supports classes WordPress generates instead of rebuilding a bare div. #1941

0.35.0-alpha.2

0.35.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Jul 02:32
b33e8ac

Added

  • Added an "Add New Venue" item to the Events admin menu, which also gives venues a command palette entry alongside the existing one for events. [#1357]
  • Container blocks (Add to Calendar, Modal Content, Online Event, RSVP, RSVP Form, RSVP Response, RSVP Template, Venue) now declare the WordPress 7.0 List View block support, and Block Guard extends to the new inspector List View tab so guarded blocks stay protected there. [#1934]
  • Form Field blocks gain a prefill toggle for Text and Email field types: when enabled, a logged-in visitor sees the field pre-populated with their display name or account email. The RSVP form's Name and Email fields enable it by default, so logged-in users no longer retype their own details. [#1960]
  • GatherPress blocks now identify user-editable content and content containers for WordPress content-only editing, including dynamic venue details that source their content from post meta. [#1953]
  • Interactive Google maps now use the Maps JavaScript API when an API key is configured, unlocking hybrid and terrain map types. [#2003]
  • Starter pattern definitions passed through the gatherpress_event_starter_patterns and gatherpress_venue_starter_patterns filters may now include a postTypes key to register a single pattern against specific post types instead of every post type sharing the support. [#1958]
  • The Event Date block supports a new isLink attribute, matching the core Post Date block: toggle "Link to event" in the block settings to render the date as a link to the event. [#1935]

Changed

  • Declare native return types on methods that only described them in a docblock, so static analysis verifies them instead of trusting the comment. No behavior change. [#1977]

  • Document how companion plugins boot on the gatherpress_loaded lifecycle action. [#1987]

  • Geocoded address labels are now composed through translatable format strings, so each locale's translators control component ordering (e.g. German "Hauptstraße 42, 10115 Berlin") in the editor's address suggestions and the saved address alike. The narrow gatherpress_geocode_street_line filter from 0.34.0 is replaced by gatherpress_formatted_address, which receives the full label plus every raw address component. [#1956]

  • Mark classes that are not extension points as final, and drop return types that only existed for PHP 7.4. No behavior change; extending GatherPress continues to work through hooks, post type supports, and the abstract provider base classes. [#1975]

  • Mark write-once properties readonly so immutability is enforced by the type system. No behavior change. [#1979]

  • Mount the venue map through the Interactivity API so it works with Query Loop enhanced pagination, and drop React from the frontend map path. [#2010]

  • Raised the minimum required PHP version from 7.4 to 8.1. [#1929]

  • Rework Block Guard so it is far less obtrusive. The on/off toggle is gone: a guarded block is simply protected in the editor, so clicking it selects the whole block instead of grabbing an inner piece and pulling it out of place. Click the selected block again (or press Enter or Space) to edit inside it, and click away or select the block again to put the guard back on. Guarded blocks show a soft tint while selected, and the List View is never restricted, so inner blocks remain available there whenever you need them. [#1973]

  • The admin RSVP badge hover and pending-count states now follow the selected WordPress admin color scheme, with the existing colors as fallbacks. [#1943]

  • The GatherPress Icon block was removed in favor of the WordPress core Icon block (block templates now use core/icon), and the minimum required WordPress version was raised to 7.0. Run the GatherPress Alpha compatibility updates to migrate existing content. [#1931]

  • The RSVP settings page now hides options that don't apply: the Open RSVP, Maximum Attendance Limit, Maximum Number of Guests, and Anonymous RSVP fields disappear when RSVP Mode is set to Disabled, and the Cleanup Frequency and Cleanup Interval fields disappear when RSVP cleanup is off. Powered by a new negation form for the settings show_if feature (array( 'not' => … )).

    Every GatherPress settings page slug is now suffixed with _settings for consistency — Events, Venues, Roles, Tools, Credits, and RSVP. Saved settings are unaffected; only the admin page URLs change (e.g. …page=gatherpress_rsvp_settings).

    The RSVP settings values now speak one vocabulary: RSVP Mode's on/off variants become enabled, per_event_enabled, per_event_disabled (Disabled unchanged), and the Cleanup toggle moves from off/on to disabled/enabled. A GatherPress Alpha migration rewrites saved values. [#1970]

  • The RSVP system is rebuilt on a generic provider architecture: responses flow through identity providers (user account and email) registered in a provider registry, so plugins can add their own RSVP identity types. A new gatherpress_loaded action fires once GatherPress finishes bootstrapping — the hook where such providers register. [#1509]

  • The Venue Map block now uses WordPress core's dimensions support: the map always fills its container (use alignments for wider layouts), and height is the only stored dimension — resized with the bottom drag handle or the core Dimensions panel, stored as a CSS value. The Default Width setting under Settings → Venues is removed; running the GatherPress Alpha migration is required for content saved with the old numeric attributes. [#1941]

  • Use match expressions for the three switch statements that existed only to pick a value. No behavior change. [#1978]

Fixed

  • Announce RSVP status changes, attendee counts, and online event link availability to screen readers. [#2015]
  • Declare Interactivity API support on every block so Query Loops with enhanced pagination no longer flag GatherPress blocks as incompatible (the Leaflet-based venue map remains genuinely incompatible). [#2008]
  • Editing a Form Field block's default value in the sidebar now updates the block's preview in the editor canvas immediately; previously the preview kept showing the old value until the editor was reloaded. [#1960]
  • Fire registered_taxonomy_for_object_type for the topic/event pairing by wiring the taxonomy explicitly, so extenders can hook the connection. [#2006]
  • Fixed keyboard navigation on non-anchor modal triggers, where pressing Enter or Space did not open or close the modal. [#1985]
  • Fixed the RSVP and nonce REST endpoints returning a 404 when pretty permalinks are disabled, by building the event REST API URL with rest_url() instead of a hardcoded /wp-json/ path. [#1945]
  • Fixed the venue creation Save button not disabling while the request is in flight, which allowed repeated clicks to create multiple duplicate venue posts. [#1947]
  • Stop generating rewrite rules for the private RSVP status and provider comment taxonomies; their terms are never reachable through a URL. [#2005]
  • Stop loading wp-date and moment.js on every front-end page; the timezone shim now only applies when something else already enqueued wp-date. [#1944]
  • Venue blocks set to wide or full width now let their inner content expand with them: the block's inner layout no longer defaults to content-width constraint, and the frontend wrapper keeps the layout and block-supports classes WordPress generates instead of rebuilding a bare div. [#1941]

0.35.0-alpha.1

0.35.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Jul 03:26
821f4b5

Added

  • Container blocks (Add to Calendar, Modal Content, Online Event, RSVP, RSVP Form, RSVP Response, RSVP Template, Venue) now declare the WordPress 7.0 List View block support, and Block Guard extends to the new inspector List View tab so guarded blocks stay protected there. [#1934]
  • Form Field blocks gain a prefill toggle for Text and Email field types: when enabled, a logged-in visitor sees the field pre-populated with their display name or account email. The RSVP form's Name and Email fields enable it by default, so logged-in users no longer retype their own details. [#1960]
  • GatherPress blocks now identify user-editable content and content containers for WordPress content-only editing, including dynamic venue details that source their content from post meta. [#1953]
  • Starter pattern definitions passed through the gatherpress_event_starter_patterns and gatherpress_venue_starter_patterns filters may now include a postTypes key to register a single pattern against specific post types instead of every post type sharing the support. [#1958]
  • The Event Date block supports a new isLink attribute, matching the core Post Date block: toggle "Link to event" in the block settings to render the date as a link to the event. [#1935]

Changed

  • Declare native return types on methods that only described them in a docblock, so static analysis verifies them instead of trusting the comment. No behavior change. [#1977]

  • Document how companion plugins boot on the gatherpress_loaded lifecycle action. [#1987]

  • Geocoded address labels are now composed through translatable format strings, so each locale's translators control component ordering (e.g. German "Hauptstraße 42, 10115 Berlin") in the editor's address suggestions and the saved address alike. The narrow gatherpress_geocode_street_line filter from 0.34.0 is replaced by gatherpress_formatted_address, which receives the full label plus every raw address component. [#1956]

  • Mark classes that are not extension points as final, and drop return types that only existed for PHP 7.4. No behavior change; extending GatherPress continues to work through hooks, post type supports, and the abstract provider base classes. [#1975]

  • Mark write-once properties readonly so immutability is enforced by the type system. No behavior change. [#1979]

  • Raised the minimum required PHP version from 7.4 to 8.1. [#1929]

  • Rework Block Guard so it is far less obtrusive. The on/off toggle is gone: a guarded block is simply protected in the editor, so clicking it selects the whole block instead of grabbing an inner piece and pulling it out of place. Click the selected block again (or press Enter or Space) to edit inside it, and click away or select the block again to put the guard back on. Guarded blocks show a soft tint while selected, and the List View is never restricted, so inner blocks remain available there whenever you need them. [#1973]

  • The admin RSVP badge hover and pending-count states now follow the selected WordPress admin color scheme, with the existing colors as fallbacks. [#1943]

  • The GatherPress Icon block was removed in favor of the WordPress core Icon block (block templates now use core/icon), and the minimum required WordPress version was raised to 7.0. Run the GatherPress Alpha compatibility updates to migrate existing content. [#1931]

  • The RSVP settings page now hides options that don't apply: the Open RSVP, Maximum Attendance Limit, Maximum Number of Guests, and Anonymous RSVP fields disappear when RSVP Mode is set to Disabled, and the Cleanup Frequency and Cleanup Interval fields disappear when RSVP cleanup is off. Powered by a new negation form for the settings show_if feature (array( 'not' => … )).

    Every GatherPress settings page slug is now suffixed with _settings for consistency — Events, Venues, Roles, Tools, Credits, and RSVP. Saved settings are unaffected; only the admin page URLs change (e.g. …page=gatherpress_rsvp_settings).

    The RSVP settings values now speak one vocabulary: RSVP Mode's on/off variants become enabled, per_event_enabled, per_event_disabled (Disabled unchanged), and the Cleanup toggle moves from off/on to disabled/enabled. A GatherPress Alpha migration rewrites saved values. [#1970]

  • The RSVP system is rebuilt on a generic provider architecture: responses flow through identity providers (user account and email) registered in a provider registry, so plugins can add their own RSVP identity types. A new gatherpress_loaded action fires once GatherPress finishes bootstrapping — the hook where such providers register. [#1509]

  • The Venue Map block now uses WordPress core's dimensions support: the map always fills its container (use alignments for wider layouts), and height is the only stored dimension — resized with the bottom drag handle or the core Dimensions panel, stored as a CSS value. The Default Width setting under Settings → Venues is removed; running the GatherPress Alpha migration is required for content saved with the old numeric attributes. [#1941]

  • Use match expressions for the three switch statements that existed only to pick a value. No behavior change. [#1978]

Fixed

  • Editing a Form Field block's default value in the sidebar now updates the block's preview in the editor canvas immediately; previously the preview kept showing the old value until the editor was reloaded. [#1960]
  • Fixed the RSVP and nonce REST endpoints returning a 404 when pretty permalinks are disabled, by building the event REST API URL with rest_url() instead of a hardcoded /wp-json/ path. [#1945]
  • Fixed the venue creation Save button not disabling while the request is in flight, which allowed repeated clicks to create multiple duplicate venue posts. [#1947]
  • Venue blocks set to wide or full width now let their inner content expand with them: the block's inner layout no longer defaults to content-width constraint, and the frontend wrapper keeps the layout and block-supports classes WordPress generates instead of rebuilding a bare div. [#1941]

0.34.1

Choose a tag to compare

@github-actions github-actions released this 22 Jul 02:00
54d4b06

Added

  • Warn sites running PHP below 8.1 or WordPress below 7.0 that GatherPress 0.35.0 raises those requirements. [#1983]

Fixed

  • Add the gatherpress_loaded action so companion plugins boot only after the requirements check passes, fixing a site-wide fatal when GatherPress Alpha is active and requirements fail. [#1983]
  • Exclude .wp-env.test.json from the WordPress.org distribution package. [#1983]

0.34.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 20:24
f146aa7

Security

  • Enforce per-post edit capability on venue / event meta and post-specific REST routes so unauthenticated or under-privileged callers cannot modify another user's events or venues. [#1520] [#1917]
  • Lock down GITHUB_TOKEN permissions across CI workflows to least-privilege scopes, reducing the blast radius of a compromised workflow. [#1650] [#1917]
  • Override vulnerable transitive npm dependencies (qs, uuid, webpack-dev-server) via npm overrides. [#1651] [#1917]
  • Rate-limit the geocoding REST endpoints to prevent abuse-by-loop. [#1546] [#1917]
  • Require the promote_users capability (not just per-event edit_post) before adding another user to the site when RSVPing them into an event, so editors and authors cannot enroll arbitrary users as subscribers — most impactful on multisite. Self-RSVP auto-join is unchanged. [#1839] [#1917]
  • Split privileged PR workflows to remove the untrusted-checkout / cache-poisoning exposure that pull-request-target workflows otherwise inherit. [#1652] [#1917]

Added

  • Add a block transform from core/post-date to gatherpress/event-date, re-implemented via the WordPress Block Transforms API. [#1565] [#1664] [#1917]
  • Add a configurable RSVP mode with a sitewide disable switch and per-event control, plus an Open RSVP setting that lets non-logged-in users RSVP via magic-link comments. [#1468] [#1469] [#1917]
  • Add a default template for the Event Query Loop block so it has a sensible starting point on themes that don't ship one. [#1399] [#1917]
  • Add a setting for the Google Maps API key, so sites that prefer Google over OpenStreetMap can wire credentials in through the UI. [#1568] [#1917]
  • Add a site health test that flags installs running on plain permalinks, since several GatherPress features (notably RSVP magic links and .ics downloads) require pretty permalinks. [#1660] [#1917]
  • Add a gatherpress.durationDefault JavaScript filter to override the default event duration (in hours). The value is honored when it matches one of the available durationOptions, otherwise it falls back to the first available duration. [#1706] [#1917]
  • Add a gatherpress_geocode_street_line filter to reorder the house number and street in geocoded address suggestion labels (e.g. Hauptstraße 42 instead of 42 Hauptstraße), so sites can match locale address conventions. [#1836] [#1917]
  • Add a show_if field key to the Settings API so settings fields can be conditionally hidden based on the value of other fields. [#1634] [#1917]
  • Added user documentation for the subscribable iCal calendar feeds. [#1917]
  • Add network-wide GatherPress settings with per-option inheritance so multisite installs can share or override individual settings at the site level. [#1500] [#1917]
  • Add server-rendered static maps to the venue-map block, with a regenerate button, prewarming, retina (2×) srcset rendering, a scale attribute, and Inspector polish. Editor previews now poll for async-arriving map descriptors so the block reflects geocode-on-save state in real time. [#1480] [#1483] [#1485] [#1489] [#1491] [#1492] [#1497] [#1498] [#1917]
  • Add starter pattern pickers to the Event, Venue, RSVP Form, RSVP Response, and RSVP blocks, plus an Event Query Loop starter pattern with a Start blank event scaffold. Patterns are hookable so themes can register their own. [#1571] [#1578] [#1579] [#1580] [#1581] [#1582] [#1584] [#1917]
  • Add tag-driven release automation. Pushing a stable tag now triggers a workflow that builds a versioned distro zip, rolls up .github/changelog/* into a new CHANGELOG.md section (auto-PR'd back to develop), creates a GitHub Release with the zip attached, and deploys to wordpress.org. Pre-release tags (alpha/beta/rc) produce a GitHub Pre-Release with the [Unreleased] changelog snapshot and skip the wp.org deploy. See docs/developer/release-process.md. [#1917]
  • Add the Event Archive setting so site organizers can choose whether the post-type archive defaults to upcoming, past, or is disabled. [#1587] [#1917]
  • Add the gatherpress-event-date post type support so any post type can opt into event datetime storage, the gatherpress_events DB table, date-based query ordering, and the Event Date / Add to Calendar blocks. [#1440] [#1917]
  • Add the gatherpress-rsvp post type support so any post type can opt into the comment-based RSVP system, attendee management, waiting lists, and the RSVP block family. [#1444] [#1917]
  • Add the gatherpress-venue and gatherpress-online-event post type supports so venue association and online-event link handling can be enabled on any custom event post type. [#1453] [#1917]
  • Add venue address autocomplete search powered by the Photon geocoder, with a rate-limited REST endpoint and graceful fallback to manual entry. [#1451] [#1546] [#1917]
  • Adopt the Jetpack changelogger workflow with a per-PR .github/changelog/* file format and a rolled-up CHANGELOG.md. Backfills history from 0.27.0. [#1917]
  • Documented the GDPR opt-in steps for event update emails in the privacy docs. [#1917]
  • Expose the gatherpress_venue_map_prewarm_pre_enqueue_job filter so extensions can short-circuit individual venue-map prewarm jobs (useful for sites with hundreds of venues where a switch_theme would otherwise flood WP-Cron with warm jobs). [#1504] [#1917]
  • Expose WordPress Geodata standard meta on venue post types so third-party themes and plugins that consume geo_latitude / geo_longitude / geo_address work out of the box. [#1471] [#1917]
  • Extract the gatherpress-shadow-source primitive. Hidden _<post_type> taxonomies with post-name-derived terms can now be enabled on any post type, providing the foundation for the venue ⇄ event tagging mechanism and letting companion plugins register their own source-style CPTs (productions, organizers, etc.). [#1569] [#1917]
  • Integrate with the Advanced Query Loop plugin, including a Venue facet in the taxonomy filter. [#1411] [#1917]
  • New documentation about customizable Playground previews per pull-request [#1917]
  • Persist structured venue address fields (house number, street, city, county, state, postcode, country, country code) via an async geocode-on-save cron handler. Exposed via individual meta keys for block bindings. [#1517] [#1530] [#1917]
  • Refactor the Settings API with flat storage, a config-driven architecture, import / export, and reorganized tabs. [#1434] [#1917]
  • Support the Interactivity API's clientNavigation flag for the venue block so navigation between venue pages stays SPA-style on themes that opt in. [#1464] [#1917]

Changed

  • Apply the GatherPress hook naming convention across the codebase. New shadow_* subsystem row added to the hooks-naming-convention doc. [#1550] [#1917]
  • Apply the WordPress 6.8 __next40pxDefaultSize opt-in to every SelectControl instance so admin form controls match the upcoming default sizing. [#1661] [#1917]
  • Bump 'Tested up to' to WordPress 7.0. [#1649] [#1917]
  • Calendar endpoint registration is now an explicit (new Foo(...))->init() chain instead of a side effect of new Foo(...). The Calendar\\Endpoint constructor only stores validated args; init() performs rewrite-rule registration and hook wiring, and returns $this for chaining. Fixes five SonarCloud php:S1848 bugs flagged on Calendar\\Setup and makes the registration side effect surface at the call site. [#1917]
  • Each post type supporting RSVPs now gets its own RSVPs admin page, scoped to that post type. [#1917]
  • Enforce per-post edit capability on venue / event meta and post-specific REST routes. [#1520] [#1917]
  • Extend the admin list-table columns, sorting, and views to every event-supporting post type — not just the built-in gatherpress_event. [#1467] [#1619] [#1917]
  • Extract Event\Meta and Venue\Meta from their respective Setup classes so meta registration lives in a dedicated, testable component. [#1542] [#1917]
  • Flatten Event_* classes into the GatherPress\Core\Event subnamespace. Event_Admin_List is extracted into its own class. [#1450] [#1508] [#1917]
  • Flatten Rsvp_* classes into the GatherPress\Core\Rsvp subnamespace. [#1524] [#1917]
  • Flatten Venue_* classes into the GatherPress\Core\Venue subnamespace. [#1522] [#1917]
  • GatherPress UI strings now pull from each post type's registered labels rather than hardcoding 'Event' / 'Venue'. Custom event-supporting post types see their own labels everywhere in the settings sub-menus, admin list, sidebar panels, and Query block UI. [#1627] [#1629] [#1631] [#1647] [#1659] [#1917]
  • Generalize the gatherpress/venue block and the gatherpress/event-query block's contextual toggle to work with any gatherpress-shadow-source post type (productions, tours, organizers, etc.), not just venues. Adds a new gatherpress_shadow_taxonomy_object_types filter so extensions declaratively wire their shadow taxonomy to event CPTs, plus two reusable Shadow_Source helpers (resolve_post_from_query_context, build_tax_query_clause) for custom Query Loops. [#1917]
  • Honor the WordPress comment privacy filters when inserting RSVP comments. [#1470] [#1917]
  • Include SECURITY.md in the distributed plugin zip. wp-scripts plugin-zip ignores .distignore and builds from a fixed allowlist, so a package.json files list now pins the shipped fileset and adds the security policy. [#1917]
  • Lowered the default Venue Map zoom level from 18 to 16 so new venue maps show more neighborhood context. Sites that already set a custom Default Zoom Level are unaffected. [#1917]
  • Make postIdOverride work for the event and venue blocks, with the dim-gate suppressed on non-event hosts when the override resolves. [#1552] [#1554] [#1917]
  • Move RSVP-related settings to a dedicated RSVP settings panel and relocate the online event link to Venue settings for better organization. [#1394] [#1917]
  • Move the gatherpress-utility-style enqueue onto enqueue_block_assets so it reaches the editor iframe in FSE the...
Read more

0.34.0-beta.2

0.34.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Jul 20:36
81ae823

Security

  • Enforce per-post edit capability on venue / event meta and post-specific REST routes so unauthenticated or under-privileged callers cannot modify another user's events or venues. [#1520] [#1694]
  • Lock down GITHUB_TOKEN permissions across CI workflows to least-privilege scopes, reducing the blast radius of a compromised workflow. [#1650] [#1694]
  • Override vulnerable transitive npm dependencies (qs, uuid, webpack-dev-server) via npm overrides. [#1651] [#1694]
  • Rate-limit the geocoding REST endpoints to prevent abuse-by-loop. [#1546] [#1694]
  • Require the promote_users capability (not just per-event edit_post) before adding another user to the site when RSVPing them into an event, so editors and authors cannot enroll arbitrary users as subscribers — most impactful on multisite. Self-RSVP auto-join is unchanged. [#1839] [#1839]
  • Split privileged PR workflows to remove the untrusted-checkout / cache-poisoning exposure that pull-request-target workflows otherwise inherit. [#1652] [#1694]

Added

  • Add a block transform from core/post-date to gatherpress/event-date, re-implemented via the WordPress Block Transforms API. [#1565] [#1664] [#1694]
  • Add a configurable RSVP mode with a sitewide disable switch and per-event control, plus an Open RSVP setting that lets non-logged-in users RSVP via magic-link comments. [#1468] [#1469] [#1694]
  • Add a default template for the Event Query Loop block so it has a sensible starting point on themes that don't ship one. [#1399] [#1694]
  • Add a setting for the Google Maps API key, so sites that prefer Google over OpenStreetMap can wire credentials in through the UI. [#1568] [#1694]
  • Add a site health test that flags installs running on plain permalinks, since several GatherPress features (notably RSVP magic links and .ics downloads) require pretty permalinks. [#1660] [#1694]
  • Add a gatherpress.durationDefault JavaScript filter to override the default event duration (in hours). The value is honored when it matches one of the available durationOptions, otherwise it falls back to the first available duration. [#1706] [#1716]
  • Add a gatherpress_geocode_street_line filter to reorder the house number and street in geocoded address suggestion labels (e.g. Hauptstraße 42 instead of 42 Hauptstraße), so sites can match locale address conventions. [#1836] [#1836]
  • Add a show_if field key to the Settings API so settings fields can be conditionally hidden based on the value of other fields. [#1634] [#1694]
  • Add network-wide GatherPress settings with per-option inheritance so multisite installs can share or override individual settings at the site level. [#1500] [#1694]
  • Add server-rendered static maps to the venue-map block, with a regenerate button, prewarming, retina (2×) srcset rendering, a scale attribute, and Inspector polish. Editor previews now poll for async-arriving map descriptors so the block reflects geocode-on-save state in real time. [#1480] [#1483] [#1485] [#1489] [#1491] [#1492] [#1497] [#1498] [#1694]
  • Add starter pattern pickers to the Event, Venue, RSVP Form, RSVP Response, and RSVP blocks, plus an Event Query Loop starter pattern with a Start blank event scaffold. Patterns are hookable so themes can register their own. [#1571] [#1578] [#1579] [#1580] [#1581] [#1582] [#1584] [#1694]
  • Add tag-driven release automation. Pushing a stable tag now triggers a workflow that builds a versioned distro zip, rolls up .github/changelog/* into a new CHANGELOG.md section (auto-PR'd back to develop), creates a GitHub Release with the zip attached, and deploys to wordpress.org. Pre-release tags (alpha/beta/rc) produce a GitHub Pre-Release with the [Unreleased] changelog snapshot and skip the wp.org deploy. See docs/developer/release-process.md. [#1692]
  • Add the Event Archive setting so site organizers can choose whether the post-type archive defaults to upcoming, past, or is disabled. [#1587] [#1694]
  • Add the gatherpress-event-date post type support so any post type can opt into event datetime storage, the gatherpress_events DB table, date-based query ordering, and the Event Date / Add to Calendar blocks. [#1440] [#1694]
  • Add the gatherpress-rsvp post type support so any post type can opt into the comment-based RSVP system, attendee management, waiting lists, and the RSVP block family. [#1444] [#1694]
  • Add the gatherpress-venue and gatherpress-online-event post type supports so venue association and online-event link handling can be enabled on any custom event post type. [#1453] [#1694]
  • Add venue address autocomplete search powered by the Photon geocoder, with a rate-limited REST endpoint and graceful fallback to manual entry. [#1451] [#1546] [#1694]
  • Adopt the Jetpack changelogger workflow with a per-PR .github/changelog/* file format and a rolled-up CHANGELOG.md. Backfills history from 0.27.0. [#1690]
  • Expose the gatherpress_venue_map_prewarm_pre_enqueue_job filter so extensions can short-circuit individual venue-map prewarm jobs (useful for sites with hundreds of venues where a switch_theme would otherwise flood WP-Cron with warm jobs). [#1504] [#1694]
  • Expose WordPress Geodata standard meta on venue post types so third-party themes and plugins that consume geo_latitude / geo_longitude / geo_address work out of the box. [#1471] [#1694]
  • Extract the gatherpress-shadow-source primitive. Hidden _<post_type> taxonomies with post-name-derived terms can now be enabled on any post type, providing the foundation for the venue ⇄ event tagging mechanism and letting companion plugins register their own source-style CPTs (productions, organizers, etc.). [#1569] [#1694]
  • Integrate with the Advanced Query Loop plugin, including a Venue facet in the taxonomy filter. [#1411] [#1694]
  • New documentation about customizable Playground previews per pull-request [#1791]
  • Persist structured venue address fields (house number, street, city, county, state, postcode, country, country code) via an async geocode-on-save cron handler. Exposed via individual meta keys for block bindings. [#1517] [#1530] [#1694]
  • Refactor the Settings API with flat storage, a config-driven architecture, import / export, and reorganized tabs. [#1434] [#1694]
  • Support the Interactivity API's clientNavigation flag for the venue block so navigation between venue pages stays SPA-style on themes that opt in. [#1464] [#1694]

Changed

  • Apply the GatherPress hook naming convention across the codebase. New shadow_* subsystem row added to the hooks-naming-convention doc. [#1550] [#1694]
  • Apply the WordPress 6.8 __next40pxDefaultSize opt-in to every SelectControl instance so admin form controls match the upcoming default sizing. [#1661] [#1694]
  • Bump 'Tested up to' to WordPress 7.0. [#1649] [#1694]
  • Calendar endpoint registration is now an explicit (new Foo(...))->init() chain instead of a side effect of new Foo(...). The Calendar\\Endpoint constructor only stores validated args; init() performs rewrite-rule registration and hook wiring, and returns $this for chaining. Fixes five SonarCloud php:S1848 bugs flagged on Calendar\\Setup and makes the registration side effect surface at the call site. [#1695]
  • Each post type supporting RSVPs now gets its own RSVPs admin page, scoped to that post type. [#1853]
  • Enforce per-post edit capability on venue / event meta and post-specific REST routes. [#1520] [#1694]
  • Extend the admin list-table columns, sorting, and views to every event-supporting post type — not just the built-in gatherpress_event. [#1467] [#1619] [#1694]
  • Extract Event\Meta and Venue\Meta from their respective Setup classes so meta registration lives in a dedicated, testable component. [#1542] [#1694]
  • Flatten Event_* classes into the GatherPress\Core\Event subnamespace. Event_Admin_List is extracted into its own class. [#1450] [#1508] [#1694]
  • Flatten Rsvp_* classes into the GatherPress\Core\Rsvp subnamespace. [#1524] [#1694]
  • Flatten Venue_* classes into the GatherPress\Core\Venue subnamespace. [#1522] [#1694]
  • GatherPress UI strings now pull from each post type's registered labels rather than hardcoding 'Event' / 'Venue'. Custom event-supporting post types see their own labels everywhere in the settings sub-menus, admin list, sidebar panels, and Query block UI. [#1627] [#1629] [#1631] [#1647] [#1659] [#1694]
  • Generalize the gatherpress/venue block and the gatherpress/event-query block's contextual toggle to work with any gatherpress-shadow-source post type (productions, tours, organizers, etc.), not just venues. Adds a new gatherpress_shadow_taxonomy_object_types filter so extensions declaratively wire their shadow taxonomy to event CPTs, plus two reusable Shadow_Source helpers (resolve_post_from_query_context, build_tax_query_clause) for custom Query Loops. [#1689]
  • Honor the WordPress comment privacy filters when inserting RSVP comments. [#1470] [#1694]
  • Include SECURITY.md in the distributed plugin zip. wp-scripts plugin-zip ignores .distignore and builds from a fixed allowlist, so a package.json files list now pins the shipped fileset and adds the security policy. [#1727]
  • Lowered the default Venue Map zoom level from 18 to 16 so new venue maps show more neighborhood context. Sites that already set a custom Default Zoom Level are unaffected. [#1799]
  • Make postIdOverride work for the event and venue blocks, with the dim-gate suppressed on non-event hosts when the override resolves. [#1552] [#1554] [#1694]
  • Move RSVP-related settings to a dedicated RSVP settings panel and relocate the online event link to Venue settings for better organization. [#1394] [#1694]
  • Move the gatherpress-utility-style enqueue onto enqueue_block_assets so it reaches the editor iframe in FSE themes. [#1655] [#1694]
  • Re-implement block-unregistration handling and clean up legacy unregister flow. [#1409] [#1694]
  • Re-implement the calendar .ics download endp...
Read more

0.34.0-beta.1

0.34.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jun 13:41
9b77287

Security

  • Enforce per-post edit capability on venue / event meta and post-specific REST routes so unauthenticated or under-privileged callers cannot modify another user's events or venues. [#1520] [#1694]
  • Lock down GITHUB_TOKEN permissions across CI workflows to least-privilege scopes, reducing the blast radius of a compromised workflow. [#1650] [#1694]
  • Override vulnerable transitive npm dependencies (qs, uuid, webpack-dev-server) via npm overrides. [#1651] [#1694]
  • Rate-limit the geocoding REST endpoints to prevent abuse-by-loop. [#1546] [#1694]
  • Split privileged PR workflows to remove the untrusted-checkout / cache-poisoning exposure that pull-request-target workflows otherwise inherit. [#1652] [#1694]

Added

  • Add a block transform from core/post-date to gatherpress/event-date, re-implemented via the WordPress Block Transforms API. [#1565] [#1664] [#1694]
  • Add a configurable RSVP mode with a sitewide disable switch and per-event control, plus an Open RSVP setting that lets non-logged-in users RSVP via magic-link comments. [#1468] [#1469] [#1694]
  • Add a default template for the Event Query Loop block so it has a sensible starting point on themes that don't ship one. [#1399] [#1694]
  • Add a setting for the Google Maps API key, so sites that prefer Google over OpenStreetMap can wire credentials in through the UI. [#1568] [#1694]
  • Add a site health test that flags installs running on plain permalinks, since several GatherPress features (notably RSVP magic links and .ics downloads) require pretty permalinks. [#1660] [#1694]
  • Add a gatherpress.durationDefault JavaScript filter to override the default event duration (in hours). The value is honored when it matches one of the available durationOptions, otherwise it falls back to the first available duration. [#1706] [#1716]
  • Add a show_if field key to the Settings API so settings fields can be conditionally hidden based on the value of other fields. [#1634] [#1694]
  • Add network-wide GatherPress settings with per-option inheritance so multisite installs can share or override individual settings at the site level. [#1500] [#1694]
  • Add server-rendered static maps to the venue-map block, with a regenerate button, prewarming, retina (2×) srcset rendering, a scale attribute, and Inspector polish. Editor previews now poll for async-arriving map descriptors so the block reflects geocode-on-save state in real time. [#1480] [#1483] [#1485] [#1489] [#1491] [#1492] [#1497] [#1498] [#1694]
  • Add starter pattern pickers to the Event, Venue, RSVP Form, RSVP Response, and RSVP blocks, plus an Event Query Loop starter pattern with a Start blank event scaffold. Patterns are hookable so themes can register their own. [#1571] [#1578] [#1579] [#1580] [#1581] [#1582] [#1584] [#1694]
  • Add tag-driven release automation. Pushing a stable tag now triggers a workflow that builds a versioned distro zip, rolls up .github/changelog/* into a new CHANGELOG.md section (auto-PR'd back to develop), creates a GitHub Release with the zip attached, and deploys to wordpress.org. Pre-release tags (alpha/beta/rc) produce a GitHub Pre-Release with the [Unreleased] changelog snapshot and skip the wp.org deploy. See docs/developer/release-process.md. [#1692]
  • Add the Event Archive setting so site organizers can choose whether the post-type archive defaults to upcoming, past, or is disabled. [#1587] [#1694]
  • Add the gatherpress-event-date post type support so any post type can opt into event datetime storage, the gatherpress_events DB table, date-based query ordering, and the Event Date / Add to Calendar blocks. [#1440] [#1694]
  • Add the gatherpress-rsvp post type support so any post type can opt into the comment-based RSVP system, attendee management, waiting lists, and the RSVP block family. [#1444] [#1694]
  • Add the gatherpress-venue and gatherpress-online-event post type supports so venue association and online-event link handling can be enabled on any custom event post type. [#1453] [#1694]
  • Add venue address autocomplete search powered by the Photon geocoder, with a rate-limited REST endpoint and graceful fallback to manual entry. [#1451] [#1546] [#1694]
  • Adopt the Jetpack changelogger workflow with a per-PR .github/changelog/* file format and a rolled-up CHANGELOG.md. Backfills history from 0.27.0. [#1690]
  • Expose the gatherpress_venue_map_prewarm_pre_enqueue_job filter so extensions can short-circuit individual venue-map prewarm jobs (useful for sites with hundreds of venues where a switch_theme would otherwise flood WP-Cron with warm jobs). [#1504] [#1694]
  • Expose WordPress Geodata standard meta on venue post types so third-party themes and plugins that consume geo_latitude / geo_longitude / geo_address work out of the box. [#1471] [#1694]
  • Extract the gatherpress-shadow-source primitive. Hidden _<post_type> taxonomies with post-name-derived terms can now be enabled on any post type, providing the foundation for the venue ⇄ event tagging mechanism and letting companion plugins register their own source-style CPTs (productions, organizers, etc.). [#1569] [#1694]
  • Integrate with the Advanced Query Loop plugin, including a Venue facet in the taxonomy filter. [#1411] [#1694]
  • New documentation about customizable Playground previews per pull-request [#1791]
  • Persist structured venue address fields (house number, street, city, county, state, postcode, country, country code) via an async geocode-on-save cron handler. Exposed via individual meta keys for block bindings. [#1517] [#1530] [#1694]
  • Refactor the Settings API with flat storage, a config-driven architecture, import / export, and reorganized tabs. [#1434] [#1694]
  • Support the Interactivity API's clientNavigation flag for the venue block so navigation between venue pages stays SPA-style on themes that opt in. [#1464] [#1694]

Changed

  • Apply the GatherPress hook naming convention across the codebase. New shadow_* subsystem row added to the hooks-naming-convention doc. [#1550] [#1694]
  • Apply the WordPress 6.8 __next40pxDefaultSize opt-in to every SelectControl instance so admin form controls match the upcoming default sizing. [#1661] [#1694]
  • Bump 'Tested up to' to WordPress 7.0. [#1649] [#1694]
  • Calendar endpoint registration is now an explicit (new Foo(...))->init() chain instead of a side effect of new Foo(...). The Calendar\\Endpoint constructor only stores validated args; init() performs rewrite-rule registration and hook wiring, and returns $this for chaining. Fixes five SonarCloud php:S1848 bugs flagged on Calendar\\Setup and makes the registration side effect surface at the call site. [#1695]
  • Enforce per-post edit capability on venue / event meta and post-specific REST routes. [#1520] [#1694]
  • Extend the admin list-table columns, sorting, and views to every event-supporting post type — not just the built-in gatherpress_event. [#1467] [#1619] [#1694]
  • Extract Event\Meta and Venue\Meta from their respective Setup classes so meta registration lives in a dedicated, testable component. [#1542] [#1694]
  • Flatten Event_* classes into the GatherPress\Core\Event subnamespace. Event_Admin_List is extracted into its own class. [#1450] [#1508] [#1694]
  • Flatten Rsvp_* classes into the GatherPress\Core\Rsvp subnamespace. [#1524] [#1694]
  • Flatten Venue_* classes into the GatherPress\Core\Venue subnamespace. [#1522] [#1694]
  • GatherPress UI strings now pull from each post type's registered labels rather than hardcoding 'Event' / 'Venue'. Custom event-supporting post types see their own labels everywhere in the settings sub-menus, admin list, sidebar panels, and Query block UI. [#1627] [#1629] [#1631] [#1647] [#1659] [#1694]
  • Generalize the gatherpress/venue block and the gatherpress/event-query block's contextual toggle to work with any gatherpress-shadow-source post type (productions, tours, organizers, etc.), not just venues. Adds a new gatherpress_shadow_taxonomy_object_types filter so extensions declaratively wire their shadow taxonomy to event CPTs, plus two reusable Shadow_Source helpers (resolve_post_from_query_context, build_tax_query_clause) for custom Query Loops. [#1689]
  • Honor the WordPress comment privacy filters when inserting RSVP comments. [#1470] [#1694]
  • Include SECURITY.md in the distributed plugin zip. wp-scripts plugin-zip ignores .distignore and builds from a fixed allowlist, so a package.json files list now pins the shipped fileset and adds the security policy. [#1727]
  • Lowered the default Venue Map zoom level from 18 to 16 so new venue maps show more neighborhood context. Sites that already set a custom Default Zoom Level are unaffected. [#1799]
  • Make postIdOverride work for the event and venue blocks, with the dim-gate suppressed on non-event hosts when the override resolves. [#1552] [#1554] [#1694]
  • Move RSVP-related settings to a dedicated RSVP settings panel and relocate the online event link to Venue settings for better organization. [#1394] [#1694]
  • Move the gatherpress-utility-style enqueue onto enqueue_block_assets so it reaches the editor iframe in FSE themes. [#1655] [#1694]
  • Re-implement block-unregistration handling and clean up legacy unregister flow. [#1409] [#1694]
  • Re-implement the calendar .ics download endpoint with proper rewrites and feed handling, replacing the legacy Event ICS code. [#1669] [#1694]
  • Read isEditorPanelOpened from core/editor instead of core/edit-post, silencing a WordPress 6.5 deprecation warning. [#1653] [#1694]
  • Refactor the venue-detail block architecture and fix context handling so it composes cleanly inside Query Loops and FSE templates. [#1391] [#1405] [#1694]
  • Refactor the venue map block into a swappable provider strategy so Google Maps and OpenStreetMap (and future providers) share a common interface. [#1534] [#1694]
  • Rename the safeHTML helper to stripScriptsAndEventHandlers and document its...
Read more

0.34.0-alpha.2

0.34.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 May 01:03
32a724a

Security

  • Enforce per-post edit capability on venue / event meta and post-specific REST routes so unauthenticated or under-privileged callers cannot modify another user's events or venues. [#1520] [#1694]
  • Lock down GITHUB_TOKEN permissions across CI workflows to least-privilege scopes, reducing the blast radius of a compromised workflow. [#1650] [#1694]
  • Override vulnerable transitive npm dependencies (qs, uuid, webpack-dev-server) via npm overrides. [#1651] [#1694]
  • Rate-limit the geocoding REST endpoints to prevent abuse-by-loop. [#1546] [#1694]
  • Split privileged PR workflows to remove the untrusted-checkout / cache-poisoning exposure that pull-request-target workflows otherwise inherit. [#1652] [#1694]

Added

  • Add a block transform from core/post-date to gatherpress/event-date, re-implemented via the WordPress Block Transforms API. [#1565] [#1664] [#1694]
  • Add a configurable RSVP mode with a sitewide disable switch and per-event control, plus an Open RSVP setting that lets non-logged-in users RSVP via magic-link comments. [#1468] [#1469] [#1694]
  • Add a default template for the Event Query Loop block so it has a sensible starting point on themes that don't ship one. [#1399] [#1694]
  • Add a setting for the Google Maps API key, so sites that prefer Google over OpenStreetMap can wire credentials in through the UI. [#1568] [#1694]
  • Add a site health test that flags installs running on plain permalinks, since several GatherPress features (notably RSVP magic links and .ics downloads) require pretty permalinks. [#1660] [#1694]
  • Add a show_if field key to the Settings API so settings fields can be conditionally hidden based on the value of other fields. [#1634] [#1694]
  • Add network-wide GatherPress settings with per-option inheritance so multisite installs can share or override individual settings at the site level. [#1500] [#1694]
  • Add server-rendered static maps to the venue-map block, with a regenerate button, prewarming, retina (2×) srcset rendering, a scale attribute, and Inspector polish. Editor previews now poll for async-arriving map descriptors so the block reflects geocode-on-save state in real time. [#1480] [#1483] [#1485] [#1489] [#1491] [#1492] [#1497] [#1498] [#1694]
  • Add starter pattern pickers to the Event, Venue, RSVP Form, RSVP Response, and RSVP blocks, plus an Event Query Loop starter pattern with a Start blank event scaffold. Patterns are hookable so themes can register their own. [#1571] [#1578] [#1579] [#1580] [#1581] [#1582] [#1584] [#1694]
  • Add tag-driven release automation. Pushing a stable tag now triggers a workflow that builds a versioned distro zip, rolls up .github/changelog/* into a new CHANGELOG.md section (auto-PR'd back to develop), creates a GitHub Release with the zip attached, and deploys to wordpress.org. Pre-release tags (alpha/beta/rc) produce a GitHub Pre-Release with the [Unreleased] changelog snapshot and skip the wp.org deploy. See docs/developer/release-process.md. [#1692]
  • Add the Event Archive setting so site organizers can choose whether the post-type archive defaults to upcoming, past, or is disabled. [#1587] [#1694]
  • Add the gatherpress-event-date post type support so any post type can opt into event datetime storage, the gatherpress_events DB table, date-based query ordering, and the Event Date / Add to Calendar blocks. [#1440] [#1694]
  • Add the gatherpress-rsvp post type support so any post type can opt into the comment-based RSVP system, attendee management, waiting lists, and the RSVP block family. [#1444] [#1694]
  • Add the gatherpress-venue and gatherpress-online-event post type supports so venue association and online-event link handling can be enabled on any custom event post type. [#1453] [#1694]
  • Add venue address autocomplete search powered by the Photon geocoder, with a rate-limited REST endpoint and graceful fallback to manual entry. [#1451] [#1546] [#1694]
  • Adopt the Jetpack changelogger workflow with a per-PR .github/changelog/* file format and a rolled-up CHANGELOG.md. Backfills history from 0.27.0. [#1690]
  • Expose the gatherpress_venue_map_prewarm_pre_enqueue_job filter so extensions can short-circuit individual venue-map prewarm jobs (useful for sites with hundreds of venues where a switch_theme would otherwise flood WP-Cron with warm jobs). [#1504] [#1694]
  • Expose WordPress Geodata standard meta on venue post types so third-party themes and plugins that consume geo_latitude / geo_longitude / geo_address work out of the box. [#1471] [#1694]
  • Extract the gatherpress-shadow-source primitive. Hidden _<post_type> taxonomies with post-name-derived terms can now be enabled on any post type, providing the foundation for the venue ⇄ event tagging mechanism and letting companion plugins register their own source-style CPTs (productions, organizers, etc.). [#1569] [#1694]
  • Integrate with the Advanced Query Loop plugin, including a Venue facet in the taxonomy filter. [#1411] [#1694]
  • Persist structured venue address fields (house number, street, city, county, state, postcode, country, country code) via an async geocode-on-save cron handler. Exposed via individual meta keys for block bindings. [#1517] [#1530] [#1694]
  • Refactor the Settings API with flat storage, a config-driven architecture, import / export, and reorganized tabs. [#1434] [#1694]
  • Support the Interactivity API's clientNavigation flag for the venue block so navigation between venue pages stays SPA-style on themes that opt in. [#1464] [#1694]

Changed

  • Apply the GatherPress hook naming convention across the codebase. New shadow_* subsystem row added to the hooks-naming-convention doc. [#1550] [#1694]
  • Apply the WordPress 6.8 __next40pxDefaultSize opt-in to every SelectControl instance so admin form controls match the upcoming default sizing. [#1661] [#1694]
  • Bump 'Tested up to' to WordPress 7.0. [#1649] [#1694]
  • Calendar endpoint registration is now an explicit (new Foo(...))->init() chain instead of a side effect of new Foo(...). The Calendar\\Endpoint constructor only stores validated args; init() performs rewrite-rule registration and hook wiring, and returns $this for chaining. Fixes five SonarCloud php:S1848 bugs flagged on Calendar\\Setup and makes the registration side effect surface at the call site. [#1695]
  • Enforce per-post edit capability on venue / event meta and post-specific REST routes. [#1520] [#1694]
  • Extend the admin list-table columns, sorting, and views to every event-supporting post type — not just the built-in gatherpress_event. [#1467] [#1619] [#1694]
  • Extract Event\Meta and Venue\Meta from their respective Setup classes so meta registration lives in a dedicated, testable component. [#1542] [#1694]
  • Flatten Event_* classes into the GatherPress\Core\Event subnamespace. Event_Admin_List is extracted into its own class. [#1450] [#1508] [#1694]
  • Flatten Rsvp_* classes into the GatherPress\Core\Rsvp subnamespace. [#1524] [#1694]
  • Flatten Venue_* classes into the GatherPress\Core\Venue subnamespace. [#1522] [#1694]
  • GatherPress UI strings now pull from each post type's registered labels rather than hardcoding 'Event' / 'Venue'. Custom event-supporting post types see their own labels everywhere in the settings sub-menus, admin list, sidebar panels, and Query block UI. [#1627] [#1629] [#1631] [#1647] [#1659] [#1694]
  • Generalize the gatherpress/venue block and the gatherpress/event-query block's contextual toggle to work with any gatherpress-shadow-source post type (productions, tours, organizers, etc.), not just venues. Adds a new gatherpress_shadow_taxonomy_object_types filter so extensions declaratively wire their shadow taxonomy to event CPTs, plus two reusable Shadow_Source helpers (resolve_post_from_query_context, build_tax_query_clause) for custom Query Loops. [#1689]
  • Honor the WordPress comment privacy filters when inserting RSVP comments. [#1470] [#1694]
  • Make postIdOverride work for the event and venue blocks, with the dim-gate suppressed on non-event hosts when the override resolves. [#1552] [#1554] [#1694]
  • Move RSVP-related settings to a dedicated RSVP settings panel and relocate the online event link to Venue settings for better organization. [#1394] [#1694]
  • Move the gatherpress-utility-style enqueue onto enqueue_block_assets so it reaches the editor iframe in FSE themes. [#1655] [#1694]
  • Re-implement block-unregistration handling and clean up legacy unregister flow. [#1409] [#1694]
  • Re-implement the calendar .ics download endpoint with proper rewrites and feed handling, replacing the legacy Event ICS code. [#1669] [#1694]
  • Read isEditorPanelOpened from core/editor instead of core/edit-post, silencing a WordPress 6.5 deprecation warning. [#1653] [#1694]
  • Refactor the venue-detail block architecture and fix context handling so it composes cleanly inside Query Loops and FSE templates. [#1391] [#1405] [#1694]
  • Refactor the venue map block into a swappable provider strategy so Google Maps and OpenStreetMap (and future providers) share a common interface. [#1534] [#1694]
  • Rename the safeHTML helper to stripScriptsAndEventHandlers and document its narrow scope (it strips <script> tags and on*= event handlers — it is not a full HTML sanitizer). [#1545] [#1694]
  • Rename OnlineEventLink to OnlineEvent and remove the legacy Listener / Broadcaster code that was no longer used. [#1420] [#1694]
  • Replace the original RSVP / RSVP Response / RSVP Template / Venue blocks with their V2 equivalents that shipped in 0.32.0. The V2 naming is dropped now that the new blocks are canonical. [#1407] [#1694]
  • Restructure settings tabs — Date & Time moves under Events, Maps moves under a new Venues tab. Venue splits into an instance class plus a Venue_Setup singleton. [#1477] [#1694]
  • Separate README.md (GitHub-facing) and readme.txt (wp.org-facing) so each surface gets content tailored to its ...
Read more

0.33.3

Choose a tag to compare

@mauteri mauteri released this 16 Feb 15:14
32196f4

What's Changed

Full Changelog: 0.33.2...0.33.3

0.33.2

Choose a tag to compare

@mauteri mauteri released this 08 Feb 18:20
2bf2773

What's Changed

  • Fix "not allowed to edit custom field" error when publishing events by @mauteri in #1375

Full Changelog: 0.33.1...0.33.2