WooCommerce Bucle Solo para Productos en Oferta

28 nov 2014, 18:43:17
Vistas: 20.5K
Votos: 1

Estoy tratando de seleccionar solo productos En Oferta en un bucle de WooCommerce a través de un fragmento de código. Para eso intenté usar el código de abajo, pero está seleccionando todos los productos. Solo quiero seleccionar productos En Oferta en el bucle.

<!-- Productos Nuevos WooCommerce -->
<ul class="products">
    <?php
        $args = array(
            'post_type' => 'product',
            'posts_per_page' => 4
            );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                woocommerce_get_template_part( 'content', 'product' );
            endwhile;
        } else {
            echo __( 'No se encontraron productos' );
        }
        wp_reset_postdata();
    ?>
</ul>
<!-- Productos Nuevos WooCommerce -->

Entonces, ¿qué debería hacer para lograr lo que deseo?

7
Comentarios

Los plugins y temas de terceros no son tema de discusión aquí. Deberías contactar al desarrollador o preguntar en el foro de soporte de WooCommerce en wordpress.org

Robert hue Robert hue
28 nov 2014 19:03:42

@Roberthue Es realmente gracioso lo que dices aquí. :P Si tienes tiempo, busca WooCommerce en este sitio web y mira cuántas preguntas puedes ver aquí. Si no puedes, abre http://wordpress.stackexchange.com/search?q=WooCommerce y mira allí.

Muhammad Hassan Muhammad Hassan
29 nov 2014 05:57:55

Las preguntas sobre WooCommerce no son tema de discusión. Estamos ocupados cerrando todas esas preguntas si no te has dado cuenta. Tu pregunta también será cerrada por fuera de tema. Lo siento por eso. Gracias

Pieter Goosen Pieter Goosen
29 nov 2014 06:07:48

Por favor revisa estos hilos relacionados en meta

Pieter Goosen Pieter Goosen
29 nov 2014 06:11:26

Sí, hay muchas preguntas sobre plugins de terceros en WPSE pero eso no las hace correctas. Hacer preguntas en el lugar adecuado te dará mejor y más rápido soporte.

Robert hue Robert hue
29 nov 2014 06:51:33

Entonces ustedes primero cierran la etiqueta WooCommerce para que nadie la mencione nuevamente. Primero perfecciónense ustedes mismos y luego pídanlo a los demás.

Muhammad Hassan Muhammad Hassan
29 nov 2014 07:28:33

¿Entonces están permitidas las preguntas sobre WooCommerce en http://stackoverflow.com/search?q=WooCommerce

Muhammad Hassan Muhammad Hassan
29 nov 2014 07:29:54
Mostrar los 2 comentarios restantes
Todas las respuestas a la pregunta 1
2

Finalmente, tengo el código. Usando el código a continuación, puedes seleccionar productos En Oferta que sean Producto Simple En Oferta o Producto Variable En Oferta. Ten en cuenta que este código seleccionará cada publicación en la que hayas añadido un precio de oferta. Así que evita añadir el precio en este campo (mostrado en la imagen adjunta) si tu precio de oferta es el mismo que el precio original, porque entonces no será un producto en oferta, pero este código lo incluirá en los bucles de productos en oferta.

Captura de pantalla del formulario de datos de producto de WooCommerce

<!-- Productos En Oferta de WooCommerce -->
<ul class="products">
    <?php
        $args = array(
            'post_type'      => 'product',
            'posts_per_page' => 4,
            'meta_query'     => array(
                    'relation' => 'OR',
                    array( // Tipo de productos simples
                        'key'           => '_sale_price',
                        'value'         => 0,
                        'compare'       => '>',
                        'type'          => 'numeric'
                    ),
                    array( // Tipo de productos variables
                        'key'           => '_min_variation_sale_price',
                        'value'         => 0,
                        'compare'       => '>',
                        'type'          => 'numeric'
                    )
                )
        );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                woocommerce_get_template_part( 'content', 'product' );
            endwhile;
        } else {
            echo __( 'No se encontraron productos' );
        }
        wp_reset_postdata();
    ?>
</ul>
<!-- Productos En Oferta de WooCommerce -->
29 nov 2014 11:03:15
Comentarios

Desafortunadamente, esto no parece funcionar para mí con productos variables. Falta el campo "_min_variation_sale_price". Probablemente WooCommerce lo cambió con los años.

Jordan Carter Jordan Carter
26 mar 2018 20:30:08

Lo siguiente funcionó para mí. Agrega a los argumentos de la consulta: 'post__in' => wc_get_product_ids_on_sale(),

Jordan Carter Jordan Carter
26 mar 2018 20:39:47