Изменить способ отображения цены продажи со скидкой WooCommerce - PullRequest
1 голос
/ 24 сентября 2019

Добрый день, друзья, буду краток;Я пытаюсь настроить отображение цены товара со скидкой, как показано на следующем рисунке: Пример

Теперь я уже получил несколько кодов и модифицирую их для достижения этого результата.Это работает хорошо в большинстве продуктов, но в переменных продуктах это нечто иное.Переменные продукты с дисконтом перестают работать. В продуктах с вариациями выдает ошибку, когда у вариации есть скидка, продукт перестает работать.Не могли бы вы мне помочь?Я был бы признателен!

Я приложил свой код.

/* 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);

Большое спасибо за ваше время, я жду вашего ответа:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...