Mostrar los productos por categorías

    Si en tu tienda no quieres mostrar solo las categorías, o solo los productos, puedes mostrar una sección por cada categoría. Modifica el atributo limit del shortcode para cambiar la cantidad de productos de cada categoría.

    /* Separar productos por categorias */
    //1. Ocultamos los productos de la tienda
    add_action('pre_get_posts', 'nwp_ocultar_productos_tienda_woo');
    
    function nwp_ocultar_productos_tienda_woo($q) {
        if (!$q - > is_main_query()) return;
        if (!$q - > is_post_type_archive()) return;
        if (!is_admin() && is_shop()) {
            $q - > set('post__in', array(0));
        }
        remove_action('pre_get_posts', 'nwp_ocultar_productos_tienda_woo');
    }
    
    //2. Ocultamos el mensaje de error de que no hay productos
    remove_action('woocommerce_no_products_found', 'wc_no_products_found');
    
    //3. Agregamos la visualizacion de productos separados por categorias
    add_action('woocommerce_no_products_found', 'nwp_4_productos_cat_woo');
    
    function nwp_4_productos_cat_woo() {
        $args = array(
            'parent' => 0,
            'hide_empty' => true,
            'taxonomy' => 'product_cat',
            'fields' => 'slugs',
        );
        $categories = get_categories($args);
        foreach($categories as $category_slug) {
            $term_object = get_term_by('slug', $category_slug, 'product_cat');
            echo '<hr><h2>'.$term_object - > name.
            '</h2>';
            echo do_shortcode('[products limit="4" columns="4" category="'.$category_slug.
                '"]');
            echo '<p><a href="'.get_term_link($category_slug, 'product_cat').
            '">Ver todos los productos en '.$term_object - > name.
            '&rarr;</a>';
        }
    }

    Herramientas relacionadas

    • WooCommerce

      El plugin para crear tiendas online por excelencia. Tanto de productos físicos como digitales. Es la base para prácticamente cualquier proyecto web que acepte pagos online.