Dodawanie „Od” przy cenach z wariantami – WooCommerce

Woocommerce Dodatkowy Napis Tekst Przed Ceną

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:

Cena OD w WordPress

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

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.

Edycja kodu

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

Przyłącz się do dyskusji

[elementor-element k="db47d93de8cdcb51dcf9573fc222d92b" data="eyJpZCI6ImVmYjQ5ZGMiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJibG9nX25hbWUiOiIiLCJibG9nX2Rlc2NyaXB0aW9uIjoiIiwiX2VsZW1lbnRfd2lkdGgiOiJhdXRvIiwidGl0bGUiOiJhc2QiLCJfZWxlbWVudF92ZXJ0aWNhbF9hbGlnbiI6ImNlbnRlciIsIndpZHRoIjp7InVuaXQiOiJweCIsInNpemUiOjI5OSwic2l6ZXMiOltdfSwiaGVpZ2h0Ijp7InVuaXQiOiJweCIsInNpemUiOjcxLCJzaXplcyI6W119LCJhbGlnbiI6ImNlbnRlciIsIm9iamVjdF9maXQiOiJjb250YWluIiwid2lkdGhfbW9iaWxlIjp7InVuaXQiOiJweCIsInNpemUiOjE2MCwic2l6ZXMiOltdfSwiaGVpZ2h0X21vYmlsZSI6eyJ1bml0IjoicHgiLCJzaXplIjozNSwic2l6ZXMiOltdfSwiYWxpZ25fbW9iaWxlIjoibGVmdCIsInJleV9pbmxpbmVfaG9yaXpvbnRhbF9hbGlnbl9tb2JpbGUiOiJsZWZ0IiwiY3VzdG9tIjoieWVzIiwibG9nbyI6eyJ1cmwiOiJodHRwczpcL1wvamF3b3Jvd2kuY3pcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTdcLzEwXC9sb2dvLTI5OS10cmFuc3BhcmVudC0yMi0xLnBuZyIsImlkIjo4MDk0LCJzaXplIjoiIiwiYWx0IjoiSmFrdWIgSmF3b3Jvd2ljeiBcdTIwMTMgUHJvZ3JhbWlzdGEgV29yZFByZXNzIGkgTWFya2V0aW5nIGludGVybmV0b3d5Iiwic291cmNlIjoibGlicmFyeSJ9fSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoicmV5Y29yZS1oZWFkZXItbG9nbyJ9"][elementor-element k="db47d93de8cdcb51dcf9573fc222d92b" data="eyJpZCI6ImE3NmE1YjkiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJfbWFyZ2luIjp7InVuaXQiOiJweCIsInRvcCI6IjAiLCJyaWdodCI6IjAiLCJib3R0b20iOiIwIiwibGVmdCI6IjQwIiwiaXNMaW5rZWQiOmZhbHNlfSwiX2VsZW1lbnRfd2lkdGgiOiJhdXRvIiwiX2VsZW1lbnRfdmVydGljYWxfYWxpZ24iOiJjZW50ZXIiLCJyZXlfaW5saW5lX2hvcml6b250YWxfYWxpZ24iOiJsZWZ0IiwiYnJlYWtwb2ludCI6IiIsInR5cG9ncmFwaHlfZm9udF9mYW1pbHkiOiJFeG8gMiIsInR5cG9ncmFwaHlfZm9udF93ZWlnaHQiOiIzMDAiLCJyZXlfaW5saW5lX2hvcml6b250YWxfYWxpZ25fdGFibGV0IjoibGVmdCIsInJleV9pbmxpbmVfaG9yaXpvbnRhbF9hbGlnbl9tb2JpbGUiOiJyaWdodCIsImN1c3RvbSI6InllcyIsInNvY2lhbF9pY29uX2xpc3QiOltdLCJzb2NpYWxfdGV4dCI6IkZPTExPVyBVUyIsInN0eWxlIjoidWxyIC0tdGhpbm5lciIsIm1vYmlsZV9wYW5lbF9kaXNhYmxlX2Zvb3RlciI6InllcyIsIm1vYmlsZV9wYW5lbF9kaXNhYmxlX21lZ2FfZ3MiOiItLWRpc2FibGUtbWVnYS1ncyIsInR5cG9ncmFwaHlfdHlwb2dyYXBoeSI6ImN1c3RvbSIsInR5cG9ncmFwaHlfZm9udF9zaXplIjp7InVuaXQiOiJweCIsInNpemUiOjE4LCJzaXplcyI6W119LCJ0eXBvZ3JhcGh5X2xpbmVfaGVpZ2h0Ijp7InVuaXQiOiJweCIsInNpemUiOjI1LjIsInNpemVzIjpbXX0sInR5cG9ncmFwaHlfd29yZF9zcGFjaW5nIjp7InVuaXQiOiJlbSIsInNpemUiOiIiLCJzaXplcyI6W119LCJ0eXBvZ3JhcGh5X3N1Yl90eXBvZ3JhcGh5IjoiY3VzdG9tIiwidHlwb2dyYXBoeV9zdWJfZm9udF9zaXplIjp7InVuaXQiOiJweCIsInNpemUiOjE4LCJzaXplcyI6W119LCJ0eXBvZ3JhcGh5X3N1Yl9mb250X3dlaWdodCI6IjMwMCIsInR5cG9ncmFwaHlfc3ViX2xpbmVfaGVpZ2h0Ijp7InVuaXQiOiJweCIsInNpemUiOjI1LjIsInNpemVzIjpbXX0sIm5hdl9pbmRpY2F0b3IiOiJhcnJvdzIiLCJfX2dsb2JhbHNfXyI6eyJ0eXBvZ3JhcGh5X3R5cG9ncmFwaHkiOiIiLCJiZ19jb2xvcl9zdWJtZW51cyI6Imdsb2JhbHNcL2NvbG9ycz9pZD0zZGE3YWUyIn0sIl9tYXJnaW5fbW9iaWxlIjp7InVuaXQiOiJweCIsInRvcCI6IjAiLCJyaWdodCI6IjAiLCJib3R0b20iOiIwIiwibGVmdCI6IjIwIiwiaXNMaW5rZWQiOmZhbHNlfX0sImVsZW1lbnRzIjpbXSwid2lkZ2V0VHlwZSI6InJleWNvcmUtaGVhZGVyLW5hdmlnYXRpb24ifQ=="]