如何在 WooCommerce 中为正常价格和促销价格添加后缀?

Posted

技术标签:

【中文标题】如何在 WooCommerce 中为正常价格和促销价格添加后缀?【英文标题】:How to add suffix to both regular price and on sale price in WooCommerce? 【发布时间】:2021-06-19 06:22:01 【问题描述】:

我想在 WooCommerce 中的销售价格和正常价格之后添加 ,-。 我现在使用的功能是:

// Add ,- after price
add_filter( 'woocommerce_get_price_html', 'njengah_text_after_price' );
function njengah_text_after_price($price)
     $text_to_add_after_price  = ',-'; //change text in bracket to your preferred text    
    return $price .   $text_to_add_after_price;   
 

这是有效的,但它只在 WooCommerce 中的销售价格之后添加。标准价后也要加上。

这是它现在添加的 HTML:

<span class="price">
    <del>
        <span class="woocommerce-Price-amount amount">
            <bdi>
                <span class="woocommerce-Price-currencySymbol">€</span>
                4.326
            </bdi>
        </span>
    </del> 
    <ins>
        <span class="woocommerce-Price-amount amount">
            <bdi>
                <span class="woocommerce-Price-currencySymbol">€</span>
                2.294
            </bdi>
        </span>
    </ins>
,-
</span>

感谢您的宝贵时间!

【问题讨论】:

尝试过滤 wc_price 而不是 woocommerce_get_price_html 【参考方案1】:

默认情况下,价格后缀添加在&lt;ins&gt; (以防产品打折)元素之后,因此它只显示一次。

如果您想以正常价格和促销价格显示后缀,您将需要使用钩子过滤器:

woocommerce_get_price_suffix 设置价格后缀并更新woocommerce_price_display_suffix 选项 woocommerce_format_sale_price更改特价格式

所以:

// adds the suffix to the price
add_filter( 'woocommerce_get_price_suffix', 'add_price_suffix' );
function add_price_suffix()
    $suffix = ',-';
    update_option( 'woocommerce_price_display_suffix', $suffix );
    return $suffix;


// adds the suffix to the regular price (the <del> element) if the product is on sale
add_filter( 'woocommerce_format_sale_price', 'change_format_sale_price', 99, 3 );
function change_format_sale_price( $price_html, $regular_price, $sale_price ) 
    $suffix = get_option( 'woocommerce_price_display_suffix' );
    $price_html = '<del>' . ( is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price ) . $suffix . '</del> <ins>' . ( is_numeric( $sale_price ) ? wc_price( $sale_price ) : $sale_price ) . '</ins>';
    return $price_html;

代码已经过测试并且可以运行。将其添加到您的活动主题的 functions.php 中。

【讨论】:

以上是关于如何在 WooCommerce 中为正常价格和促销价格添加后缀?的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 价格之间的差异

基于 Woocommerce 3 中的 2 个自定义字段的产品正常价格计算

从 WooCommerce 管理员中的所有产品中删除销售价格

在WooCommerce中取代可变产品定价

WooCommerce:如何在价格和销售价格之前添加文本?

在 WooCommerce 中为产品数量添加千位分隔符