Dodawanie „Od” przy cenach z wariantami – WooCommerce

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:

Pomyśl o tym
Snippet (jak widać) świetnie działa z motywami WooStroid i Monstoid 2 – Więcej informacji

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ąć.

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.

5/5 - (1 vote)
dHosting najlepszy serwer dla wordpress i nie tylko
Powiązane tematy: WordPress

Na stronie mogą znajdować się linki polecające (affiliacyjne), które pozwalają utrzymać bloga. Zakup z mojego polecenia nie generuje dla Ciebie dodatkowych kosztów, a ja otrzymam prowizje od kwoty zapłaconej.

18 komentarzy “Dodawanie „Od” przy cenach z wariantami – WooCommerce”

  1. Avatar autora komentarza Paweł Michalski
    Paweł Michalski

    Potwierdzam – działa świetnie. Dzięki!

  2. Avatar autora komentarza pawel
    pawel

    Nie lepiej zrobić to za pomocą CSS i komendą content: ?

    1. Avatar autora komentarza Jakub Jaworowicz
      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.

  3. Avatar autora komentarza Główka
    Główka

    Pomocne! Działa bez problemu :)

  4. Avatar autora komentarza Marcin
    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 … ??

    1. Avatar autora komentarza Jakub Jaworowicz
      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.

  5. Avatar autora komentarza Natalia
    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?

    1. Avatar autora komentarza Jakub Jaworowicz
      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”.

  6. Avatar autora komentarza Tomasz Ciok
    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 ;/

    1. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

      Możliwe, że to konflikt w motywie. Należy zrobić poprawkę indywidualną.

  7. Avatar autora komentarza MM
    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?

    1. Avatar autora komentarza Jakub Jaworowicz
      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.

  8. Avatar autora komentarza MarSTR
    MarSTR

    Witam ,
    W jaki sposób usunąć kropkę miedzy „od” a cenna??

    1. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

      W linijce 16 jest dodany zwrot „od”, kilka linijek wcześniej również pomiędzy „ins” a „del”.

  9. Avatar autora komentarza Basia
    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.

    1. Avatar autora komentarza Jakub Jaworowicz
      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.

  10. Avatar autora komentarza Karolina
    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

    1. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

      Wtedy OD trzeba zamienić w ciąg do tłumaczenia. Musiałbym to już indywidualnie zobaczyć.

Skomentuj Jakub Jaworowicz Anuluj odpowiedź