Skip to content
Gaurav TiwariDocs

Hide Prices Until Login

Updated October 17, 2026

Wholesale and trade stores often can’t show prices to the public. Maybe the prices are negotiated, or the catalog is for approved buyers only. Hiding the price with CSS isn’t enough, because the add to cart button, the product blocks and the Store API still give it away.

Hide Price Until Login replaces the price with “Log in to see prices” for guests and stops them buying. It works store-wide, by category or product by product, and it blocks the purchase on the server, not only on screen.

Choose Which Products Are Hidden

Go to Stackless → Settings → Hide Price Until Login. Under Who and what:

  • Hide prices on: All products (default), Products in selected categories, or Only products set to hide.
  • Categories: used when hiding by category. Subcategories are included.
  • Roles that see prices: leave empty to show prices to every logged-in customer. Pick roles, such as a wholesale role, and only those signed-in users see prices.

Each product can override the store rule. Edit the product, open Product data → Advanced and set Hide price until login to Follow the store setting, Always hide from guests or Never hide. Variations follow their parent product.

Set What Guests See

Under What guests see:

  • Price text: defaults to “Log in to see prices”.
  • Login link: link the price text to the login page and return the shopper to the product afterwards. On by default.
  • Login page: WooCommerce My Account page (default) or WordPress login screen.
  • Button text: defaults to “Log in to buy”. It replaces the add to cart button on hidden products and links to the login page. Leave it blank to remove the button.

After signing in, the shopper lands back on the product they were looking at.

What Gets Hidden

For a viewer who can’t see prices, a hidden product:

  • shows the price text instead of the price on product pages, shop grids and product blocks, including each variation’s price
  • loses its sale badge
  • has its prices blanked in Store API product responses and its offer removed from product structured data
  • can’t be bought, so add to cart forms, AJAX add to cart, add-to-cart links and the Cart block all refuse it, with the message “Please log in to buy this product.”

Admin order editing isn’t affected, so you can still add hidden products to orders by hand.

The [stackless_login_to_see_price] shortcode prints a login link for viewers who can’t see prices and nothing for everyone else. Change its wording with the text attribute:

[stackless_login_to_see_price text="Log in for trade prices"]

Good to Know

  • With Roles that see prices set, signed-in customers outside those roles are treated like guests.
  • Developers can override who sees prices with the stackless_hide_price_until_login_viewer_sees_prices filter.
Share

Was this helpful?

Still stuck? Open a support ticket