В данной статье мы разберем, как в Woocommerce добавить префикс цена "от" для простых и вариативных товаров. Это простой способ без использования плагинов, нужно всего-лишь прописать небольшой код.
Куда вставлять код
Нужный код необходимо добавить в файл functions.php вашей темы. Желательно использовать дочернюю тему, чтобы код не стёрся при её обновлении.
Префикс "Цена от" для всех товаров
Если необходимо добавить перед стоимостью любых товаров префикс "от" или любой другой, то используем следующий код:
/* Вывод текста "от" перед ценой любого товара */ add_filter( 'woocommerce_get_price_html', 'bis_add_price_prefix', 20, 2 ); function bis_add_price_prefix( $price, $product ){ $price = 'от ' . $price; return $price; }
Префикс "Цена от" для вариативных товаров
Этот код следует использовать, когда вы хотите у вариативных товаров заменить стандартный вывод, например "900 р - 2400 р" на "от 900 р".
/* Добавление приставки "от" для вариативных товаров */ add_filter( 'woocommerce_variable_price_html', 'bis_add_variation_price_prefix', 20, 2 ); function bis_add_variation_price_prefix( $price, $product ) { $min_regular_price = $product->get_variation_regular_price( 'min', true ); $min_sale_price = $product->get_variation_sale_price( 'min', true ); $max_regular_price = $product->get_variation_regular_price( 'max', true ); $max_sale_price = $product->get_variation_sale_price( 'max', true ); if ( ! ( $min_regular_price == $max_regular_price && $min_sale_price == $max_sale_price ) ) { if ( $min_sale_price < $min_regular_price ) { $price = sprintf( 'от <del>%1$s</del><ins>%2$s</ins>', wc_price( $min_regular_price ), wc_price( $min_sale_price ) ); } else { $price = sprintf( 'от %1$s', wc_price( $min_regular_price ) ); } } return $price; }
Работоспособность обоих способов проверена на Woocommerce версии 4.3.6
Имейте ввиду, что на каких-то темах и других версиях плагина код может не сработать.