=== Request a Quote for WooCommerce - Hide Price, RFQ & B2B Quotes (Quotilio) ===
Contributors: leadkingsdotnet, skylitech
Tags: request a quote woocommerce, hide price woocommerce, woocommerce catalog mode, woocommerce request for quote, woocommerce rfq
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 0.4.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add a Request a Quote button to WooCommerce, hide prices and Add to Cart with catalog mode, manage B2B quotes and convert a quote to an order.

== Description ==

Quotilio adds a quote-request workflow to your WooCommerce store: a Request a Quote button on product and cart pages, a customer-facing form, a quotes screen inside WP Admin, and a one-click path from a quote to a real WooCommerce order.

= What you get =

* **Request a Quote button** on product pages (next to Add to Cart) and on the cart page. Turn either location on or off from the settings screen, or place the button anywhere with the `[quotilio_request_quote]` shortcode.
* **Quote request form** with name, email, company, phone and message. Opens as a modal on top of your existing page — no separate landing page, no theme edits.
* **Quotes in WP Admin** under WooCommerce → Quotilio Quotes. Native WordPress list table with a detail view for every quote.
* **Convert quote to WooCommerce order** in one click. Uses your existing WooCommerce order, shipping and tax rules. Compatible with High-Performance Order Storage (HPOS).
* **Email notifications.** You get an email for every new quote request (address configurable); the customer gets a confirmation.
* **Catalog mode (hide price).** Turn the store into a catalog: hide prices and the Add to Cart button on every product, leaving Request a Quote as the only call to action. Use it when price depends on quantity, contract or shipping.
* **Unlimited quotes.** No caps, no trial timer.
* **Self-hosted by default.** Your quotes and customer details stay in your own database and are never transmitted anywhere. The plugin makes no outbound calls at all unless you switch on the optional usage report described below, which carries version numbers and counts only.
* **Block-theme and page-builder friendly.** Works with the WooCommerce cart block and the classic cart, and with themes built on Elementor, Divi and Bricks.
* **Translation-ready** via the `quotilio-for-woocommerce` text domain.

= Quotilio Pro =

[Quotilio Pro](https://skylitech.com/woocommerce/) is a separate plugin that installs over this one (all your quotes carry over) and adds:

* **Catalog mode targeting** — apply catalog mode per category, per customer role or per individual product. The storewide on/off switch is in this free plugin.
* **Edit quotes before converting** — change quantities and unit prices, add per-line discounts and adjustments, then convert to an order.
* **Quote PDF** attached to the customer email, with a one-click resend from the quote screen.
* **Editable customer emails** — subject, body and terms footer, plus theme-overridable templates.
* **Quote search** in the admin list.
* **Cache-friendly lazy session** for stores behind full-page caching.
* **Automatic updates and priority support.**

Pro is $15/month or $150/year. If it ever lapses, the free plugin keeps working with all your data.

== Installation ==

1. In WP Admin, go to **Plugins > Add New** and search for "Quotilio for WooCommerce", or upload the plugin zip via **Plugins > Add New > Upload**.
2. Activate the plugin. WooCommerce 8.0 or newer must already be active.
3. Visit **WooCommerce > Quotilio Settings** to choose where the Request a Quote button shows and where new-quote notifications are sent.
4. Load any product page to confirm the button renders next to Add to Cart.

The plugin creates its own database tables on activation. Deactivating keeps your data; uninstalling removes it only if you tick "Delete all quotes and settings when the plugin is uninstalled" in settings.

== Frequently Asked Questions ==

= Does this work with my block theme or page builder? =

Yes. The product-page button hooks into the standard `woocommerce_single_product_summary` action. On the cart page it hooks the classic cart action and injects into the WooCommerce cart block. If your template does neither, use the `[quotilio_request_quote]` shortcode.

= Where does my quote data live? =

Entirely in your own WordPress database, in three plugin-owned tables prefixed `quotilio_`. The plugin makes no outbound API calls.

= Do you support variable products? =

Yes. Quotes capture the selected variation, price at quote time and quantity, and the converted order carries the same line.

= What does Pro add? =

Catalog mode targeting (per category, per customer role or per product), editing quote lines before converting, a PDF attached to the customer email with resend, editable email subject/body/terms, quote search, a cache-friendly lazy session, automatic updates and priority support. Pro is a separate plugin; this plugin stays fully functional without it.

== Screenshots ==

1. Product page with the Request a Quote button rendered next to Add to Cart.
2. Quote request modal opened on a product page.
3. Quotes list inside WP Admin.
4. Quote detail screen with the Convert to Order button.

== Changelog ==

= 0.4.1 =
* Added an optional, off-by-default usage report so we can see which WordPress, WooCommerce and PHP versions to support. It is anonymous, asks before it is switched on, and can be turned off again from the settings screen. See "External services" below for exactly what it sends.

= 0.4.0 =
* Added catalog mode: hide prices and the Add to Cart button across the store, leaving Request a Quote as the only call to action.
* The quote button now stays visible on products that catalog mode has made unpurchasable.

= 0.3.2 =
* Declares compatibility with WooCommerce High-Performance Order Storage so WooCommerce no longer flags the plugin as incompatible.
* Settings screen previews the Pro options (greyed out) and the Pro description now matches what Pro actually ships.
* Tested with WooCommerce 11.1 and WordPress 7.1.

= 0.3.1 =
* Removed the "Quotes powered by" line from customer confirmation emails.
* Multisite uninstall now honours each subsite's own "delete data on uninstall" setting.
* Read queries are built through `$wpdb->prepare()` end to end.

= 0.3.0 =
* Every quote-request now emails the merchant and the customer.
* Company field added to the quote form.
* Quote detail screen shows the customer's message.
* Removed the active-quote cap: unlimited quotes.
* Settings screen: notification email, button placement, uninstall opt-in.
* All PHP-side names now use the `quotilio_` prefix; input sanitisation tightened; `Requires Plugins: woocommerce` header added.
* Custom form fields, button rules, quote expiry and several other options removed from the free plugin. Catalog mode, editable email templates, resend and quote search are available in Quotilio Pro.

= 0.2.0 =
* Lazy session initialization — no PHP session cookie set on cache-safe front-end requests.
* Compatibility declared with WooCommerce HPOS.

= 0.1.0 =
* Initial release. Product- and cart-page Request a Quote button, quote request modal, admin quotes dashboard, quote-to-order conversion.

== External services ==

This plugin can send an anonymous usage report to Skylitech, the plugin's author. **It is off until you turn it on.** Nothing is transmitted unless you click "Share usage data" on the prompt in WP Admin, or tick the box under WooCommerce -> Quotilio Settings -> Usage data. Untick it and transmission stops immediately.

When it is on, once a week the plugin sends a request to `https://skylitech.com/licenses/api/telemetry.php` containing:

* a one-way SHA-256 hash of your site address, so repeat reports can be counted as one store without identifying it
* the plugin, WordPress, WooCommerce and PHP version numbers
* your site locale and whether the site is multisite
* the date the plugin was installed
* how many quotes have been submitted, and how many were converted to orders
* whether the product button, cart button and catalog mode are switched on

It never sends your site address, your store name, customer names, email addresses, phone numbers, quote contents, product data or order data.

This service is provided by Skylitech Solutions: [terms](https://skylitech.com/terms.html) | [privacy policy](https://skylitech.com/privacy.html)

== Upgrade Notice ==

= 0.3.2 =
Fixes the WooCommerce "incompatible plugin" notice (HPOS declaration). Safe in-place upgrade — no schema changes.

= 0.3.1 =
Review fixes only. Safe in-place upgrade — no schema changes.

= 0.3.0 =
Emails on every quote request, company field, unlimited quotes. Several features moved to the separate Pro plugin. Safe in-place upgrade — no schema changes.
