{"id":121065,"date":"2020-05-08T07:37:13","date_gmt":"2020-05-08T07:37:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpheka-request-for-quote\/"},"modified":"2026-08-24T08:08:10","modified_gmt":"2026-08-24T08:08:10","slug":"wpheka-request-for-quote","status":"publish","type":"plugin","link":"https:\/\/id.wordpress.org\/plugins\/wpheka-request-for-quote\/","author":15584598,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.2","stable_tag":"1.8.2","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Request For Quote","header_author":"WPHEKA","header_description":"The <code><strong>WPHEKA Request For Quote<\/strong><\/code> plugin allows your customers to submit quotes for any product and negotiate with you for the best price. This extension can be a great tool to generate customer leads for future engagement.","assets_banners_color":"0a1525","last_updated":"2026-08-24 08:08:10","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/AKSHAYASWAROOP","header_plugin_uri":"https:\/\/www.wpheka.com\/product\/request-for-quote\/","header_author_uri":"https:\/\/www.wpheka.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":4375,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"akshayaswaroop","date":"2020-05-18 14:01:55"},"1.1":{"tag":"1.1","author":"akshayaswaroop","date":"2020-06-05 10:14:56"},"1.2":{"tag":"1.2","author":"akshayaswaroop","date":"2020-06-08 11:31:21"},"1.3":{"tag":"1.3","author":"akshayaswaroop","date":"2021-08-18 14:59:59"},"1.4":{"tag":"1.4","author":"akshayaswaroop","date":"2021-09-02 15:23:29"},"1.5":{"tag":"1.5","author":"akshayaswaroop","date":"2022-06-09 18:37:42"},"1.6":{"tag":"1.6","author":"akshayaswaroop","date":"2024-12-03 14:23:21"},"1.6.1":{"tag":"1.6.1","author":"akshayaswaroop","date":"2025-11-08 22:13:04"},"1.7.0":{"tag":"1.7.0","author":"akshayaswaroop","date":"2026-02-12 19:58:06"},"1.7.1":{"tag":"1.7.1","author":"akshayaswaroop","date":"2026-02-12 20:07:58"},"1.7.2":{"tag":"1.7.2","author":"akshayaswaroop","date":"2026-05-27 18:43:55"},"1.8.0":{"tag":"1.8.0","author":"akshayaswaroop","date":"2026-08-23 12:00:50"},"1.8.1":{"tag":"1.8.1","author":"akshayaswaroop","date":"2026-08-23 19:25:07"},"1.8.2":{"tag":"1.8.2","author":"akshayaswaroop","date":"2026-08-24 08:08:10"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2740081,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2740081,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":2740081,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3662752,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3662752,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.6.1","1.7.0","1.7.1","1.7.2","1.8.0","1.8.1","1.8.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2307220,"resolution":"1","location":"assets","locale":"","width":1237,"height":94},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2307220,"resolution":"2","location":"assets","locale":"","width":1424,"height":788},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2307220,"resolution":"3","location":"assets","locale":"","width":1429,"height":733}},"screenshots":{"1":"Plugin settings link.","2":"Plugin settings screen","3":"Configure email notifications"}},"plugin_section":[],"plugin_tags":[5055,13770,192137,13756,286],"plugin_category":[45],"plugin_contributors":[144954,184479],"plugin_business_model":[],"class_list":["post-121065","plugin","type-plugin","status-publish","hentry","plugin_tags-quote","plugin_tags-request-a-quote","plugin_tags-request-for-quote","plugin_tags-rfq","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-akshayaswaroop","plugin_contributors-wpheka","plugin_committers-akshayaswaroop"],"banners":{"banner":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/banner-772x250.png?rev=3662752","banner_2x":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/banner-1544x500.png?rev=3662752","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/icon.svg?rev=2740081","icon":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/icon.svg?rev=2740081","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/screenshot-1.png?rev=2307220","caption":"Plugin settings link."},{"src":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/screenshot-2.png?rev=2307220","caption":"Plugin settings screen"},{"src":"https:\/\/ps.w.org\/wpheka-request-for-quote\/assets\/screenshot-3.png?rev=2307220","caption":"Configure email notifications"}],"raw_content":"<!--section=description-->\n<p><strong>Request For Quote<\/strong> allows your customers to add products to a quote basket and negotiate with you for the best price. This Extension helps both sides to reach a price agreement, which decreases cart abandonment with price reason and increase purchases.<\/p>\n\n<h4>Features List:<\/h4>\n\n<ul>\n<li>Display <strong>Add to Quote<\/strong> on products<\/li>\n<li>Option to show <strong>Add to quote<\/strong> as button or link<\/li>\n<li>Option to <strong>hide price<\/strong> from product pages<\/li>\n<li>Option to <strong>add to cart<\/strong> button from product pages<\/li>\n<li>Option to enable <strong>request quote<\/strong> button in shop and other archive\/category pages<\/li>\n<li>Allow your customers to request a <strong>list of products<\/strong> or a <strong>single product<\/strong> for each quote<\/li>\n<li>Quote list page with a basic form (name, email, message)<\/li>\n<li>Email alerts to admin\/site owners on RFQ<\/li>\n<li>Configure email notification for the users and admin<\/li>\n<\/ul>\n\n<p>If you enjoyed this plugin then please put a review, that will encourage me to bring some more \u2026<\/p>\n\n<!--section=installation-->\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WooCommerce 3.0 or later<\/li>\n<\/ul>\n\n<ol>\n<li>Upload 'wpheka-request-for-quote' to the '\/wp-content\/plugins\/' directory or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Admin area -&gt; WPHEKA -&gt; Request For Quote Settings<\/li>\n<li>Done!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20it%20works%3F\"><h3>How It Works?<\/h3><\/dt>\n<dd><p><em>check installation<\/em><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.2 - 2026-08-24<\/h4>\n\n<ul>\n<li>Fix - The quote email no longer breaks WooCommerce's email preview. Opening WooCommerce &gt; Settings &gt; Emails &gt; Request For Quote showed \"There has been a critical error on this website\" in the preview pane, and \"Send a test email\" failed the same way, because the email was rendered from wp-admin where the quote session and the cart do not exist.<\/li>\n<li>Fix - The quote email now matches WooCommerce's current email design. It hardcoded the pre-9.9 styling, so on a store using WooCommerce's \"Email improvements\" design the quote email did not look like any other email from the store.<\/li>\n<li>Fix - Hiding prices no longer leaves a \"Price\" column heading above rows that have no price cell.<\/li>\n<li>Enhancement - WooCommerce's email preview now shows a representative quote, with sample products and customer details, instead of an empty email.<\/li>\n<li>Fix - Plain text emails read as plain text, including product names and prices. A name like \"Bed &amp; Breakfast Package\" arrived as \"Bed &amp; Breakfast Package\" and prices kept their currency entity, because the text was HTML-escaped on its way into an email that has no HTML.<\/li>\n<li>Fix - Plain text emails are now plain text. With \"Email type: Plain text\" selected the plugin mailed a full HTML document as text\/plain, so the recipient read the markup. There is now a proper plain-text template beside the HTML one.<\/li>\n<li>Fix - Sending no longer emits a PHP warning when the email is disabled or has no recipient, and correctly reports failure instead of returning an undefined value.<\/li>\n<li>Enhancement - Added an \"Email template\" link to the plugin's row on the Plugins screen, going straight to WooCommerce &gt; Settings &gt; Emails &gt; Request For Quote.<\/li>\n<\/ul>\n\n<h4>1.8.1 - 2026-08-24<\/h4>\n\n<ul>\n<li>Security - Saving the settings now requires the capability to manage options, not just a valid form token. The check matters more in this release, because saving also clears the page cache.<\/li>\n<li>Fix - Saving settings now clears the page cache. With a caching plugin active the settings really were saved, but product and shop pages kept serving the old button, label and prices, so the change looked like it had not applied.<\/li>\n<li>Fix - The quote page is no longer stored by page caches. It renders one visitor's quote basket, so a cached copy could be served to the next visitor.<\/li>\n<li>Fix - A rejected settings save now says why. The Save Changes button used to finish with \"Changes Updated\" even when nothing had been saved, and the reason was never shown.<\/li>\n<li>Enhancement - Tidied the Additional Form Fields setting. \"Make phone number required\" is now visibly a sub-option of \"Show phone number field\" and is disabled while that field is off, instead of sitting there clickable and able to require a field the form never showed.<\/li>\n<\/ul>\n\n<h4>1.8.0 - 2026-08-22<\/h4>\n\n<ul>\n<li>Security - Escaped the quote table's output and tightened validation in the public add-to-quote handler.<\/li>\n<li>Fix - On a network, activating for all sites now sets up every site, and a site created afterwards gets its own quote session table. Previously only one site was set up and later sites got nothing, with no error shown.<\/li>\n<li>Fix - On a network, settings are read from the same per-site row they are saved to. They could previously read back empty.<\/li>\n<li>Change - The review request now appears on the Dashboard rather than on every admin screen, waits until three quotes have been submitted instead of counting days, and is dismissed per user rather than for the whole site. Anyone who already dismissed it will not be asked again.<\/li>\n<li>Fix - Escaped the quote email template's heading.<\/li>\n<li>Fix - Product images in the quote table keep their responsive attributes, so browsers can pick an appropriate size again.<\/li>\n<li>Enhancement - Declared compatible with the Cart and Checkout blocks. This plugin adds nothing to the cart or checkout and keeps its own session, so block checkout is unaffected. It previously declared itself incompatible, which showed store owners a warning that was not warranted.<\/li>\n<li>Enhancement - Adopted the WPHEKA framework for settings, the quote session table and site provisioning.<\/li>\n<li>Enhancement - Requires PHP 8.1 and WordPress 6.5. WordPress 7.1 and WooCommerce 11.0.1 compatibility added.<\/li>\n<\/ul>\n\n<h4>1.7.2 - 2026-05-27<\/h4>\n\n<ul>\n<li>Feature - Added a polite 5-star review request notice for store admins, shown after 7 days and at least one quote submission. Includes \"Sure, you deserve it\", \"I already did\", \"Maybe later\" (14-day snooze) and \"Don't ask again\" options.<\/li>\n<li>Fix - Made the \"Your request has been sent successfully\" and corresponding error message translatable via Loco Translate (previously hardcoded in the AJAX response).<\/li>\n<li>Fix - Added missing text domain to three admin settings labels (Select a page, Button, Link) so they appear in translation tools.<\/li>\n<li>Enhancement - Added \"Requires PHP: 7.4\" header.<\/li>\n<li>Enhancement - WordPress version 7.0 compatibility added.<\/li>\n<li>Enhancement - WooCommerce version 10.7.0 compatibility added.<\/li>\n<\/ul>\n\n<h4>1.7.1 - 2026-02-13<\/h4>\n\n<ul>\n<li>Fix - Fixed \"unexpected output during activation\" error by removing get_plugin_data() call.<\/li>\n<\/ul>\n\n<h4>1.7.0 - 2026-02-13<\/h4>\n\n<ul>\n<li>Feature - Added user type restrictions (show button to all\/logged\/guest users).<\/li>\n<li>Feature - Added out of stock product options (show on all\/only out of stock\/hide on out of stock).<\/li>\n<li>Feature - Added button position option (before\/after add to cart button).<\/li>\n<li>Feature - Added after-click behavior (show link or auto-redirect to quote page).<\/li>\n<li>Feature - Added additional form fields (phone number and company name).<\/li>\n<li>Fix - Fixed \"Hide Price\" and \"Hide Add to Cart\" settings not working on product pages.<\/li>\n<li>Security - Fixed improper sanitization in plugin settings save handler.<\/li>\n<li>Security - Added proper output escaping for page dropdown in settings form.<\/li>\n<li>Security - Added missing wp_unslash() call in remove item AJAX handler.<\/li>\n<li>Enhancement - WordPress version 6.9.1 compatibility added.<\/li>\n<li>Enhancement - WooCommerce version 10.5.1 compatibility added.<\/li>\n<\/ul>\n\n<h4>1.6.1 - 2025-11-09<\/h4>\n\n<ul>\n<li>Enhancement - WooCommerce HPOS (High Performance Order Storage) compatibility added.<\/li>\n<li>Enhancement - WooCommerce Version 10.3.4 compatibility added.<\/li>\n<li>Security - Fixed missing nonce verification in shop AJAX handler.<\/li>\n<li>Security - Improved data sanitization with proper wp_unslash() calls.<\/li>\n<li>Enhancement - Externalized inline JavaScript for better security practices.<\/li>\n<li>Enhancement - Added proper error handling for session class instantiation.<\/li>\n<li>Enhancement - Improved code organization and separation of concerns.<\/li>\n<\/ul>\n\n<h4>1.6 - 2024-12-03<\/h4>\n\n<ul>\n<li>Enhancement - WooCommerce Version 9.4.2 compatibility added.<\/li>\n<\/ul>\n\n<h4>1.5 - 2022-06-09<\/h4>\n\n<ul>\n<li>Enhancement - WooCommerce Version 6.5.1 compatibility added.<\/li>\n<\/ul>\n\n<h4>1.4 - 2021-09-02<\/h4>\n\n<ul>\n<li>Enhancement - Used 'wp or 'wordpress' prefixed cookies to fix caching issue with multiple hosting providers.<\/li>\n<\/ul>\n\n<h4>1.3 - 2021-08-13<\/h4>\n\n<ul>\n<li>Enhancement - CSRF issues fixed.<\/li>\n<\/ul>\n\n<h4>1.2 - 2020-06-06<\/h4>\n\n<ul>\n<li>Enhancement - Session cache fix added.<\/li>\n<\/ul>\n\n<h4>1.1 - 2020-06-05<\/h4>\n\n<ul>\n<li>Tweak - Session class updated.<\/li>\n<\/ul>\n\n<h4>1.0 - 2020-05-03<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Let customers request a quote on any product and negotiate the best price, turning product enquiries into sales leads.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/121065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=121065"}],"author":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/akshayaswaroop"}],"wp:attachment":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=121065"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=121065"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=121065"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=121065"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=121065"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=121065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}