nordla
Новичок
Подскажите пожалуйста, а то уже голову сломал.
У меня есть вариативный товар, у него атрибуты разные, а цены одинаковые. Как мне установить условие и убрать диапазон цен из карточки товара и оставить только одну цену, но при этом, если цены будут разные, то выводить их диапазон.
У нас есть функция get_price_html(), в ней как я понял и расписаны варианты вывода цен, в том или ином случае. Вот тут как раз не понимаю, как расписать условие типа if(...) в этой функции. И вообще, в правильном я хоть направлении смотрю?
Спасибо
У меня есть вариативный товар, у него атрибуты разные, а цены одинаковые. Как мне установить условие и убрать диапазон цен из карточки товара и оставить только одну цену, но при этом, если цены будут разные, то выводить их диапазон.
У нас есть функция get_price_html(), в ней как я понял и расписаны варианты вывода цен, в том или ином случае. Вот тут как раз не понимаю, как расписать условие типа if(...) в этой функции. И вообще, в правильном я хоть направлении смотрю?
PHP:
public function get_price_html( $price = '' ) {
$prices = $this->get_variation_prices( true );
// No variations, or no active variation prices
if ( $this->get_price() === '' || empty( $prices['price'] ) ) {
$price = apply_filters( 'woocommerce_variable_empty_price_html', '', $this );
} else {
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
$price = min_price !== $max_price ? sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce' ), wc_price( $min_price ), wc_price( $max_price ) ) : wc_price( $min_price );
$is_free = $min_price == 0 && $max_price == 0;
if ( $this->is_on_sale() ) {
$min_regular_price = current( $prices['regular_price'] );
$max_regular_price = end( $prices['regular_price'] );
$regular_price = min_regular_price !== $max_regular_price ? sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce' ), wc_price( $min_regular_price ), wc_price( $max_regular_price ) ) : wc_price( $min_regular_price );
$price = apply_filters( 'woocommerce_variable_sale_price_html', $this->get_price_html_from_to( $regular_price, $price ) . $this->get_price_suffix(), $this );
} elseif ( $is_free ) {
$price = apply_filters( 'woocommerce_variable_free_price_html', __( 'Free!', 'woocommerce' ), $this );
} else {
$price = apply_filters( 'woocommerce_variable_price_html', $price . $this->get_price_suffix(), $this );
}
}
return apply_filters( 'woocommerce_get_price_html', $price, $this );
}
Спасибо