Я использую код, чтобы переместить действительные цены вариаций вверх, на странице продукта, и удалить ценовой диапазон на страницах продуктов и страниц категорий, чтобы отобразить только самое низкое значение цены.
Также необходимо указать суффикс налога на добавленную стоимость "IVA в c". Этот суффикс установлен в конфигурации woocommerce.
Он отлично работает, за исключением того, что цена продажи до не отображается на странице категорий
Я не эксперт по программированию, я прилагаю усилия, чтобы заставить его работать.
Кроме того, возможно ли оптимизировать код?
//Move Variations price above variations to have the same template even if variations prices are the same
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 10 );
add_action( 'woocommerce_before_variations_form', 'woocommerce_single_variation', 10 );
//Remove Price Range
add_filter( 'woocommerce_variable_sale_price_html', 'detect_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'detect_variation_price_format', 10, 2 );
function detect_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
if ($prices[0] !== $prices[1] && is_product()) {
$price = $prices[0] !== $prices[1] ? sprintf( __( '', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
}
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'] );
$min_price_html = wc_price( $min_price ) . $product->get_price_suffix();
$price = sprintf( __( '%1$s', 'woocommerce' ), $min_price_html );
return $price;
}
Цена до продажи предложения не показана в категории страницы
Страницы товара работают нормально