Păi, mi-a luat ceva timp să mă prind. Nu mi-a fost chiar ușor să-mi dau seama printre câteva zeci de căutări pe Google și încercat soluții custom. De multe ori creem niște categorii doar pentru afișarea unor produse anume pe homepage, în widgeturi sau alte spații special amenajate pentru promoții. Este inestetic să vezi o categorie de genul „Promo1” sau „Campanie Ianuarie” sau cel puțin asta este părerea mea. Poate chiar există lume care dorește să aibă pe pagina de produs scris cu verde sau roșu: „Aparate de bărbierit”, „Promoții sincere”.
Am încercat soluția custom prima dată
Dap… a fost un eșec. Mi-am imaginat că reușesc să fac ușor un exclude. Și Tavi, la fel a crezut. Nope! Iată failul mai jos:
$categories = $product->get_category_ids(); $categoriesToRemove = array(53,76,77,78); // my ids to exclude foreach ( $categoriesToRemove as $categoryKey => $category) { if (($key = array_search($category, $categories)) !== false) { unset($categories[$key]); } } $categoriesNeeded = $categories;
Apoi
echo wc_get_product_category_list( $product->get_id(), ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', count($categories), 'woocommerce' ) . ' ', '</span>' );
Apoi am dat peste o variantă funcțională
add_filter( 'get_the_terms', 'custom_product_cat_terms', 20, 3 ); function custom_product_cat_terms( $terms, $post_id, $taxonomy ){ // HERE below define your excluded product categories Term IDs in this array $category_ids = array( 53,76,77,78 ); if( ! is_product() ) // Only single product pages return $terms; if( $taxonomy != 'product_cat' ) // Only product categories custom taxonomy return $terms; foreach( $terms as $key => $term ){ if( in_array( $term->term_id, $category_ids ) ){ unset($terms[$key]); // If term is found we remove it } } return $terms; }
Codul se pune, evident, în functions.php în tema de WordPress. Iar răspunsul de la cel care m-a ajutat a fost super succint. Practic, el a folosit get_the_terms, care e o funcție de bază și trece peste formatarea altor funcții alterate de tema de WP, de exemplu.
Sper că v-a fost util articolul! Și succes în implementarea soluției!