How to Enable WooCommerce Catalog Mode Without Plugin

|
Background Gradient

You can enable WooCommerce catalog mode without a plugin by adding three small PHP snippets to your theme’s functions.php file: one to remove the Add to Cart button, one to hide prices, and one to add a Contact Us button. Together they turn your store into a browse-only product showcase with no cart and no checkout, just product information and a clear way for visitors to get in touch.

This guide is written for WordPress developers, agencies, and store owners who want a lightweight, fully controlled catalog setup instead of another plugin slowing things down. You get the exact code, an advanced role-based version, the common mistakes to avoid, and a safe way to test and ship the change.

Whether you run a WooCommerce B2B store, need a temporary maintenance state, or simply want to use WooCommerce as a catalog only, you will have a clean catalog mode without plugin running in a few minutes.

Key Takeaways

  • WooCommerce has no native one-click catalog toggle, so you add a few lines of PHP to your theme’s functions.php file instead.
  • Three snippets do the core work: remove the Add to Cart button, hide prices with the woocommerce_get_price_html filter, and add a Contact Us button.
  • Going plugin-free means faster load times, fewer conflicts, and full control over layout and conditions.
  • An advanced version can show full pricing to logged-in wholesale customers while keeping catalog mode for everyone else.
  • Always work on a child theme and a tested copy. Spin up a WooCommerce sandbox or staging site on InstaWP, validate the change, then push it live.

What Is WooCommerce Catalog Mode?

WooCommerce catalog mode is a store setup where your shop behaves like a digital catalog rather than a checkout-driven store. The Add to Cart button, price display, and checkout flow are switched off, so the storefront is built around browsing and inquiries instead of instant buying.

Store owners enable this to present products without selling them online. Visitors can still view images, read full descriptions, and compare specifications, then reach out for pricing or a quote. It is a common pattern for wholesalers, service businesses, and stores that are mid-update.

A WooCommerce B2B store, for example, might list SKUs, specs, and variations while keeping prices private. Another brand might use it as a WooCommerce product display without selling, nudging customers to request a quote. Either way, catalog mode shifts your store from transactional to informational, and doing it with code keeps it clean and fast.

Catalog Mode Without a Plugin vs With a Plugin

You have two ways to enable catalog mode in WooCommerce: install a dedicated plugin, or add custom code. Plugins are convenient for non-technical users, but they add weight and another dependency to maintain. Code is leaner and fully under your control, which matters most when you manage many stores. Here is a side-by-side look.

Factor Without a Plugin (Code) With a Plugin
PerformanceLightweight, no extra loadAdds scripts and overhead
ControlFull control over logic and layoutLimited to plugin presets
Setup effortRequires basic PHP comfortPoint and click, no code
Role-based rulesPossible with conditional codeBuilt in on most premium plugins
Best forDevelopers and agencies at scaleNon-technical single-store owners

If you are weighing both routes, set up a code-based version and a plugin-based version on two separate InstaWP sandboxes and compare speed, layout, and compatibility before deciding. If you do want a plugin for advanced rules, our roundup of the best WordPress catalog plugins is a good starting point.

Benefits of Enabling Catalog Mode in WooCommerce Without a Plugin

Going plugin-free has clear advantages for anyone who values control, speed, and clean code.

First, you avoid bloating the site with functionality you do not need. Fewer plugins means faster load times, fewer compatibility issues, and a smaller surface area for security problems and bad updates.

Second, you can tailor the behavior precisely. You decide which elements to hide, what messaging replaces them, and whether catalog mode applies to everyone or only certain visitors. Plugin presets cannot match that flexibility.

Third, it scales. If you run an agency and manage multiple client sites, a small, version-controlled snippet is far easier to deploy and reverse across many stores than configuring a plugin on each one. Paired with InstaWP’s testing and management tools, you can roll catalog mode out fast and roll it back just as quickly.

Prerequisites Before You Start

A few precautions keep your workflow safe and reversible, especially on client stores or high-traffic sites.

Use a child theme to protect your edits

If you edit functions.php directly, always work inside a child theme. A child theme keeps your customizations separate from the parent, so a theme update will not wipe them out. The official WordPress child theme guide covers the basic structure if you are new to it.

Take a full backup, then test on a copy

A single missing semicolon can trigger the white screen of death. Before any code change, take a backup of your site, or better yet, clone your site on InstaWP in one click and make edits on a disposable copy first.

Did you know?

As a fully managed WordPress hosting provider, InstaWP handles the server side for you, with global CDN, a web application firewall, automatic SSL, and daily backups on paid plans. So you can launch a WooCommerce store, test catalog mode on it, and keep it as production hosting all from one place.

If you are starting fresh, the fastest way to launch a WooCommerce store is with InstaWP. There is no hosting to configure and no manual WooCommerce install, and you are editing-ready in under a minute.

Already running a store? Use the InstaWP Connect plugin to link your live site, then edit themes in the in-browser code editor, test with versioning and staging, and monitor performance without logging into WordPress manually.

How to Enable WooCommerce Catalog Mode Without a Plugin

Here is the full process. Each snippet goes into your child theme’s functions.php file. All three of these target standard WooCommerce hooks, so they work across well-built classic themes.

Step 1: Remove the Add to Cart button

The first move is to remove every purchase action, starting with the Add to Cart button on shop, category, and product pages. Rather than the older init approach, this version hooks into wp and wraps the removal in conditional tags, so it only runs on storefront pages and leaves the rest of your site untouched.

add_action( 'wp', 'instawp_catalog_remove_add_to_cart' );

function instawp_catalog_remove_add_to_cart() {
    if ( is_shop() || is_product_category() || is_product() || is_product_tag() ) {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    }
}

Here is how to add it using InstaWP:

  1. Launch a WooCommerce sandbox, or connect your live store with the InstaWP Connect plugin and create a staging site of it.
  2. Open the site in your InstaWP dashboard and launch the built-in code editor.
enable WooCommerce catalog mode without plugin
  1. Navigate to your active theme’s functions.php file.
Navigate to your active theme functions.php file in the code editor

If you are not using InstaWP, go to your WordPress Dashboard, then Appearance, then Theme File Editor, then select your theme’s functions.php file.

WordPress Dashboard path Appearance Theme File Editor functions.php
  1. Paste the snippet near the bottom of the file, after the last closing brace.
  2. Save and preview. The Add to Cart button is now gone across the shop.

With cart actions removed, you are halfway to a working catalog. Next, hide the prices.

Step 2: Hide product prices

The woocommerce_get_price_html filter controls how prices render. Returning an empty string hides them on both archive and single product pages, which is exactly what a B2B or quote-based store wants.

add_filter( 'woocommerce_get_price_html', 'instawp_catalog_hide_price', 10, 2 );

function instawp_catalog_hide_price( $price, $product ) {
    return '';
}

Save and preview again. Prices disappear everywhere, while product images, descriptions, and specs stay visible. That completes the core of your WooCommerce product display without selling. One important note: hiding prices is visual only, so your inventory and stock tracking keep working in the background.

Step 3: Add a Contact Us button

With the cart and prices gone, give visitors a clear next step. This snippet drops a Contact Us button right where the Add to Cart button used to sit, on both listings and single product pages.

Tip: Replace /contact with the real slug of your contact page, a quote request form, or even a WhatsApp link, so the button points exactly where you want leads to land.

That is the full transformation. Your store now shows products and invites conversations instead of pushing checkouts, which is ideal for B2B and service-based businesses.

Step 4 (optional): Polish the layout with CSS

After hiding elements, a little CSS makes the storefront feel intentional rather than broken. Add this under Appearance, then Customize, then Additional CSS.

/* Hide product meta such as SKU and category */
.product_meta { display: none; }

/* Style and center the contact button */
.woocommerce .button.alt {
    display: inline-block;
    margin-top: 10px;
    text-align: center;
    background-color: #14a085;
}

/* Remove any leftover price spacing */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    display: none !important;
}

Click Publish to save. This step is worth the few extra minutes on agency-run sites or when you are showcasing high-ticket products where presentation reflects brand quality.

Advanced: Conditional and Role-Based Catalog Mode

The basic setup hides everything from everyone. Often you want something smarter, like a public catalog with full shopping for approved wholesale customers. Because you are working in code, this is straightforward.

Show prices and cart only to logged-in wholesale customers

This version keeps catalog mode for guests and standard visitors, but lets a custom wholesale_customer role buy as normal. Adjust the capability or role check to match your store.

add_action( 'wp', 'instawp_conditional_catalog_mode' );

function instawp_conditional_catalog_mode() {
    // Approved wholesale customers see the full store.
    if ( current_user_can( 'wholesale_customer' ) ) {
        return;
    }

    // Everyone else gets catalog mode on storefront pages.
    if ( is_shop() || is_product_category() || is_product() || is_product_tag() ) {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        add_filter( 'woocommerce_get_price_html', '__return_empty_string' );
    }
}

Block the cart and checkout pages entirely

Hiding the button does not stop someone reaching the cart through a saved link. To fully lock a catalog-only store, redirect the cart and checkout pages back to the shop.

add_action( 'template_redirect', 'instawp_catalog_block_cart_checkout' );

function instawp_catalog_block_cart_checkout() {
    if ( is_cart() || is_checkout() ) {
        wp_safe_redirect( home_url( '/shop/' ) );
        exit;
    }
}

These two snippets are exactly the kind of logic plugins charge a premium for, and you get them in a handful of lines with no extra dependency. For deeper customization, the official WooCommerce template structure guide maps every hook you can target.

Test, Version, and Deploy Safely With InstaWP

Custom code should never go straight to a live store. Test it first, especially when several client sites are involved. This is where a managed platform built for the full WordPress lifecycle pays off.

Test before you push

InstaWP launches a working WooCommerce site in one click, from scratch or cloned from your live store. On that copy you can confirm how hidden buttons and prices affect the layout, try different button placements, and verify the snippets play nicely with your theme and other customizations before anyone sees the change.

Deploy with InstaWP Connect

Already running a live store? Add the InstaWP Connect plugin to mirror changes safely. From there you can push tested edits from staging to production with 2-way sync, manage every WooCommerce store from one dashboard, and monitor uptime and performance while your catalog mode stays intact. If something looks off, site versioning lets you roll back in seconds.

Did you know?

Every InstaWP site is MCP-ready with a single toggle. With InstaMCP 1.1 you can connect an AI assistant like Claude or ChatGPT to your store and ask it, in plain English, to apply catalog mode, hide prices, or add the contact button for you, instead of editing functions.php by hand.

Key Use Cases for WooCommerce Catalog Mode

Catalog mode is not just a workaround. It is a deliberate configuration that fits several real scenarios.

Product display without selling

Show off inventory without inviting purchases. This suits new product launches, prototype showcases, and informational displays where you want browsing without a cart.

WooCommerce B2B store setup

Many wholesalers do not publish prices. Catalog mode hides both prices and the cart, then offers a Contact Us button so buyers can request a quote. That creates a negotiation-first experience built for B2B.

Temporary maintenance state

Need to pause sales during an upgrade or a stock check? Catalog mode stops transactions without taking the site offline. Shoppers keep browsing while your store stays in a read-only state.

Lead generation and quote requests

If conversations convert better than instant checkouts for your business, catalog mode channels interest toward inquiry forms, chat, or email instead of the cart.

Common Mistakes to Avoid

Catalog mode without a plugin is simple, but a few slips can break a layout or take a store down. Watch for these.

Editing the parent theme directly

Adding code to the parent theme’s functions.php means losing it all on the next theme update. Always use a child theme, or edit inside InstaWP’s code editor where versioning gives you rollback protection.

Skipping the backup

One stray bracket can white-screen a live store. Clone the site or snapshot a version before every change so recovery is instant.

Leaving old plugin shortcodes behind

If you previously used a catalog plugin, remove any leftover shortcodes or styling. Stragglers can clash with your code and expose buttons you meant to hide.

Hiding only some elements

Hiding the cart but not the price, or the reverse, confuses shoppers. Disable all purchase-related elements together and replace them with a single clear call to action.

Editing live without testing

Even small edits can conflict with a theme or extension. Staging the change on InstaWP first lets you validate it across screen sizes before it touches production.

Ready to Enable Catalog Mode the Smarter Way?

Turning your store into a catalog mode without plugin cleans up the storefront and hands you full control over performance, layout, and the customer journey. Remove the Add to Cart button, hide prices, and add a Contact Us button, and a transactional shop becomes a focused product showcase that drives conversations.

Whether you are building a WooCommerce B2B store, pausing sales during maintenance, or testing catalog mode for a campaign, InstaWP helps you move faster. From spinning up a WooCommerce sandbox in seconds, to editing code in-browser, to managing live stores with InstaWP Connect, your workflow stays streamlined and reversible. And because InstaWP is a managed WordPress hosting platform, the same place you test in can host your store in production.

Build and test your catalog store risk-free

Spin up a WooCommerce sandbox in seconds, try the code on a safe copy, and ship when it is ready. Add a card and get $25 in free credits.

Get started free

Frequently Asked Questions

How do I hide the Add to Cart button in WooCommerce without a plugin?

Add a PHP function to your child theme’s functions.php that uses remove_action on the woocommerce_after_shop_loop_item and woocommerce_single_product_summary hooks. Wrapping it in conditional tags on the wp hook keeps it limited to storefront pages. On InstaWP you can add this safely from the in-browser code editor.

How do I remove product prices in WooCommerce without a plugin?

Use the woocommerce_get_price_html filter and return an empty string. Prices disappear on archive and single product pages, while stock and inventory tracking keep working behind the scenes. This is the standard approach for B2B and quote-based catalogs.

How do I use WooCommerce as a catalog only?

Combine three snippets: remove the Add to Cart button, hide prices, and add a Contact Us button. For a fully locked catalog, also redirect the cart and checkout pages back to the shop. The result is a browse-only store with no purchasing.

Can I show a product catalog without a shopping cart?

Yes. Removing the Add to Cart button and redirecting the cart and checkout pages gives you a WordPress product catalog with no shopping cart, while still showing images, descriptions, and specifications.

Can I hide prices only for logged-out visitors?

Yes. Use a conditional check such as current_user_can or is_user_logged_in inside your function, so catalog mode applies to guests while approved wholesale customers see prices and the cart as normal.

Does WooCommerce catalog mode hurt SEO?

No. As long as your product pages stay published and indexable, hiding prices and the cart does not harm SEO. Search engines still crawl your product titles, descriptions, and images.

Is catalog mode better than a maintenance plugin?

For pausing sales while keeping products visible, yes. Catalog mode hides pricing and checkout but leaves the storefront browsable, whereas a maintenance plugin usually hides the entire site from visitors.

How do I test catalog mode safely before going live?

Create a staging site or sandbox on InstaWP, apply the code there, and check the layout and interactions. If you have a live store, connect it with InstaWP Connect to edit code, version your changes, and push to production with 2-way sync.

Neha Sharma

Content Writer Excecutive, InstaWP

Neha loves creating content for the InstaWP from her lazy couch. With a passion to learn and deliver, she aspires to be a dynamic content strategist, constantly honing her skills to inspire and engage her audience. When she’s not writing, she’s likely brainstorming new ideas, always aiming to craft stories that resonate.
Like the read? Then spread it…
Facebook
Pinterest
LinkedIn
Twitter
You might also like

Get $25 in free credits — start building today.

Create your first site and unlock all premium features today.

Request demo

Wondering how to integrate InstaWP with your current workflow? Ask us for a demo.

Contact Sales

Reach out to us to explore how InstaWP can benefit your business.