Suporte » Ajustando o WordPress » Paginação na exibição de produtos em promoção (Woocommerce)

  • Resolvido richardzkr

    (@richardzkr)


    Fala pessoal, beleza?

    Seguinte, eu estou com um problema um pouco urgente e não consigo resolver de jeito nenhum.

    Depois de muito fuçar em tutoriais, consegui uma query que exibe somente os produtos que estão em promoção numa página. Até aí perfeito.

    O problema é, ele se limita a 12 produtos, e quando eu tentei adicionar a paginação, eu não consegui de jeito nenhum fazer essa query paginar.

    Alguém poderia me dar uma ajuda!?

    Segue o código da página de template:

    <?php
    /**
     * Template Name: Promoções
     *
     * The archives page template displays a conprehensive archive of the current
     * content of your website on a single page.
     *
     * @package WooFramework
     * @subpackage Template
     */
    
     global $woo_options;
     get_header();
    ?>
        <div id="content" class="page col-full">
    
        	<?php woo_main_before(); ?>
    
    		<section id="main" class="col-left">
    
    			    <header>
    			    	<h1><?php the_title(); ?></h1>
    			    </header>
    
    			    <section class="entry fix">
    
        <?php do_action('woocommerce_archive_description'); ?>
    
        <?php
        $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
    
        global $woocommerce_loop, $customWooQuery;
        $atts = array(
            'per_page' => '12',
            'columns' => '3',
            'orderby' => 'date',
            'order'   => 'desc',
    		'paged'   => $paged
        );
        extract($atts);
        // Get products on sale
    		$product_ids_on_sale = wc_get_product_ids_on_sale();
    
    		$meta_query = WC()->query->get_meta_query();
    		$args = array(
    			'posts_per_page'	=> $per_page,
    			'orderby' 			=> $orderby,
    			'order' 			=> $order,
    			'paged'             => $paged,
    			'post_status' 		=> 'publish',
    			'post_type' 		=> 'product',
    			'meta_query' 		=> $meta_query,
    			'post__in'			=> array_merge( array( 0 ), $product_ids_on_sale )
    		);
        $customWooQuery = new WP_Query(apply_filters('woocommerce_shortcode_products_query', $args, $atts));
        ?>
    
        <?php if ($customWooQuery->have_posts()) : ?>
            <div class="woocommerce columns-<?php echo $columns ?>">
                <?php woocommerce_product_loop_start(); ?>
                <?php while ($customWooQuery->have_posts()) : $customWooQuery->the_post(); ?>
                    <?php wc_get_template_part('content', 'product'); ?>
                <?php endwhile; // end of the loop.  ?>
                <?php woocommerce_product_loop_end(); ?>
            </div>
        <?php endif; ?>
        <?php wp_reset_postdata(); ?>
    
        <?php do_action('woocommerce_after_shop_loop'); ?>			 												  
    
    				</section><!-- /.entry -->
    
            </section><!-- /#main -->
    
            <?php woo_main_after(); ?>
    
            <?php get_sidebar(); ?>
    
        </div><!-- /#content -->
    
    <?php get_footer(); ?>

    Alguém consegue me dar uma luz pra essa paginação!?

    Obrigado!

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • Olá richardzkr, tudo bom?

    Eu fiz um loop personalizado utilizando a paginação do plugin

    https://wordpress.org/plugins/wp-pagenavi/

    Aqui funcionou perfeitamente, da uma olhada como eu fiz:

    <?php
    /**
     * Template Name: Promoções
     *
     * The archives page template displays a conprehensive archive of the current
     * content of your website on a single page.
     *
     * @package WooFramework
     * @subpackage Template
     */
    
    get_header(); ?>
    
    <?php get_sidebar(); ?>
    
    <div id="primary" class="col-md-10">
        <div id="content" role="main">
            <?php
            $args = array(
                'post_type'      => 'product',
                'posts_per_page' => 1,
                'meta_query'     => array(
                    'relation' => 'OR',
                    array( // Simple products type
                        'key'           => '_sale_price',
                        'value'         => 0,
                        'compare'       => '>',
                        'type'          => 'numeric'
                    ),
                    array( // Variable products type
                        'key'           => '_min_variation_sale_price',
                        'value'         => 0,
                        'compare'       => '>',
                        'type'          => 'numeric'
                    )
                ),
                'paged'     => get_query_var('paged')
            );
    
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    
            // The Query
            $the_query = new WP_Query( $args );
    
            // The Loop
            if ($the_query->have_posts()) : 
    
                while ($the_query->have_posts()) : $the_query->the_post(); ?>
                <article class="vc_col-sm-12 row">
    
                <?php wc_get_template_part( 'content', 'product' ); ?>
    
                </article>
                <?php
                endwhile;
                // Page navigation.
                wp_pagenavi( array( 'query' => $the_query ) );
    
            wp_reset_query();
            endif; ?>
        </div><!-- #content -->
    </div><!-- #primary -->
    <?php get_footer(); ?>
    Criador do tópico richardzkr

    (@richardzkr)

    Perfeito! Funcionou certinho aqui cara!

    Só instalei o plugin e fiz as alterações do tema, e ficou top! inclusive melhor que a paginação que já tinha no Woocommerce.

    Muito obrigado pela ajuda! =)

    Denada 😉

    CHR Designer boa noite
    Sou inciante.
    Instalei o tema Mystile em localhost com wampServer e não consigo de jeito nenhum fazer a paginação na pagina shop, categorias etc
    Poderia me dar uma ajuda
    Grande abraço

    Olá, fabioerika

    Tenta dar uma olhada nessa documentação, do proprio WooCommerce:

    http://docs.woothemes.com/document/woo_pagination/

    Também se precisar utilize essas functions para alterar número de produto por página ou por linha:

    http://docs.woothemes.com/document/change-number-of-products-displayed-per-page/

    http://docs.woothemes.com/document/change-number-of-products-per-row/

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Paginação na exibição de produtos em promoção (Woocommerce)’ está fechado para novas respostas.