如何在自定义模板中显示WooCommerce带折扣的产品价格及原价
修改WooCommerce产品模板以显示折扣价和原价
嘿,刚好我对WooCommerce的模板修改很熟,我来帮你搞定这个显示折扣价和原价的需求~
你原来的代码只输出了当前生效的价格,要同时展示原价(带删除线)和折扣价,我们需要替换掉价格区域的代码,利用WooCommerce自带的函数来处理,这样还能兼容各种产品类型和促销设置。
直接把你原来的<div class="price">...</div>部分替换成下面这段代码就行:
<div class="price"> <?php if ( $product->is_on_sale() ) : ?> <!-- 显示划掉的原价 --> <del class="woocommerce-Price-amount amount"> <?php echo wc_price( $product->get_regular_price() ); ?> </del> <!-- 显示折扣价 --> <ins class="woocommerce-Price-amount amount"> <?php echo wc_price( $product->get_sale_price() ); ?> </ins> <?php else : ?> <!-- 没有促销时显示正常价格 --> <span class="woocommerce-Price-amount amount"> <?php echo wc_price( $product->get_regular_price() ); ?> </span> <?php endif; ?> </div>
给你拆解下这段代码的逻辑:
- 先用
$product->is_on_sale()判断当前产品是否处于促销状态 - 如果是促销,就通过
<del>标签展示划掉的原价(调用get_regular_price()获取),再用<ins>标签展示折扣价(调用get_sale_price()获取) - 如果没有促销,就正常显示原价
- 用
wc_price()函数格式化价格,它会自动读取你WooCommerce后台设置的货币符号、小数位数等,不用硬写€,更灵活
这里为什么不用你原来的get_price()呢?因为get_price()返回的是当前用户看到的最终价格(促销时是折扣价,非促销时是原价),没办法同时拿到原价和折扣价,所以我们要分别调用专门的价格函数。
内容的提问来源于stack exchange,提问作者microb14
相关产品推荐
相关产品推荐

