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!
PHP Snippet 1: Add Prefix to Category Breadcrumb Items
/**
* @snippet Add Prefix to Category @ WooCommerce Breadcrumb
* @how-to businessbloomer.com/woocommerce-customization
* @author Rodolfo Melogli, Business Bloomer
* @testedwith WooCommerce 3.9
* @community https://businessbloomer.com/club/
*/
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 businessbloomer.com/woocommerce-customization
* @author Rodolfo Melogli, Business Bloomer
* @testedwith WooCommerce 3.9
* @community https://businessbloomer.com/club/
*/
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;
}
Hi Rodolfo.. how one remove the product name from the breadcrumb..
For example, Currently its like PAGE1 > PAGE2 > PRODUCT1 …
I want it like PAGE1 > PAGE2.
Hi Saki, 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!
Hi sir,
is there a way to change the breadcrumb name of brands for the pwb plugin.
in place of : Acceuil – Brands – brand_name ==> i need : Acceuil – Partenaire – name_brand
Thanks
Hi Marnissi, 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!
Hi There,
In context to Snippet 1. I want to replace the taxonomy ‘category’ with ‘woocommerce_product_vendors’ name, is it possible?
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!