WooCommerce: ¿cómo mostrar la categoría del producto por encima del producto? [cerrado]

3

Soy un novato en la modificación de wooCommerce. Espero que alguien pueda ayudarme con un problema que tengo al intentar hacer un cambio menor en el complemento para que se ajuste a una solicitud de mi cliente.

Estoy intentando modificar WooCommerce para mostrar el nombre de la categoría para cada producto. Quiero que el nombre de la categoría se muestre sobre la imagen del producto en la página principal de la tienda . (la vista donde se muestran muchos productos en la pantalla a la vez)

He buscado por todas partes y parece que no encuentro cómo llamar a la categoría de producto & > para obtener el nombre de la categoría de cada producto que se muestra.

En los archivos de wooCommerce, he encontrado content-product.php
(en templates / content-product.php)

y me gustaría inyectar la categoría para cada producto agregando a esta acción: do_action( 'woocommerce_before_shop_loop_item_title' );

Comprendo que puedo agregar una función en las funciones de mi tema.php para inyectar algo de código nuevo en '' woocommerce_before_shop_loop_item_title '

pero no puedo averiguar cómo obtener la categoría para cada producto.

alguien puede ayudar? ¿O dime dónde podría encontrar la respuesta?

cualquier ayuda será muy apreciada, gracias!

    
pregunta user28546 07.03.2013 - 14:33

2 respuestas

13

El título del producto se agrega al enganche woocommerce_single_product_summary en la prioridad 5, por lo que querrá agregar al mismo enganche con una prioridad más baja (anterior). Agregarías esto al archivo functions.php de tu tema. Supongo que cuando dices "categoría" te refieres a la categoría de producto de WooCommerce, por lo que esta debería devolver la primera e imprimirla antes del título del producto:

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 );
    
respondido por el helgatheviking 10.03.2013 - 13:56
3

necesita la función get_categories, que toma los siguientes argumentos:

get_categories( $separator, $before, $after )

así que en su forma simple (asumiendo solo una categoría por producto), simplemente agregue <?php echo $product->get_categories(); ?> a su contenido-producto.php (línea 53). Si tiene más categorías, puede hacerlo como en la página de un solo producto:

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

Lea otras preguntas en las etiquetas