Skip to content

PostyType Quote Request Changelog

Release notes for PostyType Quote Request, newest first. The current release is 2.13.0.

Coverage starts at 2.1.7. Earlier 2.1.x releases predate the current changelog and have no recorded notes.

Updates install through the normal WordPress updates screen once your license is active — see Getting Started for installation and licensing.

Back up before updating a production site

Quote requests live in their own database table, and updates apply schema and data migrations automatically. Update on staging first where you can.

2.13.0

Added

  • Add to calendar - Once a request is accepted, both the partner and the customer get an Add to calendar button on their dashboard. It downloads an ordinary calendar file, so it opens in Apple Calendar, Outlook, Google Calendar and everything else, and no details of the request pass through anyone else's service on the way. The entry spans the dates from your form and carries the items, the amount, the partner's note and the customer's contact details. Requests without dates simply don't show the button.
  • Partner phone number, with WhatsApp - New optional Vendor Phone Field Key setting. Once a customer accepts, the partner's number appears beside their email as a WhatsApp link and a tap-to-call link, so a customer on a phone can reach them either way.
  • Default Country Calling Code - WhatsApp only accepts a number that carries its country code, and partners quite reasonably store local numbers. Set your code here (+39, say) and it's added to numbers that don't have one, dropping the national leading zero. Numbers already starting + or 00 are left alone. If no code is set and a number doesn't carry its own, no WhatsApp link is shown at all — a link that lands on an error page is worse than no link. The settings screen shows a real partner number and exactly what it turns into.

Fixed

  • The Full Name field could still prefill with only half a name - 2.12.0 fixed this for WordPress accounts, but on a profile-driven site people fill in their profile, not their WordPress account — so the complete name was sitting on the profile while WordPress held only a surname. The form now looks at the name on the user's profile listing as well, and always prefers a name carrying both parts over one that doesn't.

2.12.0

Fixed

  • The vendor's city showed the wrong place on nested location taxonomies - If your city taxonomy is hierarchical — a partner filed under Italy → Apulia → Bari — the partner carries all three terms, and the plugin was taking whichever came first rather than the most specific. It now always uses the deepest term, which is the city.
  • The Full Name field prefilled as only a first name or only a surname - When a customer's WordPress account had just one of the two name fields filled in, the form prefilled that half instead of falling back to their display name. This is the ordinary case on Voxel sites, where the real name lives on the profile rather than in WordPress's own fields.
  • The "Requesting quote from…" bar stayed after submitting - The violet bar, complete with a working Clear Quote button, sat above the "Quote Request Sent!" confirmation as though the request were still being composed. It now disappears with the rest of the quote.
  • The front-end request view is no longer recoloured by your theme - This screen's styling was written so that a page builder's global colours overrode it, which is why it reached partners in whatever palette the site used while the identical WordPress-admin screen looked as designed. Its text, fields and buttons now keep their intended colours whatever your theme does, and the card headings gained the same icons as the admin view. Nothing about the layout or the responsive behaviour changed.

Added

  • Vendor Email Field Key - New optional setting for marketplaces where the address customers should reach lives on the partner's profile listing rather than on their WordPress account. Set it and that address is used for the partner's notifications and shown as their contact details. If the field is empty or isn't a valid address, the account email is used instead, so a mistyped key can never cost a partner their notifications. The settings screen shows you which address partners are currently contacted at.
  • A link to the vendor's own dashboard, for the vendor's email - {vendor_dashboard_link}, or @quote(:vendor_dashboard_link) on Voxel sites, drops a partner straight into that request on their dashboard. Only the customer-facing dashboard link existed before.

Improvements

  • Settings shows the post-type slugs that actually exist on your site, under "Vendor Profile Post Type", and tells you plainly when what you've entered matches none of them. This one setting is easy to get wrong — a post type displayed as "Partners" may have the slug partner or partners — and getting it wrong fails quietly in three places at once: the partner's name falls back to their username, no city is ever looked up, and their name links to an author archive instead of their profile.

2.11.0

Quote Reference Numbers

  • Requests now have a reference like QR-7K3M9P instead of a running number - Previously every request was identified by its position in the database, so #12 told a customer — and every vendor — that your platform had handled twelve requests. References are now short and random, revealing nothing about your volume. They appear in emails, on the customer and vendor dashboards, in the admin list (a new Reference column) and on every single-request view, and the admin search box finds a request by its reference.
  • The prefix is yours - Settings → General → Quote Reference Prefix (default QR-). Set it to something that suits your marketplace and new requests use it immediately.

Existing requests get new references

On update, every request already in your system is assigned a reference. A customer holding an older email that quotes a number like "#12" won't be able to match it to anything — the reference in their dashboard and in any new email is the one that counts. Nothing is lost: the requests themselves are untouched.

Fixed

  • Customer contact details could reach vendors with masking switched on - With Hide Customer Contact Details from Vendors enabled, the vendor's notification email still contained the customer's real name, email and phone whenever the person submitting the request happened to be an administrator. That's exactly what happens when you test your own form, or place a request on a customer's behalf — so the setting looked like it was working while the vendor's copy quietly wasn't masked. Fixed: what a vendor is sent no longer depends on who triggered the request. Administrators continue to see full details on their own screens, as before.
  • The vendor's city appears without configuration in the common case - If Vendor City/Location Field Key is empty, or set to a key that no longer matches anything, the plugin now looks for an obviously-named city field or taxonomy on the vendor profile instead of silently showing no city. It stays deliberately cautious — a general "location" or "address" field is never used, since it may hold a full street address you didn't want on display.

Improvements

  • The vendor's quote note shows in the request lists - A note saved alongside the amount ("Delivery included, mornings only") was only visible on the customer's dashboard and in the quote email. It now appears under the amount in the admin list and the front-end dashboards, so you can see at a glance which quotes carry a condition.
  • Settings previews your vendor names - The General tab now shows what vendor names actually resolve to right now — "Albion — Catania" — so a mis-set city key is obvious on the settings screen instead of turning up in a customer's email.

2.10.0

Vendor Reminders

  • Vendors get a nudge about unanswered requests - New setting (off by default): when a request is still "New" after your chosen number of hours (default 12), the vendor receives one reminder — on Voxel sites as a proper App Event with both an in-app notification and an email, elsewhere as a built-in email. Each request is reminded exactly once, and requests older than a week are never reminded, so switching the feature on won't blast vendors about a forgotten backlog.

Improvements

  • Item links in emails are back — as links, not buttons - 2.9.0 made the item lists plain text because some email designs render every link as a huge button. The links have returned with styling that keeps them as normal underlined links in any email design, including the proposed-replacement links.
  • Accept and Decline are buttons on one row - The quote email now shows a green Accept button next to a red Decline button, side by side, in both the Voxel and standard templates.
  • Updating items on a sent quote re-sends it - If a partner marks an item unavailable, proposes a replacement, or reverts it after the quote email already went out, the customer automatically receives the updated quote — they never decide on a version they haven't seen. The partner sees a confirmation that it was sent.

2.9.0

Substitute Proposals

  • Vendors can propose a replacement instead of only rejecting - When a requested item isn't available, the vendor can now mark it unavailable on the request and propose a replacement from their own published items. The customer sees both, everywhere the request appears — dashboard and emails — as "you asked for A — we can offer B instead", and agrees to the swap simply by accepting the quote. The original request always stays on record, and items lock once the customer has decided.

Product Quantity Switch

  • Turn product quantity off when every item is unique - A new setting (on by default) controls the +/− quantity controls. Switch it off when each vendor lists individual physical items: the quantity controls disappear from the quote page, and clicking "Add to Quote" again on a product already in the quote no longer adds a duplicate — the button simply confirms it's already in.

Fixes

  • Two form fields with the same label no longer overwrite each other - Field values are stored under a name derived from the label, so two fields both labelled e.g. "Specify the address" (one for delivery, one for return) collided: only one value survived and it showed under both fields. Repeated labels now get their own storage automatically — nothing to change on your form.
  • Dates in the past are rejected - The date picker no longer offers days before today, and the server independently rejects them, so a request can no longer start last week. The existing end-before-start check stays.
  • Editing the quote form from a phone works again - On small screens, the form builder in Settings collapsed all of each field's controls into one overlapping pile, leaving only the Required checkbox and the delete button visible. The controls now stack cleanly and every one of them is editable.
  • Notification emails read properly on Voxel sites - Emails sent through Voxel App Events lost their line breaks and arrived as one long run-on paragraph. Line breaks are preserved now.
  • The customer's own emails are no longer masked - With "mask customer contacts" enabled, the customer's confirmation email could greet them with their own name masked out ("Dear S***"). Masking now applies only to what the vendor receives — the customer and the admin always see full details.
  • The green success tick can no longer render as a black blob - Some themes restyle SVG shapes globally, which corrupted the confirmation checkmark. Its colors are now locked inline.

Improvements

  • Customer emails are easier to scan - Default templates list the requested items as plain text instead of one link per item (some email designs render every link as a huge button), consent confirmations are plain text, and the quote email offers three clear links: Accept, Decline, and the online dashboard.
  • The quote form shows bordered field groups - Section headings on the quote form now draw a bordered box around the fields that follow, matching the grouping the dashboards already had.
  • Request details follow your form's layout - Details shown on dashboards now mirror the form: half-width fields share a row in form order (delivery option beside its address, return on its own row) instead of packing into columns that mixed them together.
  • New plain-text items tag for emails - {quote_items_text} (and @quote(:quote_items_text) on Voxel sites) lists the requested items without links, for email designs that turn links into buttons. The linked version {quote_items} is unchanged.

2.8.3

Fixes

  • Important: sites with a privacy policy page could go down when updating - Updating the plugin could leave a site showing a critical error, and because the update never finished, it stayed down until the plugin was disabled. This only affected sites with a published privacy policy page — so GDPR-configured sites in particular. If this happened to you, simply updating to 2.8.3 resolves it; no data was ever lost, since quote requests live safely in their own database table. Our apologies for the disruption.

2.8.2

Fixes

  • Floating quote button keeps a consistent size - The button no longer shows the vendor's name on a second line, so it stays the same shape and position as your quote fills up. That name only ever appeared on the quote page itself, where the "Requesting quote from" banner already shows it — larger and easier to read.

2.8.1

Voxel App Events

  • Every notification is now a Voxel App Event, on Voxel-powered sites - The new request, quote ready, status update, decision, and vendor-contact-details notifications are now configured entirely in Voxel → Settings → App Events, with both the in-app notification and the email side by side for each one. New @quote(:...) dynamic tags are available there — amount, note, items, form details, vendor and customer name/email, and the dashboard and decision links. This replaces the plugin's own settings-page email templates on Voxel sites; those settings stay in the database untouched and are tucked behind a "Show previous email settings" toggle so nothing already customized is lost, and non-Voxel sites keep working exactly as before.
  • Guests still get every email - Most quote requests come from visitors without an account, and Voxel's own notification system only supports real accounts. The plugin sends its own guest-safe version of each email so nothing changes for customers without a login — they just never get an in-app notification, since there's no account for one to belong to.

Vendor Contact

  • "Contact [Vendor]" button on the customer dashboard - Once a quote is accepted, customers get a direct contact button for the vendor, matching the one vendors have always had for customers.
  • Vendor contact details by email too - A new email sends the vendor's contact details to the customer the moment they accept a quote — the only way a guest customer without an account ever receives them.

Dashboards

  • Admin dashboard on the front end - A new [admin_quote_submissions] shortcode and "Admin Quotes Dashboard" Elementor widget show every request across all vendors, right on the front end — handy for embedding in a Voxel panel menu alongside the customer and vendor dashboards.
  • Unread-count badges in the site menu - The menu links to the customer and vendor dashboards now show a live count: quotes awaiting a decision for customers, new unactioned requests for vendors.

Quote Form

  • Quote note - Vendors can attach a short note to their quote amount ("Delivery included, mornings only") — shown in the quote-ready email and on the customer dashboard.
  • Auto-filled name and email for logged-in customers - The form now pre-fills from the account, with an optional setting to lock those fields so requests are reliably tied to the right account.

Fixes

  • Vendor city not showing - The city/location lookup only checked custom fields; some page builders (Voxel's own "City" field type among them) store location as a taxonomy instead, so the lookup now checks both.
  • Missing checkmark on submission - The green checkmark after submitting a request relied on an icon font that doesn't load for logged-out visitors; it's now a small inline graphic that always renders.
  • Backwards date ranges - A request could be submitted with the end date before the start date; both are now validated as you fill in the form and again on the server.
  • Vendor name now links to their profile - On the customer dashboard, the vendor's name links to their actual profile page (e.g. a Voxel partner listing) instead of the default author archive.

2.8.0

Quantities

  • Request more than one of an item - Clicking "Add to Quote" again now increases the item's quantity, and the quote page has +/− controls per item. Quantities appear everywhere: in the emails ("Nike Dunk Low × 2"), on all dashboards, and in the button counter.
  • Persistent "Added ✓" button state - Once an item is in the quote, its button turns green and stays "Added ✓" across page loads — and remains clickable to add another.

Dashboards

  • Form groups carry over to every view - The Section Heading groups from the form builder are now preserved on the admin entry view, the vendor request view, and the customer dashboard, each group in a lightly bordered box with the labels you configured.
  • Dates column on the vendor list - The vendor submissions table shows each request's start and end dates with the duration in days.

Quote Button

  • Position setting - Choose which corner the floating quote button lives in (bottom/top, left/right).
  • Quote Page URL setting - Point the floating button at any page; it was previously fixed to /quote/.

Fixes

  • Stale button counter - The floating button could show a leftover count (e.g. "Quote (1)") after the underlying quote had expired. The badge now always reflects the actual quote contents.
  • Item images on themes without featured images - Thumbnails on the quote page and dashboards now fall back to the images attached to the listing or stored in theme fields (e.g. Voxel galleries), instead of relying on the WordPress featured image alone.
  • Vendor name and city always current - The vendor shown on each quoted item is now resolved from the vendor profile at display time, so profile renames and the city setting apply to existing requests too.
  • Settings page layout - Long labels or help texts no longer push the settings columns out of view, and help texts are now tucked behind a small "?" icon — hover or click to read them.
  • Translatable button texts - "Added to Quote!", the "Quote (n)" counter, and the empty-quote message were hardcoded English; they now follow your site language.

2.7.0

Vendor Profiles

  • Show the vendor's listing instead of the username - New "Vendor Profile Post Type" setting: point it at your vendor profile post type (for example a Voxel partner listing) and the profile's title is shown as the vendor name everywhere — customer dashboard, quote views, and emails — instead of the WordPress username. An optional "City/Location Field Key" appends the vendor's city, e.g. "Piccoli viaggiatori — Catania".

Emails & Privacy

  • Registration Page URL setting - The {register_link} email variable can now point to your theme's own registration page (useful when standard WordPress registration is disabled, as on most Voxel sites).
  • IP storage is now optional - New "Store IP Address & Browser Info" setting (on by default) for stricter GDPR data-minimization policies.
  • IP and browser info are admin-only - Vendors no longer see the customer's IP address or browser details anywhere.

2.6.0

Quote Form

  • Field Width option - Every form field can now be Full or Half width, so fields like date and time can share a row (they stack back to full width on phones).
  • Section Heading field type - Group your form visually ("Personal information", "Pickup", "Return") with styled heading dividers.

Vendor Workflow

  • Cancellation reason required - Vendors must give a reason when cancelling a request; it is stored, emailed to the customer and admin, and shown on the customer's dashboard.
  • "Allow Vendors to Cancel After Quoting" setting - On by default; disable it to make a sent quote final, resolvable only by the customer's decision or an admin.
  • Vendor Quotes Dashboard Elementor widget - The vendor dashboard as a native Elementor widget with styling controls for the table, status pills, buttons, and detail cards.

Fixes

  • Email templates keep their links - Saving settings no longer strips HTML from email templates (this had silently broken the register/dashboard links in the quote email); already-affected templates are repaired automatically.
  • Rental duration - When a request has two date fields, the number of days is computed and shown on the customer dashboard and the vendor's request views.

2.5.1

Fixes

  • Vendor "View" access - Vendors clicking View on their My Quotes list no longer hit "Sorry, you are not allowed to access this page"; the list's links pointed at the admin-only entries page.
  • My Quotes menu - Vendors now get their own top-level "My Quotes" admin menu instead of a submenu hidden under an admin-only parent.

2.5.0

Customer Dashboard

  • Customer Quotes Dashboard Elementor widget - The customer dashboard as a native Elementor widget with full styling controls: cards, header, typography, status and amount badges, item rows, image size, date chips, request details, and separate Accept/Decline button styling.

Fixes

  • Layout corruption inside page builders - Placing the dashboard shortcode inside an Elementor Text Editor widget injected invisible line breaks into badges and buttons (the recurring "extra padding"). The dashboard markup is now immune, and the new widget bypasses the issue entirely.

2.4.0

Consents & Emails

  • Terms & Conditions consent - Optional required checkbox on the quote form with editable text and link; the confirmation is stored per request and available in emails via the new {consents} variable (which also covers the privacy consent).
  • Status Update email - New automation with an editable template, sent to the customer (and admin) when a request becomes In Progress, Completed, or Cancelled — including the vendor's cancellation reason.
  • Replies go to the vendor - Replying to the quote email reaches the vendor directly (and the admin), so customers can ask questions before deciding. Setting-controlled.
  • Request details everywhere - The new {form_details} email variable lists everything the customer filled in, and each dashboard card has a collapsible "Your request details" section.

Fixes

  • Apostrophes no longer collect backslashes - Text like "l'indirizzo" gained a backslash on every save (form labels, product names, request values). All input paths are fixed and a one-time migration cleans existing data.
  • Dates follow your WordPress date format - Date field values now display per your configured format everywhere instead of raw YYYY-MM-DD.

Also

  • Hide Customer Contact Details from Vendors - Optional setting masking names, emails, and phone numbers (like m***@***) in all vendor views and vendor emails until the customer accepts the quote.
  • Time field type in the form builder.

2.3.x

Accept & Decline (2.3.0 – 2.3.3)

  • Dedicated Accepted / Rejected statuses - Customer decisions get their own statuses (customer-only; vendors cannot set them), keeping "Completed" for genuinely finished deals. Existing decided requests migrate automatically.
  • One-click email buttons - The quote email's Accept/Decline actions render as styled buttons, and all links in every plugin email are properly clickable.
  • Smoother "Quoted" flow - Selecting Quoted without an amount keeps the selection, opens the amount field with a hint, and saving the amount completes the status change automatically.
  • Lock Status After Customer Decision - Setting (on by default): vendors can only mark an Accepted request as Completed and cannot change a Rejected one.
  • Account-aware quote email - Customers with an account get a "view and manage your quote requests online" link; guests get a "Register here with this same email" link instead.
  • GDPR consent restored - A long-standing flaw silently disabled the privacy checkbox after the first settings save; it self-heals on update and now has proper settings (toggle, consent text, policy URL).
  • Customer Dashboard Page URL setting - For when the dashboard shortcode lives inside a page-builder template that auto-detection can't see.

2.2.0

The Quote Loop

  • Customer accept/decline - Accept and Decline buttons on the customer dashboard, plus secure one-click links in the quote email that work without an account. Decisions are recorded with a timestamp and visible to everyone involved.
  • "Quote Ready" email - Sent automatically to the customer when a request is set to Quoted, with the amount, vendor name, and editable template.
  • "Quote Decision" email - Sent automatically to the vendor (and admin) when the customer decides.

2.1.7 – 2.1.9

Quote Amounts & Dashboards

  • Quote Amount field - Vendors record the quoted amount (free text, any currency); shown as badges on the admin list, vendor dashboards, and request views. A setting can require it before a request may be set to Quoted.
  • Customer dashboard - New [customer_quote_submissions] shortcode: logged-in customers see their own requests with items, vendor, status, and amount.
  • Vendor column & filter - The admin entries list gained a Vendor column and an "All Vendors" filter.
  • Product images - Featured images shown next to requested items on the quote page and all request views (works for existing requests too).
  • Vendor delete restriction - Delete buttons are admin-only by default, with an "Allow Vendors to Delete Their Submissions" setting; vendors use the Cancelled status instead.
  • Form builder fix - The dropdown options box no longer collapses to a sliver, and the post-submit page shows a proper "Quote Request Sent!" confirmation with the vendor's name.
  • Automatic database upgrades - Schema changes apply on plugin update without re-activation.

Built by Code Wattz.