How to Change WooCommerce Shop Page Title

In this tutorial, i will demonstrate 2 code snippets to update or hide the page title for default WooCommerce Shop page.

The default Shop page for WooCommerce online store will show the “Shop” at the top of products row.

[caption id="attachment_703" align="aligncenter" width="703"]WooCommerce Default Shop Page Title WooCommerce Default Shop Page Title[/caption]


Option 1 : Change Shop Page Title

In order to change the title from “Shop” to any title, you can put below code to your  end of your theme functions.php file:

add_filter( 'woocommerce_page_title', 'custom_woocommerce_page_title');
function custom_woocommerce_page_title( $page_title ) {
  if( $page_title == 'Shop' ) {
    return "WooCommerce Demo Products";
[caption id="attachment_704" align="aligncenter" width="704"]WooCommerce Custom Shop Page Title WooCommerce Custom Shop Page Title[/caption]



Option 2 : Hide Shop Page Title

If you want to hide the “Shop” page title, you can put below code to your theme functions.php:

[caption id="attachment_705" align="aligncenter" width="706"]Hide WooCommerce Shop Page Title Hide WooCommerce Shop Page Title[/caption]


Hope above snippets can help you to customize your shop easily. Cheers!

Share this:


  1. I came to this code, based on yours:

    add_filter( ‘woocommerce_page_title’, ‘custom_woocommerce_page_title’);
    function custom_woocommerce_page_title( $page_title ) {
    if( $page_title == ” ) {
    return “some custom name”;
    return $page_title;

    It could be used in case you don’t link the main (default) page of the WooCommerce shop to any page in WordPress, which results in a WooCommerce main page not showing any title at all. Hence the ($page_title == ”). My ‘else’ addition in the code forces other (category) pages in the shop to still show their original titles.

    I’m not a coder and hadn’t come to this solution without you. So thank you very much, I appreciate your posting.

  2. Hi,

    Great tips! And a potential life saver for me!

    Instead of keeping to a fixed page title as in Option 1, Terry is there a way to show the category of the respective product instead? Eg, if the product details page can display the Category the product belongs to as the page title..

    Can someone can help me.

    Thanks in advance!

  3. Hi Terry,

    Its more like just the category [Product Category Name] will do.. however, it must be able to fetch the correct category the currently displayed product belongs to.. FYI, i only use 1 level category..

    Thanks terry, for responding..!


  4. Hi Terry. thank you for your post. I’m using Jupiter Responsive Magazine Theme with Woocommerce. I want to change the default tile “Our Shop” in another title. I used your code in function.php changing Shop with Our Shop ma it’s no work. Any suggestions?
    Thanks in advance

  5. Hello Terry. I appreciate what you did here. the one line code to hide the title is really smart. I´ve seen others saying you couldn´t do it that way, but you´re the man!

    I´d like to do one more thing on the shop page which is removing the text “showing all x results” that appears under the title. Do you have a code for that also?

  6. I get this error when I try to add this to my functions.php
    Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in /home/****/public_html/wp-includes/plugin.php on line 214

    cant figure out what to do

  7. the code from above to remove shop title

    is there something missing from plugins php?

  8. Hi, Im trying to work out a version of this code that will only alter the heading of product-tag archives. For example on this page:

    The product tag is ‘south east england’ but I need the title to read ‘Shop for Flying Lessons in South East England’. Is there a way to add the phrase ‘Shop for Flying Lessons in’ before the tag title on every product-tag archive page?


  9. For anyone getting the error:

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in /*****/plugin.php on line 214

    Use this code instead:

    function sswoo_show_page_title() {
    return false;

Leave a Comment.