
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.
- 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. - 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!
75 thoughts on “Hiding product prices in WooCommerce”
Any solution to hide all the price from the custom post type
Not sure what CPT you’re referring to; you can try to add a `get_post_type()` or `is_singular(”)` check to the snippet.
Hi, where shoud I paste “Hiding prices for specific products” code?
thanks a lot!
Hi Teo,
Code snippets can be added to your site as described here; https://aceplugins.com/how-to-add-a-code-snippet/
Cheers,
Jeroen
Thanks, this helped a lot!
Hi Jeroen. Is there a way to hide the price for specific products when a specific plugin is active on the product page?
Hi Leandro,
It is possible to customize the script further to target when a specific plugin is active. Targeting specific products can be done with the last snippet in the post.
For checking if a plugin is active you can use something like
is_plugin_active( 'woocommerce/woocommerce.php' )
Cheers,
Jeroen
Hi it is posible to hide the price of products with the same attribute?
Thx so much!
Hi David,
It is possible to target products based on attribute, though I don’t have something readily available for this. Feel free to reach out through the contact page if you’d like my assistance in creating something for this.
Cheers,
Jeroen
Hi, i wanted to hide the price for a specific categorie.
I placed my category-ID in line 11 like “…get_id(my category -ID)” and deleted line 5 since i want to see it as admin like every customer.
In this scenario my prices are hidden in all categories – where is my mistake?
Hi Benjamin,
Line 11 shouldn’t be modified. Instead set your category slugs in the
$hide_for_categories
variable to change for which categories it should apply.Cheers,
Jeroen
Hi Jeroen,
Is there a snippet for hiding the price and add to cart from the archive (shop) page only? leaving the product page untouched. I want to have just the products and their title on the shop page.
Thank you!
Hi,
It is not something covered in this blog post, but you should be able to add a small check for
is_archive( 'product' );
for example to check if its an archive page.Cheers,
Jeroen
Is there anyway to hide the prices using shortcode?
Also is it possible to hide prices without affecting single product page?
Hi Kins,
It won’t be possible to hide product prices with a shortcode..
If you’d like to only hide the prices on the overview pages you can add a additional check such as the
is_archive( 'product' )
for example.Cheers,
Jeroen
Hello,
How can i hide cart total section, i want to make only catalog site without eCommerce functionality.
Regards
Hi Ali,
This blog is only focussed on hiding individual product prices, not to turn off the eComm functionality (it would require more than hiding the totals).
Cheers,
Jeroen