web-dev-qa-db-fra.com

Comment afficher le prix du produit en boucle

Ma question générale est la suivante: comment afficher le prix d'un produit dans le commerce en ligne d'un produit en boucle, et non le prix du produit de quelle page il s'agit? En d'autres termes, j'aimerais afficher quelques produits liés dans une grille sur une seule page de produit, mais lorsque j'utilise ce code:

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

il affiche le prix d'un produit principal sur la page pour chaque produit de ma grille - le prix du produit qui l'a envoyé, plutôt que le prix de chaque produit dans une grille, si cela a un sens ... Donc, si le prix du produit sur une seule page est de £ 9.00, chaque produit de la grille de produits connexes affichera avec £ 9.00 aussi plutôt que son propre prix ...

J'utilise le champ de relations ACF pour sélectionner les produits sur une page.

Voici tout mon code, y compris le champ de relation 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">View now</p>
            </div>
    </a>
</li>
<?php endforeach; ?>
    <?php endif; ?>

Et j'utilise ceci dans functions.php dans la fonction de filtre, si cela fait une différence?

add_filter( 'woocommerce_after_single_product_summary', 'custom_related_products' );
function custom_related_products() { ?>
.... (the code above here)
<php? }

Parce que je l’affiche sur une autre page de produit que je devais utiliser

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

au lieu de

the_thumbnail

sinon, j'avais le même problème et tout fonctionne bien maintenant, à part le prix.

Existe-t-il un moyen de cibler un prix par ID ou sth?

2
yennefer

Exemple

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

de cette https://Gist.github.com/aarifhsn/d0535a720d13369010ce

0
Ostap34PHP