There are many plugins that allow you to setup special accounts for your wholesalers for example. Often times the user role feature of WordPress is used to identify users within a specific group. In this post I’ll show some examples of how you can display/hide prices for specific user groups, including only for specific products / categories.

The snippets in this post will only be for hiding prices, it will still continue users to add products to the cart.

Hiding all the prices

Lets start with a simple script first. This is a example of how you can hide all the prices no matter who is viewing.

I’ve made it so that it does still show prices on the admin, but you can easily comment that line out if you also want to hide prices there.

This code snippet hides all the prices on the product / archive pages, but not on the cart/checkout pages (or the cart widget). The following code also removes the cart item price / subtotal and the same for the checkout.

After using this code snippet it will leave the headings in the table. Unfortunately these cannot be removed with a code snippet, but there are two alternatives.

  1. By modifying the WooCommerce template files you can remove the columns from the totals table. The totals table is located in the cart/cart.php template file.
  2. You can hide them with CSS. A technical user could still uncover the product prices through, so depending on how important it is, this may or may not fit your requirements.

Here’s a CSS snippet that hides the prices on the items on the cart/checkout table and the cart widget:

/* Cart widget */
.woocommerce-mini-cart__total {
	display: none;
}

/* Cart */
.product-price, .product-subtotal {
	display: none !important;
}

/* Checkout */
.product-total *, th.product-total {
	display: none;
}

Again, this is not a foolproof solution.

Hiding prices for specific user roles

In the below code snippet it will hide the prices for all users with the ‘wholesale’ user role. In the sample code I’ve added multiple rows to show how you can can hide prices for different user roles. Adding more options to it is possible by following the shown format.

Hiding prices for guest users

To only hide it for guest users you can use the following simplified version;

Hiding prices in specific categories

With this version of the code snippet you can target specific categories to hide the prices for.

You can either modify the set categories to the slug of ID of the category.

If wanted you can also combine the snippets to only hide the prices in specific categories for a guest user;

Hiding prices for specific products

Here’s one last version where it only hides the prices for specific products based on the product ID.

 

Hope you’ve found this post helpful!

Jeroen Sormani

I'm a professional WordPress plugin developer on a mission to create the best plugins for my clients. I'm specialised in developing general WordPress, WooCommerce and Easy Digital Downloads plugins.

Interested in talking about a WordPress project? Get in touch!

Follow me on Twitter

103 thoughts on “Hiding product prices in WooCommerce

Stuart O September 27, 2023 at 7:09 pm

Hi
These code snippets works great, but is it possible to hide the price just in the catagory list and not on the actual product page ?

Jeroen Sormani September 27, 2023 at 8:55 pm

Hi Stuart,

Sure, thats possible. You’d want to add in a check with something like the is_archive() function..

Cheers,
Jeroen

Stuart O September 28, 2023 at 6:07 pm

Hi Jeroen

Thanks for the quick reply, unfortunatly i am not a coder so i do not understand how to use this function to allow the price to be viewed on the product page, would you be able to just give me a bit more instruction so that i can insert it into your “hide price in a specific catagory” snippit. really appreciate any help or guidance.
regards

Stuart

Jeroen Sormani September 28, 2023 at 8:34 pm

Hi Stuart,

Unfortunately I can’t start providing custom snippets, you’re of course free to reach out through my hire page if you’d like me assistance on customizing snippets.

Cheers,
Jeroen

Stuart O September 29, 2023 at 8:55 am

Hi Jeroen

No problem, I appreciate that, thanks for your help and for the original snippits that are amazing, thank you.

regards

Stuart

Luana January 11, 2024 at 3:20 pm

Hello, how can I hide only the promotional price, the promotional price field

Ryon July 8, 2024 at 8:54 pm

Hello! Our site has some products hidden by an attribute which in our case is a brand, how can I make these visible to admin or shop manager if they are logged in?

Edit: Sorry I meant the price and add to cart is hidden and I want administrator or shop manager to have visibility, is that possible?

Jeroen Sormani July 9, 2024 at 9:15 am

Hi Ryon,

You can add a addition check using the `current_user_can` function.

Cheers,
Jeroen

Daniel Vogelstein October 15, 2024 at 1:04 am

Thank you for creating this. Is it possible to hide the price for everything in a specific category only once it is sold?

Jeroen Sormani October 15, 2024 at 9:53 am

Hi Daniel,

Sure, something like that is possible; but you’d need some further modification and I’d also recommend optimization to ensure it doesn’t have any significant performance impact.

Feel free to contact me through one of the forms if you need help with this.

Cheers,
Jeroen

Leave a Reply