=== Underpixel Quote Request for WooCommerce ===
Contributors: shadowz0098
Tags: call for price, hide price, request a quote, whatsapp, quote
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Hide WooCommerce prices and let shoppers ask for a quote on WhatsApp with one click.

== Description ==

This plugin is for shops that do not show prices, or want to talk to the customer before they do. It can replace the price with text such as "Price on request" and add a "Request quote" button. When the shopper presses the button, WhatsApp opens with a message that already names the product and its link. You answer in WhatsApp.

**Free version (this plugin)**

* Hide prices on all products with one switch. Hiding is off until you turn it on.
* Replace the price with your own text.
* Hide the Add to Cart button on products with a hidden price.
* "Request quote" button on the product page, and optionally on the shop grid. You choose the button text.
* Set your own greeting for the first line of the WhatsApp message.
* Per product: choose "Don't hide price on this product" or "Always hide price on this product".
* Price removed from the structured data (JSON-LD) when it is hidden.
* Works with Storefront, Astra, Kadence and block themes such as Twenty Twenty-Five.
* If no WhatsApp number is set, no button is shown, and you get a notice in the admin.

**Pro version (paid upgrade, sold separately)**

The settings screen shows the Pro features as disabled options under one "Quote Request Pro" banner. The Pro code is not included in this version, and nothing in this plugin is locked or time-limited. Pro adds:

* Hide prices only for chosen categories or products.
* Rules by visitor: logged-out visitors only, user roles that still see prices, country, price range, out-of-stock products.
* Quote list: shoppers collect several products and send one WhatsApp message.
* Message templates with tags such as {product}, {sku}, {link}, {qty}, {variation}.
* A different WhatsApp number per category or per product.
* Button design: colour, size, chat icon and position.
* Email form instead of WhatsApp for chosen categories.
* Business hours with a different greeting when you are closed.

== Installation ==

1. Install and activate WooCommerce.
2. Upload the `underpixel-quote-request` folder to `/wp-content/plugins/`, or install the zip from Plugins > Add New.
3. Activate Underpixel Quote Request.
4. Go to WooCommerce > Quote Request. On the WhatsApp tab, enter your number with country code.
5. On the General tab, switch on "Hide prices on all products" if you want prices hidden.

== Frequently Asked Questions ==

= Why does the button not show? =

No WhatsApp number is saved yet. The plugin never shows a button that goes nowhere. Enter the number on the WhatsApp tab.

= What format should the WhatsApp number have? =

Digits with the country code, no leading 0 after the country code. Example for Malaysia: 60123456789. Spaces, dashes and the + sign are removed when you save. A number must have 8 to 15 digits.

= Does it hide the price from Google? =

Yes. When a price is hidden, the plugin removes the price (the "offers" part) from the product's JSON-LD structured data, so it is not printed there either. Note that the WooCommerce Store API (`/wp-json/wc/store/v1/products`) can still return prices; if you hide prices from competitors, restrict that endpoint. Also, a cache or SEO plugin that writes its own structured data is outside this plugin's control.

= Does it work with page caching? =

Mostly, with one limit. The plugin decides on the server, on each page load, what the visitor sees. Pro rules that depend on the visitor (user role, logged-out visitor, country) and the Pro after-hours greeting are decided this way. A full-page cache (host cache, a caching plugin, a CDN) saves one version of the page and shows it to everyone. A visitor can then see the wrong price state, or the greeting for the wrong time of day. If you use these Pro features, exclude product and shop pages from the full-page cache, or make the cache vary by login state and country. The simple Free setting (hide on all products) is the same for everyone and is safe to cache.

= The Pro email form does nothing. =

The email form needs JavaScript. Without JavaScript, a link is shown instead: it opens WhatsApp with the request already written when a number is set, and otherwise the shopper's own email program.

= Does it work if WooCommerce is not active? =

It does nothing on the front end and shows one notice in the admin.

= Where are quotes stored? =

Nowhere on your site. See the privacy note below.

== Screenshots ==

1. General settings: hide prices, replacement text, Add to Cart.
2. WhatsApp settings: number, greeting and a test message.
3. Product page with "Price on request" and the "Request quote" button (Storefront).
4. Shop grid with the quote button (Astra).
5. Pro options shown disabled in the Free version, under one Pro banner.

== Privacy ==

This plugin stores no personal data about shoppers. It saves only your settings in one option (`quotely_settings`) and an optional per-product setting. Buttons are links to wa.me (WhatsApp), so the shopper's message is written and sent in WhatsApp, under WhatsApp's own privacy policy. In Pro, the quote list is kept in the shopper's own browser (localStorage) and is never sent to your server. The Pro email form sends one email to the site admin address and stores nothing. Uninstalling the plugin removes its settings and product meta.

== Changelog ==

= 1.0.2 =
* The "Upgrade to Pro" link now opens the plugin page on underpixelstudio.my.

= 1.0.1 =
* Initial release (renamed from Quotely to Underpixel Quote Request).

== Upgrade Notice ==

= 1.0.2 =
Upgrade link now opens the plugin page.

= 1.0.1 =
Initial release.
