Come visualizzare il prezzo del prodotto nel ciclo

25 gen 2016, 23:49:55
Visualizzazioni: 54.2K
Voti: 5

La mia domanda generale è: come visualizzare il prezzo di un prodotto in WooCommerce all'interno di un ciclo, non il prezzo del prodotto della pagina corrente? In altre parole, vorrei visualizzare alcuni prodotti correlati in una griglia nella pagina di un singolo prodotto, ma quando uso questo codice:

<?php 
   $product = new WC_Product(get_the_ID()); 
   echo wc_price($product->get_price_including_tax(1,$product->get_price()));
?>

viene visualizzato il prezzo del prodotto principale della pagina per ogni singolo prodotto nella mia griglia - il prezzo del prodotto della pagina corrente, invece del prezzo di ciascun prodotto nella griglia, se ha senso... Quindi se il prezzo del prodotto nella pagina singola è £9.00, ogni prodotto nella griglia dei prodotti correlati mostrerà £9.00 invece del proprio prezzo...

Sto utilizzando il campo relazioni di ACF per selezionare i prodotti in una pagina.

Ecco il mio codice completo che include il campo relazione ACF:

<?php 
$posts = get_field('related_set_1');
if( $posts ): ?>
<?php foreach( $posts as $p): ?>
<li>
    <a href="<?php echo get_permalink( $p->ID ); ?>">
        <?php 
          echo get_the_post_thumbnail( $p->ID, '175x100' )
                ?>
            <div style="overflow:hidden">
                <h4><?php echo $p->post_title; ?></h4>
                <p class="price">
                    <?php 
                    global $post;
                    $product = new WC_Product($post->ID); 
                    echo     wc_price($product->get_price_including_tax(1,$product->get_price()));
                    ?>
                </p>
                <p class="link">Visualizza ora</p>
            </div>
    </a>
</li>
<?php endforeach; ?>
    <?php endif; ?>

E uso questo in functions.php nella funzione del filtro, se fa qualche differenza?

add_filter( 'woocommerce_after_single_product_summary', 'custom_related_products' );
function custom_related_products() { ?>
.... (il codice sopra qui)
<php? }

Poiché lo visualizzo in un'altra pagina prodotto ho dovuto usare

get_the_post_thumbnail( $p->ID, '175x100' )

invece di

the_thumbnail

poiché altrimenti avevo lo stesso problema e ora tutto funziona bene, tranne il prezzo.

C'è un modo per selezionare un prezzo tramite ID o qualcos'altro?

0
Tutte le risposte alla domanda 3
0

Ho risolto, $post dovrebbe essere $p in:

global $post;
$product = new WC_Product( $post->ID );
1 feb 2016 19:09:15
2

Esempio

<?php
global $woocommerce;
$currency = get_woocommerce_currency_symbol();
$price = get_post_meta( get_the_ID(), '_regular_price', true);
$sale = get_post_meta( get_the_ID(), '_sale_price', true);
?>

<?php if($sale) : ?>
<p class="product-price-tickr"><del><?php echo $currency; echo $price; ?></del> <?php echo $currency; echo $sale; ?></p>    
<?php elseif($price) : ?>
<p class="product-price-tickr"><?php echo $currency; echo $price; ?></p>    
<?php endif; ?>

da questo https://gist.github.com/aarifhsn/d0535a720d13369010ce

18 apr 2018 20:32:50
Commenti

Questo non funzionerà se il prezzo del tuo prodotto è assegnato a una variazione - ad esempio, i prodotti variabili non hanno il prezzo nei loro meta, ma nelle loro variazioni.

FooBar FooBar
21 apr 2020 17:08:48

@FooBar quindi come possiamo ottenere il prezzo del prodotto variabile?

mjcoder mjcoder
20 mag 2020 14:35:46
0
global $post;
$product = new WC_Product( $post->ID );
echo $product->get_price_html();

Questo restituirà il prezzo corretto per prodotti semplici e variabili e dovrebbe anche restituire i prezzi attualmente attivi (regolari / in offerta).

Modifica: riferimento - https://woocommerce.github.io/code-reference/classes/WC-Product.html#method_get_price_html

8 apr 2021 18:14:11