Показывать процент скидки в кнопке продажи WooCommerce - PullRequest
0 голосов
/ 27 июня 2018

Я ищу способ показать процент скидки в пузыре продаж в WooCommerce. Вот изображение, как кнопка выглядит сейчас:

enter image description here

Так, в основном, кнопка покажет: -20%

1 Ответ

0 голосов
/ 27 июня 2018

Вы должны иметь возможность подключиться к фильтру woocommerce_sale_flash, захватить объект продукта, вычислить процент и добавить его в HTML.

Примерно так:

add_filter( 'woocommerce_sale_flash', 'add_percentage_to_sale_bubble' );
function add_percentage_to_sale_bubble( $html ) {
    global $product;
    $percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
    $output =' <span class="onsale">VERKOOP -'.$percentage.'%</span>';
    return $output;
}

Редактировать - Переменные продукты:

С учетом того, что в смесь добавляются переменные продукты, вам нужно будет включить проверку, используя is_type('simple|variable'), и откорректировать свои вычисления оттуда, например:

add_filter( 'woocommerce_sale_flash', 'add_percentage_to_sale_bubble', 20 );
function add_percentage_to_sale_bubble( $html ) {
    global $product;

    if ($product->is_type('simple')) { //if simple product
        $percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 ).'%';
    } else { //if variable product
        $percentage = get_variable_sale_percentage( $product );
    }

    $output =' <span class="onsale">-'.$percentage.'</span>';
    return $output;
}

function get_variable_sale_percentage( $product ) {
    //get variables
    $variation_min_regular_price    = $product->get_variation_regular_price('min', true);
    $variation_max_regular_price    = $product->get_variation_regular_price('max', true);
    $variation_min_sale_price       = $product->get_variation_sale_price('min', true);
    $variation_max_sale_price       = $product->get_variation_sale_price('max', true);

    //get highest and lowest percentages
    $lower_percentage   = round( ( ( $variation_min_regular_price - $variation_min_sale_price ) / $variation_min_regular_price ) * 100 );
    $higher_percentage  = round( ( ( $variation_max_regular_price - $variation_max_sale_price ) / $variation_max_regular_price ) * 100 );

    //sort array
    $percentages = array($lower_percentage, $higher_percentage);
    sort($percentages);

    return $percentages[1].'%';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...