W poprzednim artykule Usunięcie ceny wariantów – wyświetlanie jednej ceny otrzymałem nowy komentarz, który postanowiłem zacytować i rozwinąć w dzisiejszym wpisie.
Cześć! Wszystko jest OK, dzięki wielkie za pomoc. Mam pytanie, jak dopisać frazę „Od” przed ceną? Tak, aby było np. „Od 100 zł” Z góry wielkie dzięki!
Poniżej znajdziesz zmodyfikowany kod z poprzedniego wpisu na temat wyświetlania cen wariantów – końcowo wygląda to tak:
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> od <ins>' . $price . '</ins>';
}
if ( $price == $saleprice ) {
$price = 'od <ins>' . $price . '</ins>';
}
return $price;
}
Powyższą modyfikacje należy wgrać do pliku functions.php – najlepiej motywu potomnego lub wtyczki funkcyjnej. Jeżeli używasz poprzedniej wersji należy ją najpierw usunąć.
Jak dodać ten kod do WordPress?
Kod ten dodaj do motywu w pliku functions.php, najlepiej motywu potomnego lub własnej wtyczki funkcyjnej. Przed „?>” na końcu pliku (może tego fragmentu nie być i wtedy po prostu na końcu). Więcej szczegółów w artykule: Własny kod w WordPress.
Usuwa ona ceny wariantów „od – do zł” np. „20 – 60 zł” i jako cenę produktu pokazuje kwotę najniższą – powyższa zaktualizowana wersja dodatkowo przed ceną produktu będącego produktem z wariantami dodaje tekst „od” przed wyświetlaną cenę.
Aby zmienić „od” na własną treść należy zmienić ją w linijkach 12 i 16.
18 komentarzy “Dodawanie „Od” przy cenach z wariantami – WooCommerce”
Paweł Michalski
Potwierdzam – działa świetnie. Dzięki!
pawel
Nie lepiej zrobić to za pomocą CSS i komendą content: ?
Jakub Jaworowicz[ Autor Artykułu ]
Tak, tylko pytanie czy przy zmianie motywu na inny będziesz pamiętać o przepisaniu kodu za to odpowiedzialnego :)
Pomijam, że każdy motyw ma różne klasy itp. nie zawsze będzie to takie proste.
Główka
Pomocne! Działa bez problemu :)
Marcin
Witam jak w atrybutach produktu ustawić sortowanie chodzi o to żeby powiedzmy w sklepie odzieżowym przy danej koszulce sortowało i wyświetlało po kolei s m l xl itd obecnie sortuje po swojemu czyli l xl s … ??
Jakub Jaworowicz[ Autor Artykułu ]
U ustawieniach atrybutu należy zmienić opcje sortowania na „własne” i z pomocą takich trzech kreseczek ustawić pożądaną kolejność – przeciągając je na odpowiednie miejsca.
Natalia
Niestety u mnie kod powoduje w sklepie wyświetlanie słowa 'od’ po cenie, natomiast w widgetach jak np. ostoatnio oglądane działa prawidłowo, mam najnowszego wordperssa co może być nie tak?
Jakub Jaworowicz[ Autor Artykułu ]
Proszę o email na adres [email protected] możliwe, że motyw ma już taką opcje wbudowaną i powoduje to konflikt. Należy to sprawdzić „od środka”.
Tomasz Ciok
Wszystko działa pięknie, ale gdy mam tylko jeden wariant dot. koloru, a cena jest taka sama to dalej mam OD. a w tym przypadku nie chciał bym. Masz pomysł jak to zrobić, bo ja się głowie i nie wiem ;/
Jakub Jaworowicz[ Autor Artykułu ]
Możliwe, że to konflikt w motywie. Należy zrobić poprawkę indywidualną.
MM
Mi niestety nie działa. Motyw 'KONA”, wklejam przez edytor motywu kod do „Kona child –> functions.php” i nic się nie zmienia. Nadal wyświetla się przedział cen przy produktach na stronie kategorii. Co może być za to odpowiedzialne?
Jakub Jaworowicz[ Autor Artykułu ]
Wysłałem email – niestety jest za dużo czynników, aby to ustalić w ciemno. Od konfliktu z motywem po błąd w instalacji lub jakieś customowe rozwiązania.
MarSTR
Witam ,
W jaki sposób usunąć kropkę miedzy „od” a cenna??
Jakub Jaworowicz[ Autor Artykułu ]
W linijce 16 jest dodany zwrot „od”, kilka linijek wcześniej również pomiędzy „ins” a „del”.
Basia
Witam, u mnie działa świetnie, ale kolejność jest zła. Zamiast „od 20 zł” wyświetla się „20 zł od”. Czy to normalne? Co mogę zrobić aby wyświetlało się w poprawnej kolejności? Theme Pedona.
Jakub Jaworowicz[ Autor Artykułu ]
Możliwe, że to coś w ustawieniach Woo. Bez dostępu ciężko określić co to dokładnie, a wcześniej nie zdarzyło mi się to.
Karolina
działa dla wersji polskiej a jak ktoś ma sklep w dwóch językach? to jak dodać żeby nie pokazywało OD a np. FROM
Jakub Jaworowicz[ Autor Artykułu ]
Wtedy OD trzeba zamienić w ciąg do tłumaczenia. Musiałbym to już indywidualnie zobaczyć.