WooCommerce - como exibir a categoria do produto acima do produto? [fechadas]

3

Sou novato em modificar o wooCommerce. Espero que alguém possa me ajudar com um problema que estou tendo ao tentar fazer uma pequena alteração no plug-in para atender a uma solicitação do meu cliente.

Estou tentando modificar o WooCommerce para exibir o nome da categoria de cada produto. Eu quero que o nome da categoria seja mostrado acima da imagem do produto na página principal da loja . (a vista onde muitos produtos são mostrados na tela de uma só vez)

Pesquisei e não consigo encontrar como chamar a categoria produto > para obter o nome da categoria de cada produto exibido.

Nos arquivos do wooCommerce, encontrei o content-product.php
(em templates / content-product.php)

e gostaria de injetar a categoria para cada produto adicionando a esta ação: do_action( 'woocommerce_before_shop_loop_item_title' );

Eu entendo que posso adicionar uma função no functions.php do meu tema para injetar um novo código no '' woocommerce_before_shop_loop_item_title '

mas não consigo descobrir como obter a categoria para cada produto.

alguém pode ajudar? ou me diga onde eu poderia encontrar a resposta?

qualquer ajuda será muito apreciada, obrigado!

    
por user28546 07.03.2013 / 14:33

2 respostas

13

O título do produto é adicionado ao gancho woocommerce_single_product_summary na prioridade 5, portanto você desejará adicionar ao mesmo gancho uma prioridade menor (anterior). Você adicionaria isso ao arquivo functions.php do seu tema. Eu presumo que quando você diz "categoria" você quer dizer a categoria de produto WooCommerce, então isso deve retornar o primeiro e imprimi-lo antes do título do produto:

function wpa89819_wc_single_product(){

    $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );

    if ( $product_cats && ! is_wp_error ( $product_cats ) ){

        $single_cat = array_shift( $product_cats ); ?>

        <h2 itemprop="name" class="product_category_title"><span><?php echo $single_cat->name; ?></span></h2>

<?php }
}
add_action( 'woocommerce_single_product_summary', 'wpa89819_wc_single_product', 2 );
    
por helgatheviking 10.03.2013 / 13:56
3

você precisa da função get_categories, que aceita os seguintes argumentos:

get_categories( $separator, $before, $after )

então, é simples (assumindo apenas uma categoria por produto), apenas adicione <?php echo $product->get_categories(); ?> ao seu conteúdo-product.php (linha 53). Se você tem mais categorias, pode fazê-lo na página de um único produto:

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' ); ?>
    
por Ewout 10.03.2013 / 13:29

Tags