提问者:小点点

WooCommerce在产品页面上显示保存的金额


我想在“销售”和“常规”价格下显示每个产品的总储蓄,就像下面的图片一样:https://ibb.co/T8BxH9z.储蓄金额是计算出来的,它是可见的,但由于某种原因,我的货币不可见。所以,我想显示它像这个例子:"Ušteda: 2291,87 kn",现在,只有金额显示。网站链接:https://shop.mirakul.com.hr/.

这是我正在使用的代码。你知道为什么货币不见了吗?

function usteda_popust() {

    global $product;
    
    if( $product->is_type('simple') || $product->is_type('external') || $product->is_type('grouped') ) {
    
        $regular_price = get_post_meta( $product->get_id(), '_regular_price', true );
        $sale_price = get_post_meta( $product->get_id(), '_sale_price', true );
        
        if( !empty($sale_price) ) {
            $amount_saved = $regular_price - $sale_price;
            $currency_symbol = get_woocommerce_currency_symbol();
            ?>
            <p style="font-size:18px;color:red;">Ušteda: <?php echo number_format($amount_saved,2, ',', '') ?></p>
            <?php
        }
    }
}
    
add_action( 'woocommerce_single_product_summary', 'usteda_popust', 11 );

提前感谢!


共1个答案

匿名用户

你看不到货币只是因为你得到了它,但你没有打印它。

您还可以使用wc_price()函数根据您的商店设置打印格式化的价格(带货币)。

您可以像这样优化代码:

add_action( 'woocommerce_single_product_summary', 'usteda_popust', 11 );
function usteda_popust() {

    global $product;
    
    if ( $product->is_type('simple') || $product->is_type('external') || $product->is_type('grouped') ) {
        if ( $product->get_sale_price() ) {
            $amount_saved = $product->get_regular_price() - $product->get_sale_price();
            ?>
            <p style="font-size:18px;color:red;">Ušteda: <?php echo wc_price( $amount_saved ) ?></p>
            <?php
        }
    }
}

该代码已经过测试,可以正常工作。将其添加到活动主题的功能中。php。

以下是结果: