WooCommerce Hide Price Range on Variable Products: All Three Surfaces
WooCommerce hide price range: variable products print the number three times - parent HTML, variation JSON, Store API. Filter all three, then…
Read moreRequest-a-Quote, Hide-Price and Catalog Mode in one plugin — engineered so prices never leak through a theme, a cache, an SEO plugin or the Store API. Built for B2B, wholesale and made-to-order stores, and verified with an adversarial leak sweep across every public surface.
B2B, wholesale, dealer and made-to-order stores price each customer differently. WooCommerce publishes one number to everybody — and then repeats it in half a dozen places most plugins never touch.
Every competitor, marketplace scraper and walk-in visitor reads the same figure you meant to negotiate. You can't quote a dealer 30% off a number they already saw.
Remove the price and the page becomes a dead end. Buyers email, or they leave — and the enquiry that does arrive has no product, no quantity and no record in WooCommerce.
CSS hides the label; the number stays in the Store API JSON your block theme ships to every visitor, in the JSON-LD your SEO plugin prints, and in wc/v3. View source and it's right there.
PriceVeil removes the number before the response leaves your server.
Hide the price, close the side doors, and give the buyer somewhere to go instead.
Not a CSS overlay. The price fields are blanked before the HTML or JSON leaves your server, so cached pages, API responses and view-source contain no price at all.
Block themes render prices from the Store API. PriceVeil blanks the product prices, price_html, the collection price-range aggregation and cart totals in those responses — server-side.
A configurable button and form take the price's place on the product page — or drop the [priceveil_form] shortcode anywhere. Nonce, honeypot and a per-IP rate limit protect it.
Each request becomes a native WooCommerce order with its own Quote Request status — in your normal orders screen, HPOS-compatible, and excluded from revenue and reports.
Add-to-cart disappears from classic and block templates, and the Store API rejects cart writes — so the API can't be used as a side door around the missing button.
Hide prices for everyone, or for guests only — so logged-in customers see prices and buy normally while the public catalogue stays price-free.
Prices are hidden the moment you activate. Everything after that is fine-tuning.
Install from the WordPress plugins screen with WooCommerce active. Prices are hidden immediately — there is no setup wizard to finish first.
Under WooCommerce → PriceVeil, pick who prices are hidden from, switch on catalog mode, and choose the button label and the fields on the form.
Quote requests land as Quote Request orders and arrive by email, with one-click reply to the customer. Price them yourself, or open the Requests console on Pro.
Everything on this page above the Pro sections is in the free plugin. Install it from WordPress.org, or read the full PriceVeil documentation first.
A price is not one string. WooCommerce writes it into the page, into the JSON your block theme fetches, into the schema your SEO plugin prints and into two REST namespaces. PriceVeil closes all of them in the same pass.
The buyer fills in a short form on the product page. What arrives is not an email in a shared inbox — it is a real order in your normal orders screen, with the product, the quantity and the customer already attached.
Some stores publish a full catalogue but sell entirely off-platform: dealers, distributors, made-to-order workshops. Catalog mode removes buying from the storefront without removing the storefront.
Anyone can claim their plugin hides prices. PriceVeil ships the two things that let you confirm it: an honest coverage panel that names what it does not cover, and a command that re-tests every server-reachable surface on demand.
The settings screen lists every surface protected automatically — and the short list you should check once yourself, because no plugin can close them for you.
get_price() directlyRun it after every WooCommerce, theme or SEO-plugin update. It re-verifies each server-reachable surface and fails loudly the moment one of them starts leaking again.
$ wp priceveil selftest storefront PASS store-api PASS schema (json-ld) PASS rest wc/v3, wc/v2 PASS graphql PASS cart & checkout PASS Success: no price leaks found.
Illustrative output. Run it on your own store and it reports on your own surfaces — and returns a non-zero exit code if anything fails, so it fits straight into a deploy script.
Free gets the price off your site and the request into WooCommerce. Pro turns that request into a priced quote the customer can accept and pay for online.
Open a request, price each line, set how long the quote stays valid, and send it — by email or WhatsApp — without leaving WordPress.
The customer opens their own quote page, accepts it and pays there — and gets a paid receipt. The negotiation ends in a completed WooCommerce order.
Build a quote out of required, optional and alternative line items, so the customer can add the extras they want or pick between two options before accepting.
Give dealers, wholesale and retail their own percentage pricing, so a quote starts from the right number for that buyer instead of from the list price.
Hide prices by category, by individual product or by user role instead of store-wide — so one catalogue can serve a public shop and a trade counter at once.
Buyers collect several products into a slide-in drawer and request one quote for the lot. Add custom form fields, and let auto-quote answer the routine ones for you.
The hiding, the catalog mode and the quote requests are free forever. Pro is one flat annual price per plan — no per-request fees, no commission on the quotes you win.
wp priceveil selftestEverything that hides a price is free. Pro is about what happens after the request arrives.
| Feature | Free | Pro |
|---|---|---|
| Hide prices on the storefrontsingle, loop, related, grouped, variable ranges | ||
| Store API blankedso block themes have nothing to render | ||
| Structured data cleanedcore JSON-LD, Rank Math, Yoast, AIOSEO, SASWP | ||
| REST & GraphQL price fieldswc/v3, wc/v2, WPGraphQL / WooGraphQL | ||
| Cart, mini-cart, checkout, emails, My Account | ||
| Catalog modeclassic + block templates, Store API rejects cart writes | ||
| Quote request formnonce, honeypot, per-IP rate limit | ||
| Quote Request ordersHPOS-compatible, excluded from revenue & reports | ||
| Audience: everyone or guests only | ||
Coverage panel & wp priceveil selftest | ||
| 8 languages incl. Arabic (RTL) | ||
| Requests consoleprice each line, set validity, send by email or WhatsApp | — | |
| Customer decision pageaccept the quote and pay online | — | |
| Paid receipt for the accepted quote | — | |
| Configurable quotesrequired, optional and alternative line items | — | |
| Customer groups with percentage pricing | — | |
| Category, product and role targeting | — | |
| Multi-product quote drawer | — | |
| Custom quote-form fields | — | |
| Auto-quote automation | — | |
| Priority support | — | |
| Get Free | Get Pro |
Everything worth knowing before you hide a price.
Removed server-side. The price fields are blanked before the HTML or JSON leaves your server, so cached pages, API responses and view-source contain no price at all — there is nothing left for a reader, a scraper or a browser extension to un-hide.
Yes. Block themes render prices from the Store API rather than from PHP, so PriceVeil blanks the product prices, price_html, the collection price-range aggregation and cart totals in those responses server-side. Catalog mode also makes the Store API reject cart writes.
Yes. Set Hide prices for to Guests only and logged-in users get the normal store, prices included, while the public catalogue stays price-free. Pro narrows it further — by category, by product or by user role.
Into your normal WooCommerce orders screen, as native orders with a dedicated Quote Request status. They are HPOS-compatible, need no extra database tables, and are excluded from paid statuses so they never appear as revenue or in your reports. You also get an email with one-click reply to the customer.
Three things, and the settings screen names them rather than hiding them: product feed plugins (they export prices on purpose), custom theme code that calls $product->get_price() directly, and edge caches primed before you activated the plugin. Everything reachable server-side is verified by wp priceveil selftest.
Free covers all of the hiding: storefront, Store API, schema, REST, GraphQL, cart and emails, plus catalog mode, the quote request form, Quote Request orders, the coverage panel and the CLI self-test. Pro adds what happens next — the Requests console, a customer page where they accept and pay online, configurable quotes, customer groups, targeting, the multi-product drawer, custom fields and auto-quote.
WordPress 6.4 or newer on PHP 8.1 or newer, with WooCommerce active. It is HPOS-compatible, works with classic and block themes, handles simple, variable and grouped products, and ships in 8 languages — English, Turkish, Spanish, German, French, Italian, Brazilian Portuguese and Arabic with right-to-left layout.
Checkout and billing are handled by Freemius, our merchant of record, with proper invoices and a 14-day money-back guarantee. Your plan sets how many sites can run Pro at once (1, 5 or 25) on a single licence key and a single renewal date, and you can cancel any time from your account panel.
Still deciding? The PriceVeil documentation covers every setting in detail, and the free plugin on WordPress.org answers the rest in about five minutes.
Install the free plugin and your prices are gone from every surface in minutes — or go straight to Pro and start sending quotes your customers can accept and pay online.
WooCommerce hide price range: variable products print the number three times - parent HTML, variation JSON, Store API. Filter all three, then…
Read moreHide add to cart button WooCommerce guides stop at the template hook. Here is how to also close variation forms, block themes,…
Read moreA complete WooCommerce request a quote flow: replace add-to-cart, capture the enquiry as a real order, and reply with a price the…
Read moreA price-hiding plugin that leaks through the Store API is not hiding anything. Here is how we adversarially test every Eren Labs…
Read more