Repository navigation
ProducerKit 2.2.0
Every request this plugin takes from a visitor can now be reached again by the person who made it.
Until this release, none of them could.
| Request | What happened before |
|---|---|
| Commission quote | the emailed link returned a 404 for every customer |
| RSVP | the guest got no email at all, and could not cancel once they closed the tab |
| Pre-order | the form said "keep this cancellation code" and gave them nowhere to enter it |
Each now opens from a link showing what was booked, with the one action that makes sense. Those actions are POSTs behind a confirmation, never plain links — a mail client prefetching a URL must not be able to cancel someone's booking or accept a quote on their behalf. The pages carry noindex and no-referrer, so a link cannot travel further than the person it was sent to.
RSVPs
Guests now get a confirmation email. Previously every notification in the plugin went to the site owner, so a visitor RSVP'd, saw a message on the page, and received nothing. It carries the event, the date, the party size and a link to the booking they can cancel themselves. On a capped event that matters: a guest who cannot cancel silently holds a seat nobody knows is free.
A guest list screen, which had never existed. The events list has shown an RSVP count since the feature was written, and there was no way to see who those people were. Now: headcount, spots remaining, one-click cancellation, and a CSV download to take to the door.
Cancelling frees the place whichever way it is done — the screen uses the same route the guest's own link does, so the count can't drift.
Pre-orders
The confirmation email now carries a link to view or cancel the order, and the form links to it instead of printing a code. The page shows the pickup date, the location, the items, and a status in ordinary words — "Collected", not picked_up. Cancelling is offered while the order is still pending or confirmed, and once it is packed or collected the page says so rather than pretending, because the produce is already picked.
Your data
Deleting an event or a pickup location now removes the bookings attached to it. Before, an event could be deleted and its attendees' names and email addresses stayed in the database indefinitely, pointing at a post that no longer existed and invisible in every screen. Trashing still keeps them, since a trashed event can be restored.
uninstall.php, which the plugin did not have. Deleting it used to leave four database tables, seven options, a scheduled job and every booking ever taken. Plugin bookkeeping now always goes; your products, locations, events and their bookings only if you have ticked the box under ProducerKit → Producer Profile. That is off by default, because deleting a plugin to troubleshoot something should not destroy a catalogue — and there is no undo.
Reading a guest list now requires the Editor role rather than Contributor. Names and email addresses are not a low bar.
Upgrading
Safe from 2.1.0 and 2.0.0 — no data changes, and the new cleanup only ever runs on a permanent delete you perform yourself. If you are on 1.x, read the 2.0.0 notes first: there is no upgrade path from 1.x.
Requirements
WordPress 6.9+ · PHP 8.1+ · WooCommerce optional
24 unit and 231 integration tests, PHPCS clean, and Plugin Check run against the built package.