Repository navigation
Fixes only, two of them for security. Recommended for every site.
Nothing new to learn and nothing to set up: update, and everything you've built stays as it was.
Security
Unpublished products no longer give away their sources. Anyone could ask ProducerKit's public API for the sources behind a product by its number, including products that were still drafts, private, scheduled or password-protected. Counting through the numbers was enough to find what a product you hadn't announced yet was made from, and where it came from. Now only published products answer, and every other number gets the same empty reply, so it doesn't reveal which products exist either.
The product spreadsheet export can no longer carry a formula. It copied product names and notes straight into the file, so a product named starting with = would run as a formula when someone opened the export in Excel or Google Sheets. Such cells are now marked as plain text. Importing the file undoes exactly that, so a real product called "-40° Frozen Berries" comes back unchanged.
Fixed
An old PHP version now explains itself instead of taking your site down. WordPress only checks a plugin's PHP requirement when you activate it. If files are replaced in place, as an FTP upload or a host's sync does, and the server runs an older PHP than ProducerKit needs, the next page load was a blank white screen. ProducerKit now stops before loading anything and tells you which version it needs, which one your site has, and that your content is safe.
Marking something sold out takes effect straight away. If a product was "abundant" last week and you marked it sold out today, the availability board kept showing it as abundant, because it picked the most optimistic status rather than the most recent. Today's update now wins everywhere.
A shop's board lists only what that shop carries. Products marked "available everywhere I sell" belong on your own stand's board, not on a retailer's.
Statuses are translated. "Sold out", "Abundant" and the rest stayed in English on sites in other languages. The help text in a location's Payment Options is now translatable too.
Deleting the plugin cleans up properly. If you've asked for your data to go when ProducerKit is deleted (under ProducerKit → Producer Profile), it now removes everything, including your product types, seasons and event types, which every version since 2.2.0 left behind. If you haven't asked, your products, events and settings are kept as before, and only ProducerKit's internal records go.
Full changelog: https://github.com/jwincek/producerkit/blob/v2.9.1/CHANGELOG.md