Как вывести категорию товара в корзине woocommerce
В файле корзины cart.php Woocommerce есть таблица, которая выводить данные о товаре (цена, количество и тд). Подскажите, как доработать код таким образом, чтобы в строке с названием товара (product-name), выводилась родительская категория? Код:
<td class="product-name" data-title="<?php esc_attr_e( 'Product', 'woocommerce' ); ?>">
<?php
if ( ! $product_permalink ) {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ) . ' ' );
} else {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );
// Meta data
echo wc_get_formatted_cart_item_data( $cart_item );
// Backorder notification
if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '<p class="backorder_notification">' . esc_html__( 'Available on backorder', 'woocommerce' ) . '</p>', $product_id ) );
}
?>
</td>
Ответы (2 шт):
Автор решения: Az Rieil
→ Ссылка
Добавьте в нужный контейнер
<?php
$categories = get_terms( $_product->get_id() , [
'parent' => 0 // only top level categories
'taxonomy' => 'product_cat',
'fields' => 'names'
] );
echo implode( ', ', $categories );
?>
Автор решения: taviskaron09
→ Ссылка
В ответе Az Rieil не все гладко, предлагаю мой вывод:
$categories = get_terms( array( 'taxonomy' => 'product_cat', 'type' => 'product', 'parent' => 0) );
foreach ($categories as $categorie) {
echo '<p>Category: <a href="'
. get_category_link( $categorie->term_id )
. '" title="'
. sprintf( __( "View all posts in %s" ), $categorie->name )
. '" ' . '>' . $categorie->name.'</a> </p> ';
}