//Dynamic Woo Categories Menu
add_filter('wp_nav_menu_items', 'add_product_cats', 10, 2);
function add_product_cats ( $items, $args ){
if( $args->theme_location == 'main-menu' ){
$cats = '';
$qargs = array(
'taxonomy' => 'product_cat',
'hide_empty' => false,
'meta_key' => 'order',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'parent' => 0,
'exclude' => 45,
);
$term_query = new WP_Term_Query( $qargs );
if ( ! empty( $term_query->terms ) ) {
foreach ( $term_query->terms as $category ) {
$qsubargs = array(
'taxonomy' => 'product_cat',
'hide_empty' => false,
'meta_key' => 'order',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'parent' => $category->term_id,
'exclude' => 45,
);
$subterm_query = new WP_Term_Query( $qsubargs );
if ( ! empty( $subterm_query->terms ) ) {
$cats .= '<li itemscope="itemscope" itemtype="
https://www.schema.org/SiteNavigationElement" class="menu-item menu-item-type-post_type menu-item-object-page nav-item menu-item-has-children dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" title="' . $category->name . '" href="'. get_term_link( $category->slug, 'product_cat' ) .'" aria-haspopup="true">' .
$category->name .
' <span class="caret"></span>
</a>
<ul role="menu" class=" dropdown-menu" >';
foreach ( $subterm_query->terms as $subcategory ) {
if (carbon_get_term_meta($subcategory->term_id, 'crb_icon', $type = null)) {
$img = wp_get_attachment_image( carbon_get_term_meta($subcategory->term_id, 'crb_icon', $type = null), 'icon' );
} else {
$img = '';
}
$cats .= '<li itemscope="itemscope" itemtype="
https://www.schema.org/SiteNavigationElement" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-' . $subcategory->term_id . '">
<a class="dropdown-item" title="' . $subcategory->name . '" href="'. get_term_link( $subcategory->slug, 'product_cat' ) .'">' .
$img . ' ' . $subcategory->name .
' </a>
</li>';
}
$cats .= ' </ul>
</li>';
} else {
$cats .= '<li itemscope="itemscope" itemtype="
https://www.schema.org/SiteNavigationElement" class="menu-item menu-item-type-post_type menu-item-object-page nav-item menu-item-' . $category->term_id . '">
<a class="nav-link" title="' . $category->name . '" href="'. get_term_link( $category->slug, 'product_cat' ) .'">' .
$category->name .
' </a>
</li>';
}
}
}
$items = $cats . $items;
}
return $items;
}
кривовато, но работает