WooCommerce: Rename a Breadcrumb Item

WooCommerce generates shop, category, tag, single product breadcrumbs out of the box. Such breadcrumbs should follow your WooCommerce permalink settings. For example, I use the “Shop base with category” option under WordPress > Permalinks. In my case, by default, a product belonging to category “Uncategorized” has an URL = “https://example.com/shop/uncategorized/product-name/” and its single product page breadcrumbs follow that same rule: “Home / Shop / Uncategorized / Product Name”.

Now, what if I want to rename one of the items? What if I want to replace one of the breadcrumb items with something else? Well, WooCommerce gives us a cool filter called “woocommerce_get_breadcrumb” that we can use to edit the breadcrumb content before displaying it. In this post, we will see how to add a suffix to product categories and also how to replace the product name with the SKU value. Enjoy!

Here’s what happens after applying Snippet 1 below. The category breadcrumb item on the single product page takes a prefix = “Category: ” and is easier to read.

PHP Snippet 1: Add Prefix to Category Breadcrumb Items

/**
 * @snippet       Add Prefix to Category @ WooCommerce Breadcrumb
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.9
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_get_breadcrumb', 'bbloomer_single_product_edit_cat_breadcrumbs', 9999, 2 );

function bbloomer_single_product_edit_cat_breadcrumbs( $crumbs, $breadcrumb ) {
	
	if ( is_product() ) {
		$index = count( $crumbs ) - 2; // cat is always second last item
		$value = $crumbs[$index];
		$crumbs[$index][0] = 'Category: ' . $crumbs[$index][0];
	}
	
	return $crumbs;
}

PHP Snippet 2: Replace Product Name Breadcrumb Item With SKU

/**
 * @snippet       Swap Product with SKU @ WooCommerce Breadcrumb
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.9
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_get_breadcrumb', 'bbloomer_single_product_edit_prod_name_breadcrumbs', 9999, 2 );

function bbloomer_single_product_edit_prod_name_breadcrumbs( $crumbs, $breadcrumb ) {
	
	if ( is_product() ) {
		global $product;
		$index = count( $crumbs ) - 1; // product name is always last item
		$value = $crumbs[$index];
		$crumbs[$index][0] = $product->get_sku();
	}
	
	return $crumbs;
}

Where to add this snippet?

You can place PHP snippets at the bottom of your child theme functions.php file (before "?>" if you have it). CSS, on the other hand, goes in your child theme style.css file. Make sure you know what you are doing when editing such files - if you need more guidance, please take a look at my free video tutorial "Where to Place WooCommerce Customization?"

Does this snippet (still) work?

Please let me know in the comments if everything worked as expected. I would be happy to revise the snippet if you report otherwise (please provide screenshots). I have tested this code with Storefront theme, the WooCommerce version listed above and a WordPress-friendly hosting on PHP 7+.

If you think this code saved you time & money, please join other Business Bloomer supporters and avail of 365 days of WooCommerce benefits. Thank you in advance :)

Need Help with WooCommerce Customization?

Check out these free video tutorials. You can start learning how to customize WooCommerce without unnecessary plugins. Watch me code and learn by example!

  • how-to-edit-woocommerce-with-php-snippets
  • woocommerce-hooks-add_action-list-visual
  • woocommerce-customize-single-product-page-PHP

Rodolfo Melogli

Author, WooCommerce expert and WordCamp speaker, Rodolfo has worked as a WooCommerce freelancer since 2011. His goal is to help entrepreneurs and developers overcome their WooCommerce nightmares. Rodolfo loves travelling, chasing tennis & soccer balls and, of course, wood fired oven pizza.

2 thoughts on “WooCommerce: Rename a Breadcrumb Item

  1. Hi There,

    In context to Snippet 1. I want to replace the taxonomy ‘category’ with ‘woocommerce_product_vendors’ name, is it possible?

    1. Hi Amarnath, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!

Questions? Feedback? Support? Leave your Comment Now!
_____

If you are writing code, please wrap it between: [php]code_here[/php]. Failure to complying with this (as well as going off topic) will result in comment deletion. You should expect a reply in about a week - this is a popular blog but I need to get paid work done first. Please consider joining #BloomerArmada to ask me 1-to-1 WooCommerce questions. Thank you :)

Your email address will not be published. Required fields are marked *