add_filter('woocommerce_get_breadcrumb', 'precise_custom_woocommerce_breadcrumbs', 20, 2);
function precise_custom_woocommerce_breadcrumbs($crumbs, $breadcrumb) {
// הסרת עמוד הבית
if (isset($crumbs[0]) && $crumbs[0][0] == get_bloginfo('name')) {
array_shift($crumbs);
}
// אם אנחנו בעמוד מוצר
if (is_product()) {
$product = wc_get_product();
$product_categories = get_the_terms($product->get_id(), 'product_cat');
if ($product_categories) {
// מציאת הקטגוריה העמוקה ביותר
$deepest_category = null;
foreach ($product_categories as $category) {
if (!$deepest_category || count(get_ancestors($category->term_id, 'product_cat')) >
count(get_ancestors($deepest_category->term_id, 'product_cat'))) {
$deepest_category = $category;
}
}
if ($deepest_category) {
// הכנת מערך חדש של פירורי לחם
$new_crumbs = [];
// קבלת ההורים של הקטגוריה
$term_parents = get_ancestors($deepest_category->term_id, 'product_cat');
$term_parents = array_reverse($term_parents);
// הוספת ההורים
foreach ($term_parents as $parent_id) {
$parent_term = get_term($parent_id, 'product_cat');
$new_crumbs[] = [$parent_term->name, get_term_link($parent_term)];
}
// הוספת הקטגוריה העמוקה ביותר
$new_crumbs[] = [$deepest_category->name, get_term_link($deepest_category)];
// הוספת שם המוצר
$new_crumbs[] = [$product->get_name(), get_permalink($product)];
// החלפת הפירורי לחם המקוריים
$crumbs = $new_crumbs;
}
}
}
// אם אנחנו בדף קטגוריה
if (is_product_category()) {
$current_category = get_queried_object();
$ancestors = get_ancestors($current_category->term_id, 'product_cat');
$ancestors = array_reverse($ancestors);
// הכנת מערך חדש של פירורי לחם
$new_crumbs = [];
// הוספת ההורים
foreach ($ancestors as $ancestor_id) {
$ancestor_term = get_term($ancestor_id, 'product_cat');
$new_crumbs[] = [$ancestor_term->name, get_term_link($ancestor_term)];
}
// הוספת הקטגוריה הנוכחית
$new_crumbs[] = [$current_category->name, get_term_link($current_category)];
// החלפת הפירורי לחם המקוריים
$crumbs = $new_crumbs;
}
return $crumbs;