{"id":384773,"date":"2026-10-14T18:39:22","date_gmt":"2026-10-14T18:39:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/quotanto\/"},"modified":"2026-10-17T13:38:55","modified_gmt":"2026-10-17T13:38:55","slug":"quotanto","status":"publish","type":"plugin","link":"https:\/\/he.wordpress.org\/plugins\/quotanto\/","author":23583972,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"Quotanto","header_author":"Quotanto","header_description":"Let customers request a quote, price it in WooCommerce, and let them pay at your normal checkout. Works with block cart and checkout.","assets_banners_color":"c8d4d0","last_updated":"2026-10-17 13:38:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/quotanto.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":84,"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":"quotanto","date":"2026-10-14 18:38:51","revision":3746953},"1.0.1":{"tag":"1.0.1","author":"quotanto","date":"2026-10-17 13:38:55","revision":3751965}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3746953,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3746953,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3746953,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500-rtl.png":{"filename":"banner-1544x500-rtl.png","revision":3746953,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3746953,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":3746953,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3746953,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3746953,"resolution":"1","location":"assets","locale":"","width":1535,"height":759},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3746953,"resolution":"2","location":"assets","locale":"","width":1535,"height":759},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3746953,"resolution":"3","location":"assets","locale":"","width":1535,"height":759}},"screenshots":{"1":"The request form on a product page.","2":"Settings under WooCommerce &gt; Settings &gt; Quotes.","3":"A quote request is a WooCommerce order."}},"plugin_section":[],"plugin_tags":[10553,5055,13770,13756,286],"plugin_category":[45],"plugin_contributors":[286802],"plugin_business_model":[],"class_list":["post-384773","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-quote","plugin_tags-request-a-quote","plugin_tags-rfq","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-quotanto","plugin_committers-quotanto"],"banners":{"banner":"https:\/\/ps.w.org\/quotanto\/assets\/banner-772x250-rtl.png?rev=3746953","banner_2x":"https:\/\/ps.w.org\/quotanto\/assets\/banner-1544x500-rtl.png?rev=3746953","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/quotanto\/assets\/icon.svg?rev=3746953","icon":"https:\/\/ps.w.org\/quotanto\/assets\/icon.svg?rev=3746953","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/quotanto\/assets\/screenshot-1.jpg?rev=3746953","caption":"The request form on a product page."},{"src":"https:\/\/ps.w.org\/quotanto\/assets\/screenshot-2.jpg?rev=3746953","caption":"Settings under WooCommerce &gt; Settings &gt; Quotes."},{"src":"https:\/\/ps.w.org\/quotanto\/assets\/screenshot-3.jpg?rev=3746953","caption":"A quote request is a WooCommerce order."}],"raw_content":"<!--section=description-->\n<p>Quotanto adds a quote flow to WooCommerce and stays out of the way.<\/p>\n\n<ol>\n<li>A customer asks for a quote on a product page, or for their whole cart.<\/li>\n<li>The request arrives as a WooCommerce order. You set prices, shipping and fees on the order screen and choose \"Send quote to customer\".<\/li>\n<li>The customer accepts from the email or from My account. Their cart is filled with what you quoted, and they pay at your store's checkout, block or classic.<\/li>\n<\/ol>\n\n<h4>Built to be reliable<\/h4>\n\n<ul>\n<li>Quotes are WooCommerce orders. No custom tables, no second cart, no separate payment page.<\/li>\n<li>The customer pays what you quoted: prices, shipping and fees.<\/li>\n<li>No cookies or sessions for visitors who only browse, so page caching keeps working.<\/li>\n<li>Works with High-Performance Order Storage and with cart and checkout blocks.<\/li>\n<li>Quotes never count as revenue in WooCommerce Analytics. The paid order does.<\/li>\n<li>Quotes expire on their own.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Simple and variable products.<\/li>\n<li>Quote for the whole cart, quote-only products included.<\/li>\n<li>Quote button on shop and category pages.<\/li>\n<li>Choose products: all, by category, or one by one.<\/li>\n<li>Quote-only products: replace Add to cart, hide prices everywhere.<\/li>\n<li>Limit requests to logged-in customers or chosen roles.<\/li>\n<li>My account: customers see their quotes and accept from there.<\/li>\n<\/ul>\n\n<h4>Fits your store<\/h4>\n\n<ul>\n<li>The form needs no JavaScript and uses your theme's buttons and fonts.<\/li>\n<li>Emails are WooCommerce emails: edit, translate or switch them off under WooCommerce &gt; Settings &gt; Emails.<\/li>\n<li>Phone and note fields: hidden, optional or required. Phone numbers with \"+\" are accepted.<\/li>\n<li>Translation ready, with WPML and Polylang configuration included.<\/li>\n<li>WordPress Abilities for AI agents: list quotes and send a quote.<\/li>\n<li>Captcha from the plugin you already use: Turnstile, hCaptcha, reCAPTCHA or Friendly Captcha.<\/li>\n<li>Hooks for other captcha and anti-spam plugins.<\/li>\n<\/ul>\n\n<p>Settings are under WooCommerce &gt; Settings &gt; Quotes.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install and activate Quotanto.<\/li>\n<li>The \"Request a quote\" button appears on product pages. You can also place it with the \"Request a quote\" block or the <code>[quotanto_request]<\/code> shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20send%20a%20quote%3F\"><h3>How do I send a quote?<\/h3><\/dt>\n<dd><p>Open the request under WooCommerce &gt; Orders, set the prices, save, then choose \"Send quote to customer\" in Order actions.<\/p><\/dd>\n<dt id=\"can%20i%20add%20shipping%20or%20a%20fee%20to%20a%20quote%3F\"><h3>Can I add shipping or a fee to a quote?<\/h3><\/dt>\n<dd><p>Yes. Add a shipping line or a fee to the order before sending. The customer is charged exactly that at checkout. Without a shipping line, your normal shipping rates apply.<\/p><\/dd>\n<dt id=\"how%20long%20is%20a%20quote%20valid%3F\"><h3>How long is a quote valid?<\/h3><\/dt>\n<dd><p>14 days. Change it under WooCommerce &gt; Settings &gt; Quotes, or with the <code>quotanto_expiry_days<\/code> filter. An expired quote can be sent again.<\/p><\/dd>\n<dt id=\"can%20i%20sell%20a%20product%20by%20quote%20only%3F\"><h3>Can I sell a product by quote only?<\/h3><\/dt>\n<dd><p>Yes. Set Add to cart to \"Replace with the quote button\". The product can then only be bought through an accepted quote.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20prices%3F\"><h3>Can I hide prices?<\/h3><\/dt>\n<dd><p>Yes. Prices are removed from pages, structured data and the Store API for quote products.<\/p><\/dd>\n<dt id=\"can%20customers%20ask%20for%20several%20products%20at%20once%3F\"><h3>Can customers ask for several products at once?<\/h3><\/dt>\n<dd><p>Yes. Switch on \"Quote for the whole cart\" and customers request a quote from the cart page.<\/p>\n\n<p>Quote-only products then get an \"Add to quote\" button and go into the same cart. That cart can be sent as a request, not checked out.<\/p><\/dd>\n<dt id=\"can%20i%20show%20the%20button%20on%20shop%20and%20category%20pages%3F\"><h3>Can I show the button on shop and category pages?<\/h3><\/dt>\n<dd><p>Yes. Tick \"Show on shop and category pages\" under WooCommerce &gt; Settings &gt; Quotes.<\/p><\/dd>\n<dt id=\"can%20i%20create%20a%20quote%20myself%3F\"><h3>Can I create a quote myself?<\/h3><\/dt>\n<dd><p>Yes. Add an order, set its status to \"Quote requested\", add the customer's email and the items, then send the quote.<\/p><\/dd>\n<dt id=\"can%20i%20switch%20quotes%20on%20or%20off%20for%20one%20product%3F\"><h3>Can I switch quotes on or off for one product?<\/h3><\/dt>\n<dd><p>Yes. Edit the product and set \"Quote requests\" in the General tab.<\/p><\/dd>\n<dt id=\"who%20gets%20the%20new%20request%20email%3F\"><h3>Who gets the new request email?<\/h3><\/dt>\n<dd><p>Whoever gets your New order email. Change it under WooCommerce &gt; Settings &gt; Emails. Replies go to the customer.<\/p><\/dd>\n<dt id=\"how%20is%20spam%20handled%3F\"><h3>How is spam handled?<\/h3><\/dt>\n<dd><p>Built-in spam protection, with no third-party service.<\/p><\/dd>\n<dt id=\"does%20it%20work%20behind%20cloudflare%3F\"><h3>Does it work behind Cloudflare?<\/h3><\/dt>\n<dd><p>Yes. The hourly request limit counts each visitor, not the proxy.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20captcha%3F\"><h3>Can I add a captcha?<\/h3><\/dt>\n<dd><p>Yes, with the captcha plugin you already use. Activate one of these and switch on Captcha under WooCommerce &gt; Settings &gt; Quotes:<\/p>\n\n<ul>\n<li>Simple CAPTCHA with Cloudflare Turnstile<\/li>\n<li>hCaptcha for WP<\/li>\n<li>Friendly Captcha<\/li>\n<li>reCaptcha by BestWebSoft<\/li>\n<li>reCAPTCHA for WooCommerce<\/li>\n<\/ul>\n\n<p>Other captcha plugins can hook into <code>quotanto_form_fields<\/code> and <code>quotanto_validate_request<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20send%20data%20anywhere%3F\"><h3>Does it send data anywhere?<\/h3><\/dt>\n<dd><p>No. Quotanto contacts no external service. A captcha plugin you switch on contacts its own.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20on%20uninstall%3F\"><h3>What is removed on uninstall?<\/h3><\/dt>\n<dd><p>Settings and the per-product switch. Quotes stay, because they are your orders.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Request limit counts each visitor, also behind a proxy.<\/li>\n<li>Fix: Cart quote form hides when the last quote-only product is removed.<\/li>\n<li>Dev: New filter <code>quotanto_rate_limit_ip<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Quote requests for WooCommerce that end at your own checkout. No second cart, no extra payment page, no cookies for browsing visitors.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384773"}],"author":[{"embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/quotanto"}],"wp:attachment":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384773"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384773"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384773"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384773"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384773"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}