WooCommerce Bucle Solo para Productos en Oferta
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?

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.
<!-- 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 -->

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.
