如何在循环中显示产品的产品价格

时间:2016-01-25 作者:yennefer

我的一般问题是:如何在woocommerce中循环显示产品价格,而不是显示哪个页面的产品价格?换句话说,我希望在单个产品页面的网格中显示几个相关产品,但当我使用此代码时:

<?php 
   $product = new WC_Product(get_the_ID()); 
  echo wc_price($product->get_price_including_tax(1,$product->get_price()));
?>
它会在页面上显示我的网格中每个产品的主要产品价格-发布它的产品的价格,而不是网格中每个产品的价格,如果这有意义的话。。。因此,如果单个页面上的产品价格为9.00英镑,则相关产品网格中的每个产品也将显示9.00英镑,而不是其自身的价格。。。

我使用ACF关系字段在页面上选择产品。

这是我的全部代码,包括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; ?>
我在函数中使用它。php中的过滤器函数,如果这有什么区别?

add_filter( \'woocommerce_after_single_product_summary\', \'custom_related_products\' );
function custom_related_products() { ?>
.... (the code above here)
<php? }
因为我必须在另一个产品页面上显示它

get_the_post_thumbnail( $p->ID, \'175x100\' )
而不是

the_thumbnail
除此之外,我也遇到了同样的问题,现在一切都很好,除了价格。

有没有办法通过IDsth?

3 个回复
最合适的回答,由SO网友:yennefer 整理而成

我解决了这个问题,$post 应该是$p 在中:

global $post;
$product = new WC_Product( $post->ID );

SO网友:Ostap Brehin

实例

<?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; ?>
从这个https://gist.github.com/aarifhsn/d0535a720d13369010ce

SO网友:Wikus

global $post;
$product = new WC_Product( $post->ID );
echo $product->get_price_html();
这将返回简单和可变产品的正确价格,还应返回当前的有效价格(常规/销售)。

编辑:参考-https://woocommerce.github.io/code-reference/classes/WC-Product.html#method_get_price_html

相关推荐