{"id":397351,"date":"2026-11-14T18:27:50","date_gmt":"2026-11-14T18:27:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/boring-quote-request-a-quote-for-woocommerce\/"},"modified":"2026-11-14T18:27:26","modified_gmt":"2026-11-14T18:27:26","slug":"boring-quote","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/boring-quote\/","author":8538551,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Boring Quote - Request a Quote for WooCommerce","header_author":"Boring Dev","header_description":"Let customers collect products into a quote list and send you a quote request. Lightweight, block-theme ready, HPOS compatible.","last_updated":"2026-11-14 18:27:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/boringdev.pl","rating":5,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"3dworkshop","date":"2026-11-14 18:27:26","revision":3802331}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3802331,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3802331,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-pl_PL.png":{"filename":"banner-1544x500-pl_PL.png","revision":3802331,"resolution":"1544x500","location":"assets","locale":"pl_PL","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3802331,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-pl_PL.png":{"filename":"banner-772x250-pl_PL.png","revision":3802331,"resolution":"772x250","location":"assets","locale":"pl_PL","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3802331,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"boring-quote\/quote-list":{"name":"boring-quote\/quote-list","title":"Quote list"},"boring-quote\/count":{"name":"boring-quote\/count","title":"Quote list counter"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1-pl_PL.png":{"filename":"screenshot-1-pl_PL.png","revision":3802331,"resolution":"1","location":"assets","locale":"pl_PL","width":1280,"height":660},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3802331,"resolution":"1","location":"assets","locale":"","width":1280,"height":660},"screenshot-2-pl_PL.png":{"filename":"screenshot-2-pl_PL.png","revision":3802331,"resolution":"2","location":"assets","locale":"pl_PL","width":1280,"height":881},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3802331,"resolution":"2","location":"assets","locale":"","width":1280,"height":881},"screenshot-3-pl_PL.png":{"filename":"screenshot-3-pl_PL.png","revision":3802331,"resolution":"3","location":"assets","locale":"pl_PL","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3802331,"resolution":"3","location":"assets","locale":"","width":1280,"height":860},"screenshot-4-pl_PL.png":{"filename":"screenshot-4-pl_PL.png","revision":3802331,"resolution":"4","location":"assets","locale":"pl_PL","width":1280,"height":860},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3802331,"resolution":"4","location":"assets","locale":"","width":1280,"height":860},"screenshot-5-pl_PL.png":{"filename":"screenshot-5-pl_PL.png","revision":3802331,"resolution":"5","location":"assets","locale":"pl_PL","width":1280,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3802331,"resolution":"5","location":"assets","locale":"","width":1280,"height":1000}},"screenshots":{"1":"\"Request a quote\" button on the product page (Twenty Twenty-Five). Products are added without reloading the page.","2":"The quote list with the request form: quantities, variations and GDPR consent.","3":"All quote requests in WooCommerce &gt; Quote Requests, with statuses.","4":"A single quote request: customer details, products and status.","5":"Settings in WooCommerce &gt; Settings &gt; Boring Quote."}},"plugin_section":[],"plugin_tags":[10553,65997,5055,13770,65561],"plugin_category":[],"plugin_contributors":[292797],"plugin_business_model":[],"class_list":["post-397351","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-catalog-mode","plugin_tags-quote","plugin_tags-request-a-quote","plugin_tags-woocommerce-quote","plugin_contributors-3dworkshop","plugin_committers-3dworkshop"],"banners":{"banner":"https:\/\/ps.w.org\/boring-quote\/assets\/banner-772x250.png?rev=3802331","banner_2x":"https:\/\/ps.w.org\/boring-quote\/assets\/banner-1544x500.png?rev=3802331","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/boring-quote\/assets\/icon-128x128.png?rev=3802331","icon_2x":"https:\/\/ps.w.org\/boring-quote\/assets\/icon-256x256.png?rev=3802331","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/boring-quote\/assets\/screenshot-1.png?rev=3802331","caption":"\"Request a quote\" button on the product page (Twenty Twenty-Five). Products are added without reloading the page."},{"src":"https:\/\/ps.w.org\/boring-quote\/assets\/screenshot-2.png?rev=3802331","caption":"The quote list with the request form: quantities, variations and GDPR consent."},{"src":"https:\/\/ps.w.org\/boring-quote\/assets\/screenshot-3.png?rev=3802331","caption":"All quote requests in WooCommerce &gt; Quote Requests, with statuses."},{"src":"https:\/\/ps.w.org\/boring-quote\/assets\/screenshot-4.png?rev=3802331","caption":"A single quote request: customer details, products and status."},{"src":"https:\/\/ps.w.org\/boring-quote\/assets\/screenshot-5.png?rev=3802331","caption":"Settings in WooCommerce &gt; Settings &gt; Boring Quote."}],"raw_content":"<!--section=description-->\n<p>Boring Quote adds a \"Request a quote\" flow to WooCommerce without the bloat. It does one job and does it quietly.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>\"Request a quote\" button on product pages (simple and variable products)<\/li>\n<li>Works with classic AND block themes out of the box<\/li>\n<li>Quote list with instant quantity update and removal (REST API, no admin-ajax)<\/li>\n<li>Works without JavaScript too (graceful fallback)<\/li>\n<li>Quote request page created automatically on activation<\/li>\n<li>Request form with a configurable GDPR consent checkbox (linked to your privacy policy) and invisible spam protection: honeypot, minimum fill time and per-IP rate limit<\/li>\n<li>Privacy tools: quote requests are included in WordPress personal data export and erasure, plus suggested privacy policy text<\/li>\n<li>Quote list counter for your header: <code>[bbquote_count]<\/code> shortcode or block, page-cache friendly<\/li>\n<li>\"Quote list\" block for block themes<\/li>\n<li>Emails sent through the WooCommerce mailer: admin notification (Reply-To set to the customer) and customer confirmation, both editable in WooCommerce &gt; Settings &gt; Emails<\/li>\n<li>Every request is saved in WooCommerce &gt; Quote Requests, visible only to administrators and shop managers<\/li>\n<li>Optionally hide prices and \"Add to cart\" buttons (catalog mode)<\/li>\n<li>Hide the button on individual products<\/li>\n<li>Sessions stored in a dedicated table (no wp_options bloat), no plugin framework<\/li>\n<li>Translation ready (translations via translate.wordpress.org)<\/li>\n<\/ul>\n\n<h4>Boring Quote Pro<\/h4>\n\n<p>Turn requests into paid orders: edit prices and send offers, customers accept with one click and pay through your normal checkout. Custom form fields, quote button on shop and category pages. <a href=\"https:\/\/boringdev.pl\">Learn more<\/a><\/p>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[bbquote_quote_list]<\/code> - quote list and request form<\/li>\n<li><code>[bbquote_button product=\"123\"]<\/code> - quote button anywhere<\/li>\n<li><code>[bbquote_count label=\"Quote\"]<\/code> - link to the quote page with the number of items<\/li>\n<\/ul>\n\n<h4>For developers<\/h4>\n\n<p>Override templates in <code>yourtheme\/boring-quote\/<\/code>.<\/p>\n\n<p>Actions: <code>boring_quote_loaded<\/code>, <code>bbquote_item_added<\/code>, <code>bbquote_quote_created<\/code>, <code>bbquote_quote_submitted<\/code>, <code>bbquote_before_button<\/code>, <code>bbquote_admin_quote_view<\/code>, <code>bbquote_admin_status_box_actions<\/code>, <code>bbquote_quote_page_before<\/code>.<\/p>\n\n<p>Filters: <code>bbquote_show_button<\/code>, <code>bbquote_item_is_valid<\/code>, <code>bbquote_form_fields<\/code>, <code>bbquote_submit_errors<\/code>, <code>bbquote_quote_statuses<\/code>, <code>bbquote_selectable_statuses<\/code>, <code>bbquote_settings_fields<\/code>, <code>bbquote_render_default_quote_view<\/code>, <code>bbquote_page_url<\/code>, <code>bbquote_session_expiration<\/code>, <code>bbquote_session_use_secure_cookie<\/code>, <code>bbquote_session_renew_threshold<\/code>, <code>bbquote_quote_page_takeover<\/code>, <code>bbquote_submit_min_seconds<\/code>, <code>bbquote_submit_rate_limit<\/code>, <code>bbquote_show_pro_note<\/code>, <code>bbquote_getting_started_steps<\/code>.<\/p>\n\n<p>JavaScript event: <code>bbquote:updated<\/code> on <code>document<\/code>, <code>detail.count<\/code> holds the number of items.<\/p>\n\n<p>Cookies: <code>bbquote_session<\/code> (signed session id, HttpOnly, set only when a product is added) and <code>bbquote_count<\/code> (number of items, read by JavaScript).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin and activate it (WooCommerce must be active).<\/li>\n<li>A \"Request a Quote\" page is created automatically.<\/li>\n<li>Configure options in WooCommerce &gt; Settings &gt; Boring Quote.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"the%20button%20does%20not%20add%20products%20for%20logged-out%20visitors\"><h3>The button does not add products for logged-out visitors<\/h3><\/dt>\n<dd><p>If you use full page caching, exclude the quote page and make sure product pages do not serve a cached security nonce older than 12 hours.<\/p><\/dd>\n<dt id=\"where%20are%20the%20requests%3F\"><h3>Where are the requests?<\/h3><\/dt>\n<dd><p>WooCommerce &gt; Quote Requests.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Quote statuses: New, In progress, Offer sent, Accepted, Rejected and Expired, all can be set by hand (filter <code>bbquote_selectable_statuses<\/code>).<\/li>\n<li>Buttons and forms follow the theme style in classic and block themes (Twenty Twenty-Five, Storefront).<\/li>\n<li>Quote requests use their own capabilities (administrators and shop managers only).<\/li>\n<li>GDPR: personal data exporter and eraser, privacy policy text, configurable consent label with privacy policy link.<\/li>\n<li>Spam protection: minimum fill time and per-IP rate limit next to the honeypot.<\/li>\n<li>Variable products can be added only with a chosen variation.<\/li>\n<li><code>[bbquote_count]<\/code> shortcode and blocks: Quote list, Quote list counter.<\/li>\n<li>\"Hide Add to cart\" also hides the button in block-theme product collections.<\/li>\n<li>Getting started screen (WooCommerce &gt; Quote setup) with a setup checklist, opened once after the first activation, plus a Help tab on plugin screens.<\/li>\n<li>Quote page: list and form side by side on wide layouts, product cards on phones, quantity buttons, clear empty and thank-you screens.<\/li>\n<li>Admin: status labels in Quote Requests, customer details with a \"Reply by email\" button, product thumbnails.<\/li>\n<li>Emails: product thumbnails, total quantity and a button to the request in the dashboard.<\/li>\n<\/ul>","raw_excerpt":"Let customers collect products into a quote list and send you a quote request. Lightweight, block-theme ready, HPOS compatible.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/397351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=397351"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/3dworkshop"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=397351"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=397351"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=397351"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=397351"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=397351"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=397351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}