当前位置: 首页 > 知识库问答 >
问题:

WooCommerce获取销售价格

凌远
2023-03-14

我希望能够显示当前价格和销售价格,如果它存在于我的WP_查询产品循环中。目前,我的代码只是将当前价格替换为销售价格。我想要一个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; ?>

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

更新:我一直在查看WooCommerce模板文件,发现了这个;

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

这工程我只需要能够抓住两个价格分别为目前

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

只是被销售价格覆盖了

共有2个答案

胡璞瑜
2023-03-14

我设法找到了这个

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

它做了我想做的一切,而不必做if语句

薛欣荣
2023-03-14

你指的是正常价格和销售价格吗?

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

global $product;
if( $product->is_on_sale() ) {
    $sale_price = $product->get_sale_price();
}
$regular_price = $product->get_regular_price();
 类似资料:
  • 我目前有一个表单,管理员可以在一个屏幕内批量更新产品的销售价格。 提交表格时,我只需使用这样的update_post_meta: 这将更新_sale_price元键。当我进入管理检查这一点,新的销售价格已经插入。当我在前端查看产品时,该产品未标记为正在销售。我必须回去重新保存产品。 我的问题是,伍兹商业是否添加了一些其他meta_key来标记产品在售?我在数据库中为所有插入的自定义字段进行了一次挖

  • 我有一个Woocommerce商店,里面有各种各样的产品。 我要给所有产品打八折,属于产品类别Cuckoo 现在我所要做的就是在我的functions.php中设定一个销售价格 它的做法如下: 如果我在计算后var_dump$sale_price的结果,我会得到正确的答案,但是前端的价格显示会击出正常价格,并将销售价格显示为正常价格。 是否有一个钩子/过滤器可以用来实现这一点? 我还尝试通过以下方

  • 我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?

  • 我有大约10个产品和接近200个变体每一个。我需要更新特定产品的销售价格,包括它的所有变化。 问题是: 所有的变种都有不同的价格。未输入销售价格-所有销售价格输入框均为空。 我需要一个SQL解决方案运行和更新所有特定产品的销售价格,采取常规价格并从中扣除350,或 任何其他方式,我不知道在这个阶段,因为我已经尝试了许多解决方案,包括Woocommerce内置的解决方案“设置销售价格”,再次不工作,

  • 当存在销售价格时,如何用销售价格替换常规价格 我尝试使用此代码 但当产品不在销售时,可见的价格是0.00

  • 我使用了一些代码来显示Woocommerce存档页面上的折扣价格: 档案页折扣: 但它对可变产品不起作用,我已经尝试了我找到的每一个钩子,但我不知道如何使它对可变产品起作用。(我在代码中注释掉了变量的钩子)。 这是我想要的: 如果变量的价格跨度为10-20,折扣为10-15,我希望它像这样显示,并将默认价格划掉: $40-$50 $20-$30 节省:20美元(40-50%) 如何用节省金额和百分

  • 我对每个包含不同价格的产品都有一些变化,我试图用jQuery获得产品的可变价格,我得到了,但是下面的代码只得到最小变化价格,我想得到当前变化的当前价格。然后,当我更改另一个选择值时,前端的变化会以正确的价格进行更改,但在控制台日志中,会反复显示最小价格,而不是相应变化的相应价格。 我试图研究和wp util。js文件来寻找一些方法,但我不能这样做。 有没有一种方法可以正确地检索当前变化价格与jQu

  • 我正在我的WooCommerce网店上为我的产品制作一个自定义附加组件。一切正常,但我只需要一件事。当客户选中产品页面上的复选框时,必须将$30添加到所选变体的原始价格中。 这部分:检查复选框是否被选中。 我的问题就在这里: 的值仅为0。 因此,我试图找出如何获得所选变体的价格。 我尝试了和,但没有任何运气... 更新我已经尝试从这个线程实现代码。有了这些代码,我可以得到所选变体的价格,但我不能再