WooCommerce获得销售价格

时间:2018-06-27 14:18:40

标签: php wordpress woocommerce

如果我的WP_Query产品循环中存在当前价格和销售价格,我希望能够显示它。目前,我的代码只是将当前价格替换为销售价格。我想要一个if语句,用于检查是否存在销售价格。如果要同时显示两者;

这是我的代码;

<?php   
    $args = array(
        'post_type' => 'product',
        'meta_key' => 'total_sales',
        'orderby' => 'meta_value_num',
        'posts_per_page' => 4,
    );
    $query = new WP_Query( $args );
?>

<?php if($query->have_posts()): ?>
    <div class="container" id="best_sellers">
        <div class="row">
        <?php while( $query->have_posts() ): $query->the_post(); ?>
            <?php $product = wc_get_product(get_the_ID());?>

            <div class="col-md-3">
                <div class="cont">
                    <a href="<?php the_permalink(); ?>">
                        <div class="image_cont">
                            <?php the_post_thumbnail(); ?> 
                        </div>

                        <p class="sku"><?php echo $product->get_sku(); ?></p>

                        <p class="title"><?php the_title(); ?></p>
                    </a>

                    <div class="quantity">
                        <p>Quantity: </p>
                        <button class="increment">+</button>
                        <input type="text" value="1" min="1" max="<?php echo $product->get_stock_quantity(); ?>">
                        <button class="decrement">-</button>
                    </div>

                    <p class="price"><?php echo wc_price( wc_get_price_including_tax( $product ) ); ?></p>

                    <a href="<?php echo $product->add_to_cart_url();?>" data-quantity="1" class="basket_btn button product_type_simple add_to_cart_button ajax_add_to_cart" data-product_id="<?php the_id(); ?>" data-product_sku="<?php echo $product->get_sku(); ?>" aria-label="Add “<?php the_title(); ?>” to your cart" rel="nofollow">Add to Basket</a>
                </div>
            </div>
        <?php endwhile; ?>
        </div>
    </div>
<?php endif; ?>

如果您查看价格类别,可以看到我的获取价格的代码。

更新:我一直在浏览WooCommerce模板文件并找到它;

<?php if ( $product->is_on_sale() ) : ?>

这行得通,我现在只需要能够同时获取两个价格

<?php echo wc_price( wc_get_price_including_tax( $product ) ); ?>

只是被销售价格覆盖

2 个答案:

答案 0 :(得分:0)

您是指正常价格和销售价格吗?

您可以使用以下代码,但这仅适用于简单产品,不适用于产品变体。

global $product;
if( $product->is_on_sale() ) {
    $sale_price = $product->get_sale_price();
}
$regular_price = $product->get_regular_price();

答案 1 :(得分:0)

我设法找到了

<?php echo $product->get_price_html(); ?>

它可以执行我想做的所有事情,而无需发出if语句