Created
September 8, 2014 10:38
-
-
Save bluvertigo/9b972e38bf17d2679d6b to your computer and use it in GitHub Desktop.
Shortocode - Lista Categorie e Brands
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function woocommerce_subcats_from_brand( $product_parent_cat_NAME, $title_widget ) { | |
global $wpdb, $post; | |
//$IDbyNAME = get_term_by('slug', $parent_cat_NAME, 'product_cat'); | |
//$product_cat_ID = $IDbyNAME->term_id; | |
$IDproductByNAME = get_term_by('slug', $product_parent_cat_NAME, 'product_cat'); | |
$product_parent_cat_ID = $IDproductByNAME->term_id; | |
$args = array( | |
'hierarchical' => 1, | |
'show_option_none' => '', | |
'hide_empty' => 0, | |
'parent' => '', | |
'taxonomy' => 'product_brand' | |
); | |
$brands = get_categories($args); | |
echo '<div class="widget woocommerce widget_product_categories"><h3>'. $title_widget .'</h3>'; | |
echo '<ul class="product-categories parent" >'; | |
foreach ($brands as $brand) { | |
$link = get_term_link( $brand->slug, $brand->taxonomy ); | |
echo '<li class="cat-item cat-parent parent"><a href="'. $link .'">'.$brand->name.'</a></li>'; | |
$sql = "SELECT DISTINCT wt.* FROM wp_posts p | |
INNER JOIN wp_term_relationships r ON r.object_id=p.ID | |
INNER JOIN wp_term_taxonomy t ON t.term_taxonomy_id = r.term_taxonomy_id | |
INNER JOIN wp_terms wt on wt.term_id = t.term_id | |
WHERE p.ID IN ( | |
SELECT post.ID FROM `wp_posts` as post | |
INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID | |
WHERE `post_type` = 'product' | |
AND `post_status` = 'publish' | |
AND rs.term_taxonomy_id = ". $brand->term_id ." | |
) AND t.taxonomy='product_cat' | |
AND t.parent = " . $product_parent_cat_ID; | |
$prod_categories = $wpdb->get_results( $sql ); | |
// VISUALIZZO IL SOTTO MENU DEL BRAND | |
$view_brand = false; | |
if( isset($_GET['product_brand']) AND ($_GET['product_brand'] == $brand->slug) ) { | |
$view_brand = true; | |
} | |
if( is_singular('product') ) { | |
$current_brands = get_the_terms( $post->ID, 'product_brand', true); | |
foreach ($current_brands as $current_brand) { | |
if($current_brand->slug == $brand->slug) $view_brand = true; | |
} | |
} | |
if( $prod_categories AND $view_brand ) { | |
echo '<ul class="children">'; | |
foreach ($prod_categories as $prod_category) { | |
echo '<li class="cat-item"><a href="'. get_site_url() .'?product_brand='. $brand->slug .'&product_cat='. $prod_category->slug .'">'. $prod_category->name .'</a></li>'; | |
} | |
echo '</ul>'; | |
echo '</div>'; | |
} | |
} | |
echo '</ul>'; | |
} | |
// Add Shortcode | |
function lista_brands( $atts ) { | |
// Attributes | |
$attr = shortcode_atts( | |
array( | |
'parent_products' => '', | |
'title_widget' => '' | |
), $atts ); | |
// Code | |
woocommerce_subcats_from_brand($atts['parent_products'], $atts['title_widget']); | |
} | |
add_shortcode( 'ipac-lista-brands', 'lista_brands' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment