Bucla pentru Produse cu Reducere în WooCommerce
Încerc să selectez doar produsele cu reducere într-o buclă WooCommerce folosind un snippet. Am încercat să folosesc codul de mai jos, dar acesta selectează toate produsele. Vreau să selectez doar produsele cu reducere în buclă.
<!-- Produse Noi 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 __( 'Nu s-au găsit produse' );
}
wp_reset_postdata();
?>
</ul>
<!-- Produse Noi WooCommerce -->
Așadar, ce ar trebui să fac pentru a obține ce îmi doresc?

În sfârșit, am obținut codul. Folosind codul de mai jos, puteți selecta produsele La Reducere care sunt fie Produs Simplu La Reducere fie Produs Variabil La Reducere. Rețineți că acest cod va selecta fiecare post în care ați adăugat un preț de reducere. Așadar, evitați să adăugați prețul în acest câmp (afișat în imaginea atașată) dacă prețul dvs. de reducere este același cu prețul original, deoarece atunci nu va fi un produs la reducere, dar acest cod îl va selecta în buclele de produse la reducere.
<!-- Produse WooCommerce La Reducere -->
<ul class="products">
<?php
$args = array(
'post_type' => 'product', // Tipul postului: produs
'posts_per_page' => 4, // Numărul de produse afișate
'meta_query' => array( // Interogare meta pentru produse la reducere
'relation' => 'OR', // Relația dintre condiții: OR
array( // Tip produse simple
'key' => '_sale_price', // Cheia meta: preț de reducere
'value' => 0, // Valoarea de comparat
'compare' => '>', // Operator de comparare: mai mare decât
'type' => 'numeric' // Tipul valorii: numeric
),
array( // Tip produse variabile
'key' => '_min_variation_sale_price', // Cheia meta: preț minim de reducere pentru variații
'value' => 0, // Valoarea de comparat
'compare' => '>', // Operator de comparare: mai mare decât
'type' => 'numeric' // Tipul valorii: numeric
)
)
);
$loop = new WP_Query( $args ); // Inițializare interogare WP
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
woocommerce_get_template_part( 'content', 'product' ); // Încărcare template produs
endwhile;
} else {
echo __( 'Nu s-au găsit produse' ); // Mesaj dacă nu sunt produse
}
wp_reset_postdata(); // Resetare date post
?>
</ul>
<!-- Produse WooCommerce La Reducere -->

Din păcate, acest lucru nu pare să funcționeze pentru produsele cu variații. Câmpul "_min_variation_sale_price" lipsește. WooCommerce probabil l-a schimbat de-a lungul anilor.
