WooCommerce получить цену продажи - PullRequest
0 голосов
/ 27 июня 2018

Я хочу показать текущую цену и цену продажи, если она существует в моем цикле продуктов 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 голосов
/ 27 июня 2018

Мне удалось найти это

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

Он делает все, что хотел, без необходимости делать оператор if

0 голосов
/ 27 июня 2018

Вы имеете в виду обычные и продажные цены?

Вы можете работать с приведенным ниже кодом, но это будет только с простым продуктом, он не будет работать с вариацией продукта.

global $product;
if( $product->is_on_sale() ) {
    $sale_price = $product->get_sale_price();
}
$regular_price = $product->get_regular_price();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...