@DMax921

Формат цен в категории от вариативных товаров, как решить?

Здравствуйте!
Подскажите пожалуйста, что не так.

Вот фильтр выводит минимальную цену вариации в категории товара.
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);

function custom_variation_price( $price, $product ) {
 $price = '';
 $price .= woocommerce_price($product->get_price());
 return $price;
}

Но он не выводит скидку, если эта вариация ее имеет.

А вот код, которые выводит минимальную цену и скидку если она есть, но как то странно, цену с потолка берет.
add_filter( 'woocommerce_variable_price_html', 'custom_min_max_variable_price_html', 10, 2 );
function custom_min_max_variable_price_html( $price, $product ) {
    $prices = $product->get_variation_prices( true );
    $min_price = current( $prices['price'] );
    $max_price = end( $prices['price'] );

    $min_keys = current(array_keys( $prices['price'] ));
    $min_price_regular = $prices['regular_price'][$min_keys];
    $min_price_html = wc_price( $min_price ) . $product->get_price_suffix();

    if( $min_price_regular != $min_price ){ // When min price is on sale (Can be removed)
        $min_price_regular_html = '<del>' . wc_price( $min_price_regular ) . $product->get_price_suffix() . '</del>';
        $min_price_html = $min_price_regular_html .'<ins>' . $min_price_html . '</ins>';
    }
    $price = sprintf( __( '%1$s', 'woocommerce' ), $min_price_html );

    return $price;
}


Что выходит, первый код выводит минимальную цену вариации 271 - верно! (старая цена 362)

Второй код выводит минимальную цену этой же вариации 288 - это как? (старая цена 360)

Помогите пожалуйста слепить...
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
А так?
add_filter('woocommerce_variable_price_html', 'dco_woocommerce_variable_price_html');

function dco_woocommerce_variable_price_html($price) {
    $array = explode(' &ndash; ', $price);
    return '<span class="price-from">от</span> ' . $array[0];
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы