更改WooCommerce折扣价显示的方式

时间:2019-09-24 15:53:52

标签: php wordpress woocommerce

朋友们,下午好,我会简短地介绍。我正在尝试自定义折扣产品价格的显示,如下图所示: Example

现在,我已经获得了几个代码,我正在对其进行修改以实现该结果。它在大多数产品中都能很好地工作,但在可变产品中则另当别论。具有折扣的可变产品停止工作,在具有变化的产品中,当变化具有折扣时会出错,该产品停止工作。请你帮助我好吗?我将不胜感激!

我已经附上了我的代码。

/* Text before and after the discounted price */
add_filter('woocommerce_format_sale_price', 'filter_function_name', 10, 3);
function filter_function_name($price, $regular_price, $sale_price) {
    $product = new WC_Product(get_the_ID());
    if (!is_admin() && $product->is_type('simple')) {
        $regular_price = 'Before: ' . wc_price($regular_price);
        $sale_price = 'After: ' . wc_price($sale_price);
        $price = $regular_price . ' - ' . $sale_price;
    }
    return $price;
};
/*---------- Showing the saving message  -----------*/
function ts_you_save() {
    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();
            $percentage = round((($regular_price - $sale_price) / $regular_price) * 100);
?>
<p style="font-size:24px;color:red;"><b>You Save: <b>$</b><?php echo number_format($amount_saved, 2, '.', '') . " (" . number_format($percentage, 0, '', '') . "%)"; ?></b></p>
<?php
        }
    }
}
add_action('woocommerce_single_product_summary', 'ts_you_save', 11);

非常感谢您的宝贵时间,我在等待您的回复:)

0 个答案:

没有答案