Bucla pentru Produse cu Reducere în WooCommerce

28 nov. 2014, 18:43:17
Vizualizări: 20.5K
Voturi: 1

Î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?

7
Comentarii

Plugin-urile și temele de la terți sunt off topic aici. Ar trebui să contactați dezvoltatorul sau să întrebați pe forumul de suport WooCommerce de pe wordpress.org

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

@Roberthue Este foarte amuzant ceea ce ai spus aici. :P Dacă ai timp, caută WooCommerce pe acest site și vezi câte întrebări poți vedea aici. Dacă nu reușești, deschide http://wordpress.stackexchange.com/search?q=WooCommerce și vezi acolo.

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

Întrebările legate de WooCommerce sunt off topic. Suntem ocupați să închidem toate aceste întrebări dacă nu ai observat. Întrebarea ta va fi și ea închisă ca fiind off topic. Ne pare rău pentru asta. Mulțumim

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

Vă rugăm să consultați aceste discuții conexe pe meta

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

Da, există multe întrebări despre plugin-uri terțe în WPSE, dar asta nu le face corecte. Punând întrebări în locul potrivit veți primi suport mai bun și mai rapid.

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

Deci voi mai întâi închideți eticheta WooCommerce ca să nu o mai menționeze nimeni. Mai întâi perfecționați-vă pe voi înșiși, apoi cereți altora să facă la fel.

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

Deci, sunt permise întrebări despre WooCommerce pe http://stackoverflow.com/search?q=WooCommerce

Muhammad Hassan Muhammad Hassan
29 nov. 2014 07:29:54
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare 1
2

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

Captură de ecran a formularului de date produs WooCommerce

<!-- 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 -->
29 nov. 2014 11:03:15
Comentarii

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.

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

Următoarea soluție a funcționat pentru mine. Adaugă în argumentele query-ului: 'post__in' => wc_get_product_ids_on_sale(),

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