Home » WooCommerce: Rename a Breadcrumb Item

WooCommerce: Rename a Breadcrumb Item

by Tutor Aspire

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 tutoraspire.com FREE
 * @author        Tutor Aspire
 * @testedwith    WooCommerce 3.9
 * @donate $9     https://www.tutoraspire.com
 */

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

function tutoraspire_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 tutoraspire.com FREE
 * @author        Tutor Aspire
 * @testedwith    WooCommerce 3.9
 * @donate $9     https://www.tutoraspire.com
 */

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

function tutoraspire_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;
}

You may also like