{"id":322710,"date":"2026-07-06T08:23:11","date_gmt":"2026-07-06T08:23:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/showpro-quote-request\/"},"modified":"2026-07-06T08:24:55","modified_gmt":"2026-07-06T08:24:55","slug":"showpro-quote-request","status":"publish","type":"plugin","link":"https:\/\/co.wordpress.org\/plugins\/showpro-quote-request\/","author":23505785,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"ShowPro Quote Request","header_author":"ShowPro Software","header_description":"Add a \"Request a Quote\" button to WooCommerce products. Customers submit quote requests; manage them from a clean admin inbox.","assets_banners_color":"","last_updated":"2026-07-06 08:24:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.showprosoftware.com\/wordpress-plugins\/","header_author_uri":"https:\/\/www.showprosoftware.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"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":"showpro","date":"2026-07-06 08:24:55"}},"upgrade_notice":{"1.0.0":"<p>Initial release \u2014 no upgrade required.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The \"Request a Quote\" button replacing Add to Cart on a single product page.","2":"The accessible quote request modal \u2014 mobile-friendly form with optional fields.","3":"The ShowPro Quote Requests admin inbox \u2014 status filter tabs, search, and inline status change.","4":"The single quote detail view \u2014 customer info, product link, internal notes, and status control.","5":"The Quote Settings tab on the WooCommerce product editor \u2014 enable quote and hide price per product.","6":"The ShowPro Settings page \u2014 button text, alignment, success message, and form field toggles."}},"plugin_section":[],"plugin_tags":[10553,65997,13760,5055,13770],"plugin_category":[],"plugin_contributors":[270297],"plugin_business_model":[],"class_list":["post-322710","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-catalog-mode","plugin_tags-hide-price","plugin_tags-quote","plugin_tags-request-a-quote","plugin_contributors-showpro","plugin_committers-showpro"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/showpro-quote-request.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>ShowPro Quote Request<\/strong> replaces the WooCommerce Add to Cart button with a quote request form on any product. The frontend is built with vanilla JavaScript (no jQuery dependency), stores all data in your WordPress database, and connects to no external services.<\/p>\n\n<p>Built for <strong>B2B stores, wholesale suppliers, manufacturers, and service businesses<\/strong> that negotiate pricing before checkout. Enable the quote button per product: some products can still use Add to Cart while others collect quote requests.<\/p>\n\n<h4>What's included<\/h4>\n\n<ul>\n<li><strong>Vanilla JavaScript frontend<\/strong> \u2014 the quote form is built in, no jQuery and no separate form plugin required<\/li>\n<li><strong>Self-contained<\/strong> \u2014 all data stays in your WordPress database; no external API or service is used<\/li>\n<li><strong>Free<\/strong> \u2014 all features are included; there is no paid tier<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 WooCommerce High-Performance Order Storage supported<\/li>\n<li><strong>WordPress 7.0 tested<\/strong> \u2014 works with current WordPress and WooCommerce<\/li>\n<\/ul>\n\n<h4>Perfect for<\/h4>\n\n<ul>\n<li><strong>B2B and wholesale stores<\/strong> \u2014 hide retail prices, accept custom pricing requests<\/li>\n<li><strong>Manufacturers and industrial suppliers<\/strong> \u2014 products with variable pricing or minimum order quantities<\/li>\n<li><strong>Custom and made-to-order products<\/strong> \u2014 jewellery, furniture, signage, print, apparel<\/li>\n<li><strong>High-ticket items<\/strong> \u2014 luxury goods, industrial equipment, enterprise software licences<\/li>\n<li><strong>Service businesses<\/strong> \u2014 agencies, consultants, and freelancers using WooCommerce<\/li>\n<li><strong>Catalog mode shops<\/strong> \u2014 disable purchasing entirely, collect enquiries only<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Edit a product \u2192 open the <strong>Quote Settings<\/strong> tab in WooCommerce product data.<\/li>\n<li>Check <strong>Enable quote request<\/strong>. Optionally check <strong>Hide price<\/strong>.<\/li>\n<li>On the frontend, the Add to Cart button is replaced by a <strong>\"Request a Quote\"<\/strong> button \u2014 on the shop page and the single product page.<\/li>\n<li>Customers click the button, fill in an accessible modal form, and submit.<\/li>\n<li>You receive an <strong>email notification<\/strong> with all their details and a dashboard link.<\/li>\n<li>The customer receives a <strong>confirmation email<\/strong> automatically.<\/li>\n<li>Manage everything from <strong>ShowPro \u2192 Quote Requests<\/strong> \u2014 your clean admin inbox.<\/li>\n<\/ol>\n\n<h4>Features<\/h4>\n\n<p><strong>Quote button control<\/strong><\/p>\n\n<ul>\n<li>Enable the quote request button per product \u2014 other products are completely unchanged<\/li>\n<li>Optionally hide the product price on shop listings and the single product page<\/li>\n<li>Customise the button label from Settings (default: \"Request a Quote\")<\/li>\n<li>Set button alignment: Left, Center, or Right<\/li>\n<\/ul>\n\n<p><strong>Accessible quote form<\/strong><\/p>\n\n<ul>\n<li>Opens in a modal \u2014 no page reload, no redirect<\/li>\n<li>Accessible: focus trap, ESC to close, ARIA labels on all fields<\/li>\n<li><code>aria-live<\/code> regions announce errors and the success message to screen readers<\/li>\n<li>Honeypot spam protection \u2014 no CAPTCHA required<\/li>\n<li>Optional form fields: phone number, company name, quantity (toggle in Settings)<\/li>\n<li>Works at 320 px \u2014 tested on the narrowest common phone viewport<\/li>\n<\/ul>\n\n<p><strong>Admin inbox<\/strong><\/p>\n\n<ul>\n<li>Clean custom list table: Date, Customer, Email, Product, Status at a glance<\/li>\n<li>Filter by status: <strong>New<\/strong>, <strong>Replied<\/strong>, <strong>Closed<\/strong> \u2014 with counts per tab<\/li>\n<li>Search quotes by customer name or email address<\/li>\n<li>Change status inline from the list \u2014 no page reload needed<\/li>\n<li>Bulk delete<\/li>\n<\/ul>\n\n<p><strong>Quote detail view<\/strong><\/p>\n\n<ul>\n<li>All customer info and the product they enquired about<\/li>\n<li>Direct link to the product<\/li>\n<li>Internal notes field \u2014 private, never shown to the customer<\/li>\n<li>Status dropdown \u2014 update and save in one click<\/li>\n<li>Back to Quotes link for fast navigation<\/li>\n<\/ul>\n\n<p><strong>Email notifications<\/strong><\/p>\n\n<ul>\n<li>Admin notification email \u2014 HTML template with all customer details and a direct dashboard link<\/li>\n<li>Customer confirmation email \u2014 HTML template with a summary of what they requested<\/li>\n<li>Both templates are <strong>overridable by your theme<\/strong> by copying them to <code>{theme}\/showpro-quote-request\/<\/code><\/li>\n<li>Plugin updates never overwrite your custom templates<\/li>\n<\/ul>\n\n<p><strong>Settings page<\/strong><\/p>\n\n<ul>\n<li>Recipient email address for admin notifications<\/li>\n<li>Button text<\/li>\n<li>Button alignment (Left \/ Center \/ Right)<\/li>\n<li>Success message shown in the modal after submission<\/li>\n<li>Toggle optional form fields: phone, company name, quantity<\/li>\n<\/ul>\n\n<p><strong>Developer-friendly architecture<\/strong><\/p>\n\n<ul>\n<li>Clean OOP PHP with namespaces \u2014 <code>ShowPro\\QuoteRequest\\<\/code><\/li>\n<li>Vanilla JS on the frontend \u2014 zero jQuery dependency<\/li>\n<li>Shared <strong>ShowPro<\/strong> admin menu \u2014 future ShowPro plugins add their submenus automatically<\/li>\n<li>Documented action hook for third-party integration: <code>do_action( 'showpro_register_module', $args )<\/code><\/li>\n<li>Translation-ready with the <code>showpro-quote-request<\/code> text domain<\/li>\n<\/ul>\n\n<h4>Privacy and data handling<\/h4>\n\n<ul>\n<li>No data is sent to any external server or third-party service<\/li>\n<li>Quote submissions are stored in your WordPress database as a custom post type<\/li>\n<li>A partial IP address (last octet masked for IPv4) is stored per quote for basic audit purposes<\/li>\n<li>Plugin settings are deleted on uninstall; quote post data is <strong>intentionally preserved<\/strong> so you never lose request history<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From WordPress.org (recommended)<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin.<\/li>\n<li>Search for <em>ShowPro Request a Quote<\/em> or <em>Request a Quote WooCommerce<\/em>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>WooCommerce must be active \u2014 the plugin will tell you if it is not.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Download the zip file and extract the <code>showpro-quote-request<\/code> folder.<\/li>\n<li>Upload it to <code>\/wp-content\/plugins\/<\/code> via FTP or the WordPress file manager.<\/li>\n<li>Activate through <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<\/ol>\n\n<h4>First-time setup (2 minutes)<\/h4>\n\n<ol>\n<li>Go to <strong>ShowPro \u2192 Settings<\/strong> and confirm the recipient email address for quote notifications.<\/li>\n<li>Optionally update the button text and success message.<\/li>\n<li>Edit any WooCommerce product, open the <strong>Quote Settings<\/strong> tab, and check <strong>Enable quote request<\/strong>.<\/li>\n<li>Visit the product on the frontend \u2014 the quote button should appear where Add to Cart was.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. The quote button replaces the entire Add to Cart form for <strong>all WooCommerce product types<\/strong> \u2014 simple, variable, grouped, and external\/affiliate.<\/p><\/dd>\n<dt id=\"can%20i%20use%20add%20to%20cart%20on%20most%20products%20and%20the%20quote%20button%20only%20on%20specific%20ones%3F\"><h3>Can I use Add to Cart on most products and the quote button only on specific ones?<\/h3><\/dt>\n<dd><p>Yes \u2014 the setting is per-product. Products without the quote option enabled behave exactly as they did before you installed the plugin.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20the%20price%20on%20quote-enabled%20products%3F\"><h3>Can I hide the price on quote-enabled products?<\/h3><\/dt>\n<dd><p>Yes. The <strong>Hide price<\/strong> checkbox in the product's Quote Settings tab removes the price from both the shop listing and the single product page. The price is hidden until you respond to the quote.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20to%20run%20my%20woocommerce%20store%20in%20catalog%20mode%3F\"><h3>Can I use this to run my WooCommerce store in catalog mode?<\/h3><\/dt>\n<dd><p>Partially \u2014 you can enable the quote button and hide prices on all your products to prevent purchasing. For a full catalog mode (disable cart and checkout site-wide), you would combine this plugin with a catalog mode plugin.<\/p><\/dd>\n<dt id=\"can%20i%20change%20which%20fields%20appear%20in%20the%20quote%20form%3F\"><h3>Can I change which fields appear in the quote form?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>ShowPro \u2192 Settings<\/strong> and toggle phone number, company name, and quantity on or off. Name and email are always required.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20position%20or%20alignment%20of%20the%20quote%20button%3F\"><h3>Can I change the position or alignment of the quote button?<\/h3><\/dt>\n<dd><p>Yes. <strong>ShowPro \u2192 Settings \u2192 Button Alignment<\/strong> lets you choose Left, Center, or Right. The setting applies to both the shop loop and the single product page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customise%20the%20email%20templates%3F\"><h3>How do I customise the email templates?<\/h3><\/dt>\n<dd><p>Copy the template file from the plugin's <code>\/templates\/<\/code> folder into your theme directory:<\/p>\n\n<ul>\n<li><code>{theme}\/showpro-quote-request\/email-admin.php<\/code> \u2014 admin notification<\/li>\n<li><code>{theme}\/showpro-quote-request\/email-customer.php<\/code> \u2014 customer confirmation<\/li>\n<li><code>{theme}\/showpro-quote-request\/modal.php<\/code> \u2014 the quote form modal<\/li>\n<\/ul>\n\n<p>Your theme's copy takes priority over the plugin default. Plugin updates will never overwrite your customisations.<\/p><\/dd>\n<dt id=\"where%20are%20quote%20requests%20stored%3F\"><h3>Where are quote requests stored?<\/h3><\/dt>\n<dd><p>In your WordPress database as a custom post type (<code>showpro_quote<\/code>). Quote data is never sent to any external service. You own your data completely.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20quote%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my quote data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Plugin settings (recipient email, button text, etc.) are deleted on uninstall. Quote post data is <strong>intentionally preserved<\/strong> \u2014 you will not lose your request history. If you want to remove the posts too, you can do so directly from the database.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is it compatible with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. Compatibility is explicitly declared. The plugin uses its own custom post type for quotes and does not interact with WooCommerce orders at all.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpml%20or%20polylang%3F\"><h3>Does it work with WPML or Polylang?<\/h3><\/dt>\n<dd><p>The plugin is fully translation-ready. All user-facing strings use the <code>showpro-quote-request<\/code> text domain. A <code>.pot<\/code> file can be generated with WP-CLI (<code>wp i18n make-pot<\/code>). Full WPML \/ Polylang testing is planned for v1.1.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>The version on WordPress.org includes all of the features described above and is complete on its own. Additional features such as PDF quote generation may be offered separately in the future.<\/p><\/dd>\n<dt id=\"can%20other%20plugins%20add%20their%20own%20pages%20to%20the%20showpro%20admin%20menu%3F\"><h3>Can other plugins add their own pages to the ShowPro admin menu?<\/h3><\/dt>\n<dd><p>Yes. Any plugin (including future ShowPro plugins) can register a submenu using:<\/p>\n\n<pre><code>do_action( 'showpro_register_module', [ 'menu_slug' =&gt; 'my-page', 'page_title' =&gt; 'My Page', 'menu_title' =&gt; 'My Page', 'capability' =&gt; 'manage_options', 'callback' =&gt; 'my_render_function', 'position' =&gt; 20 ] );\n<\/code><\/pre>\n\n<p>Fire this on the <code>admin_menu<\/code> hook at priority &lt; 10.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Add a Request a Quote button to WooCommerce products. Hide prices and manage quote requests from an admin inbox. B2B and wholesale ready.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/322710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=322710"}],"author":[{"embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/showpro"}],"wp:attachment":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=322710"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=322710"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=322710"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=322710"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=322710"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=322710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}