How to Hide the Price on WooCommerce Products

Most buyers make up their mind about a vendor before they ever say hello. B2B buyers now finish nearly 70% of their buying journey through independent research, before they contact a sales rep at all (6sense). If your store shows retail prices to buyers who should be getting a wholesale quote, you are shaping that decision before you get a chance to talk to them. That’s exactly why so many store owners search for how to hide the price on WooCommerce products, and why getting it right matters more than it looks.

WooCommerce shows prices by default. There’s no built-in switch to turn them off. But you can hide prices for everyone, for specific products, or for certain customer types, using a plugin or a small code snippet. This guide walks through every method, shows you the mistakes most tutorials skip, and helps you pick the right setup for your store.

Why Store Owners Hide Prices

There’s no single reason. Here are the most common ones:

  • Wholesale and B2B pricing. You don’t want retail shoppers seeing trade prices meant for approved buyers.
  • Custom quotes. The final price depends on size, materials, or quantity, so a fixed number doesn’t apply.
  • MAP compliance. Manufacturers require you to hide the price below a set floor and show it only after checkout or on request.
  • Coming soon products. You want to list a product before pricing is finalized.
  • Catalog-only stores. You’re showcasing products but not selling online at all.
  • Lead generation. Hiding the price encourages visitors to register or submit a form to see it.

Knowing your reason matters. It decides which method fits your store, and who should still see the price.

Before You Start: Decide What to Hide and From Whom

This is the step most guides skip, and it’s the one that saves you from redoing your setup later. Answer these three questions first:

  1. Who should still see prices? Logged-in customers, a specific wholesale role, or nobody at all?
  2. What should replace the price? A “Login to view price” message, a “Request a Quote” button, or just blank space?
  3. Does the Add to Cart button need to disappear too? Hiding a price but leaving the cart button active confuses shoppers and often breaks checkout.

Once you know the answers, pick your method below.

Good Read: How to Sort Products by Best Selling in WooCommerce

Method 1: Hide Prices With a Plugin (Recommended for Most Stores)

A plugin is the safest option if you’re not a developer. It won’t break when WooCommerce updates, and most plugins let you set rules without touching a single line of code.

ShopBuilder is an Elementor WooCommerce builder plugin with a Catalog Mode module built in. It’s a solid pick if you’re already using Elementor to design your shop, since you don’t need a separate plugin just for hiding prices. Note that Catalog Mode is a Pro-only module, so you’ll need ShopBuilder Pro to access it. The free version doesn’t include it. Here’s the price-hiding part specifically.

Install ShopBuilder Pro and activate it with your license.

Upload shopbuilder pro plugin (2)

Go to ShopBuilder → Settings → Modules → Catalog Mode, and turn it on. 

activate catalog mode.png

Under General, choose who it applies to (All Users or Guest Users Only) and which products (All Products or Specific Products). 

Open the Prices tab and set Price Display to Hide Price, or Replace Price With Custom Text if you’d rather show something like “Contact for Pricing.” 

Price Settings

Save your changes, then preview the shop and product pages while logged out to confirm the price is hidden. 

Front End of Hide

Need an exception for one product? Edit that product, open the Catalog Mode box in Product Data, and set its Price Settings separately from the global setting.

Single product page catalog settings

A quick note on this method: Catalog Mode controls what shows on the page. It doesn’t automatically confirm whether your product schema still lists the price. Run the Rich Results Test after setup, the same way you would with any other hide price method, and cross-check the section below on schema markup.

Method 2: Hide Prices With Code (No Plugin)

This works if you’re comfortable editing your child theme and want a lightweight, free solution.

To hide the price for every visitor:

php

add_filter( 'woocommerce_get_price_html', 'hide_price_for_all', 100 );

function hide_price_for_all( $price ) {

    return '';

}

To hide the price only for logged-out visitors:

php

add_filter( 'woocommerce_get_price_html', 'hide_price_for_guests', 100 );

function hide_price_for_guests( $price ) {

    if ( ! is_user_logged_in() ) {

        return '<span class="login-to-see-price">Login to see price</span>';

    }

    return $price;

}

To hide the Add to Cart button along with the price:

php

add_filter( 'woocommerce_is_purchasable', 'hide_add_to_cart_for_guests' );

function hide_add_to_cart_for_guests( $purchasable ) {

    if ( ! is_user_logged_in() ) {

        return false;

    }

    return $purchasable;

}

Add these to your child theme’s functions.php file, not your main theme, or the changes disappear the next time your theme updates.

A few things to watch with the code method:

  • It only hides the price visually. It does nothing to your product schema, which we cover below.
  • It applies site-wide unless you add conditions for specific products or categories.
  • Test on a staging site first. One typo in functions.php can take your whole store offline.

Method 3: Hide Prices Only for Specific Products or Categories

Most hide price plugins let you scope a rule to certain products instead of the whole store. This is the setup for stores that sell some items normally and hide pricing only on made-to-order or wholesale-only items.

In the plugin settings, instead of choosing “Apply to All Products,” select Include Specific Products or Include Categories, then pick the ones you want. Everything outside that selection keeps showing prices as normal.

The Problem Most Guides Miss: Hidden Prices Still Show Up in Google

This is the part that trips up almost every store owner, and it’s rarely covered in other tutorials. Hiding a price on the page does not remove it from your site’s structured data. WooCommerce automatically generates JSON-LD schema for every product, including the price, and that schema often stays untouched even after you hide the visible price with a plugin or code snippet.

The result: your price still appears in Google’s rich results, in AI Overviews, and in shopping-related searches, even though a visitor on your actual page can’t see it.

How to fix it:

  • If you’re using a hide price plugin, check whether it has a specific setting for hiding prices in schema markup or structured data. Better plugins filter woocommerce_structured_data_product_offer in addition to the visible price.
  • After making changes, use Google’s Rich Results Test to confirm the price is actually gone from your schema, not just the page.
  • Request re-indexing of the affected pages in Google Search Console so the old cached price clears out faster.

Skip this step and you’ll have a store that looks locked down to visitors but still leaks pricing to anyone searching your product name on Google.

What Happens to Variable Products (Price Ranges)

Simple products show one price. Variable products, like a t-shirt in different sizes, show a range such as “$20 to $35.” This range appears on the shop page, the product page, and inside the variation dropdown, so it needs the same hiding logic applied in all three places.

Most dedicated hide price plugins handle this automatically. If you’re using a custom code snippet, test every variable product carefully, since a filter that hides a simple product’s price doesn’t always catch the range on a variable one. Check the shop grid and the individual product page separately.

Good Read: How to Add Variable Product in WooCommerce in 2 Steps

Common Mistakes to Avoid

  • Hiding the price but leaving Add to Cart active. Customers click “buy” and get confused when there’s no price to confirm.
  • Forgetting about the schema markup. Covered above, but worth repeating since it’s the most overlooked step.
  • Applying one rule to the whole store when only wholesale items need it. This hides pricing from regular retail customers by accident.
  • Not testing as a logged-out visitor. It’s easy to check your own store while logged in and miss that guests see something broken.
  • Skipping mobile testing. Some replacement text or contact forms don’t display correctly on smaller screens.
  • Using an unmaintained free plugin. Hide price plugins that don’t get updates can break silently after a WooCommerce update, showing prices again without warning.

Frequently Asked Questions

Does hiding prices hurt my SEO? 

Not on its own. But if your product schema still lists the price while your page shows “Login to view price,” search engines and AI tools can display outdated or contradictory pricing. Fix the schema at the same time you hide the on-page price.

Can I hide prices for one country only? 

Yes. Several hide price plugins, including WooCommerce’s official extension, support rules based on customer location or country, useful for regional MAP pricing rules.

Will hiding prices stop bots or competitors from seeing them? 

No. A determined competitor can still view your product’s AJAX endpoints or page source. Hiding prices controls what regular shoppers see. It’s not a security feature.

What’s the difference between hiding prices and catalog mode? 

Hiding prices can apply to specific products or user roles while the rest of your store works normally. Catalog mode turns your entire store into a browse-only experience, removing purchasing everywhere.

Do I need a premium plugin, or does the free version work? 

For a single rule, like hiding all prices from guests, most free plugins handle it. If you need different rules for different user roles, countries, or products at the same time, you’ll likely need a premium plugin or the code method.

Can customers still add hidden-price items to their cart? 

Only if you hide the price but leave the Add to Cart button active, which is not recommended. Most plugins let you disable both together, and the code snippet earlier in this guide shows how to do it manually.

Final Thoughts

Hiding prices in WooCommerce is simple on the surface: pick a plugin or a code snippet, set your rules, and check the front end. The part that separates a clean setup from a leaky one is what happens behind the visible page, in your schema markup and search results. Get both right, and you control exactly who sees your pricing and where.

If your store serves both retail and wholesale customers, start with a rule-based plugin instead of a global code snippet. It gives you the flexibility to show different prices to different people without rebuilding your setup every time your pricing strategy changes.

author
I'm a technical content writer with a passion for simplifying complex ideas into clear, engaging content for web, email, and social media. With experience in SEO, CRM tools, and digital strategy, I've worked with RTOs, education consultancies, and global campaigns. I enjoy creating high-performing content, leading creative teams, and diving into performance analytics. Outside of work, you'll find me reading, doing photography, or hunting for the next great café spot.