[WooCommerce] Usunięcie ceny wariantów – wyświetlanie jednej ceny

Dziś bardzo szybko, ale treściwie :)

Czasem jest tak, że posiadając kilka wariantów produktu pokazuje nam dwie ceny na głównej stronie (stronach kategorii i innych) np. 50 – 750zł

Poniższy kod wklejamy do Child Theme motywu (wersja bezpieczna) w plik functions.php

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> <ins>' . $price . '</ins>';
    }
    return $price;
}

Tym sposobem wyświetlana jest tylko wersja najtańszego wariantu.

Artykuł powstał na podstawie zgłoszenia klienta – Zgłaszany problem: Po zawirusowaniu woocommerce i przywróceniu do stanu z przed infekcji wiele funkcji przestało działać lub działały nieprawidłowo w tym m.in. wyświetlanie wariantów WooCommerce (min-max) zamiast pojedynczej, najtańszej wersji danego produktu.

[Aktualizacja] 27.04.2017

Nowa wersja dodaje przed cenę napis „Od”: Dodanie tekstu „od” przed pojedynczą ceną wariantów.

Oceń ten artykuł jako pierwszy
Powiązane tematy: WordPress
Strona w trakcie przebudowy :) Wróć niebawem, aby zobaczyć różnice.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.

21 Replies to “[WooCommerce] Usunięcie ceny wariantów – wyświetlanie jednej ceny”

  1. Maciej Głowski

    Witam, przydatny wpis, jednak ja szukam jeszcze coś takiego, żeby nie pokazywała się w ogóle cena i nie było też informacji „produkt za darmo” (jest automatycznie dodawana jak ustawiam cenę na 0 lub -). Chodzi o produkt z wariantami. Nie ma być widocznych cen i brak możliwości dodania do koszyka. Z góry dzięki za jakieś pomysły :) Pozdrawiam.

    1. baja

      Witam ja również szukam tego jak usunąć cenę za darmo… mamy już jakieś rozwiązanie ?

  2. mawww

    Czy możesz pokazać zrzuty ekranu bo próbuje próbuję i jedyne co mi wychodzi to błąd strony i komunikat:

    Parse error: syntax error, unexpected ’:’ in /wp-content/themes/twentysixteen/functions.php on line 414

    1. Mateusz Jaworowicz[ Post Author ]

      Kod został poprawiony pod najnowszą wersję Woo + Twój motyw.

  3. mateusz

    Cześć ! Chciałbym odgrzebać temat. Na wstępie dzięki za funkcje – działa. Zastanawiam się czy dałoby się zmodyfikować w ten sposób żeby zakres cen wariantów NA STRONIE produktu nie był w ogóle widoczny a na pozostałych stronach było tak jak jest teraz – cena minimalna? Dzięki

  4. kolarz

    Wielkie dzięki za pomoc – kod wklejony, cały sklep się wyje…..ł. Koszt backupu – 50 zł.

    1. Jakub Jaworowicz[ Post Author ]

      Bardzo mi przykro, że to Cię spotkało – nie mniej jednak w przypadku, gdyby kod powodował problem wystarczy odnaleźć plik do którego został dodany przez FTP, usunąć modyfikacje i wgrać plik ponownie. Na podstawie informacji, które otrzymałem ciężko stwierdzić też jaki mógłbyc tego powód, a samo wgranie backupu (całego WordPress jak podejrzewam) było działaniem trochę na wyrost.

  5. Artur

    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!

    1. Jakub Jaworowicz[ Post Author ]

      Zaktualizowałem artykuł – na samym dole artykułu znajduje się link do zaktualizowanej wersji snippetu, w której można dodać tekst "Od".

      1. Artur

        <p>Super, dzięki jeszcze raz!</p>

  6. Alex

    Wielkie dzięki! Właśnie taki kawałek kodu był mi potrzebny a nie mam czasu zagłębiać się w tajniki php bo jestem w tej dziedzinie zupełnym 'lajkonikiem'.

  7. woodenstuff

    A ja mam pytanie jak dodać po cenie 'brutto’? :) Przy produktach prostych automatycznie wyświetla się np. 100 zł brutto. Przy produktach z wariantami po dodaniu tego pojawia się najniższa cena ale w formie 'od 100 zł’ – bez brutto :(

  8. Wojtek

    Witam, mam troszkę podobny problem z woocommerce. W sklepie który obsługuję muszą być wszędzie wyświetlane ceny netto i brutto (sklep typu B2B). W sklepie mam produkty proste i produkty z wariantami. Problem w tym, że produkty z wariantami wyświetlają na liście kategorii TYLKO cenę brutto, na stronie produktu wyświetla się najniższa cena, również brutto – dopiero po wybraniu konkretnego wariantu, poniżej pojawia się właściwa cena z sumą brutto i netto.
    Szukam rozwiązania co zrobić, aby ceny produktów z wariantami zawsze i wszędzie wyświetlały się tak jak proste produkty – z cenami brutto i netto na stronie kategorii i stronie produktu?
    Możesz mi w jakiś sposób podpowiedzieć „jak to ugryźć”? :)

    1. Jakub Jaworowicz[ Post Author ]

      Generalnie jest to kwestia indywidualna motywu i zastosowanych rozwiązań. Trzeba to weryfikować na konkretnym przypadku. Zachęcam do kontaktu.

  9. Mateusz

    Dzięki. Przydało mi się.

  10. Marek

    Witam, bardzo przydatny artykuł. Mam jednak pytanie.. na stronie sklepu, po kliknięciu w produkt przenosi na strone z produktem. Wszystko OK, natomiast pojawia mi się nazwa produktu, potem najniższa cena z wariantu, potem do wyboru różne warianty i cena domyślnie ustawionego wariantu.
    Pytanie brzmi: Jak usunąć tą najniższą cenę z wariantu pod nazwą produktu? (Nie chcę, aby się wyświetlała)

    1. Jakub Jaworowicz[ Post Author ]

      Jeżeli motyw tego nie umożliwia należy napisać fragment kodu, który ukryje cenę główną wariantów, a pozostawi tylko tego wybranego. W razie potrzeby mogę się tym zająć – proszę o email lub wysłanie wiadomości poprzez zakładkę kontakt.

  11. Łukasz

    Dziękuję :) Rozwiązało problem szybko i skutecznie. Takie rzeczy powinny być domyślnie w woocommerce do przeklikania w ustawieniach. Byłoby łatwiej.

  12. Kasia

    A czy da się zrobić tak, aby wszystkie warianty miały taką samą cenę? Mam ponad 2000 wariantów produktu i ręcznie dodawanie ceny do każdego z nich to katorga…

    1. Jakub Jaworowicz[ Post Author ]

      Skorzystaj z wtyczki WP Sheet Editor https://wpsheeteditor.com/extensions/woocommerce-spreadsheet/ i życie stanie się prostsze :)

Przyłącz się do dyskusji

Bądź na bieżąco

Newsy i promocje - Marketing & WordPress

Maksymalnie trzy wiadomości w miesiącu dopasowane do Ciebie. Polityka Prywatności dostępna jest tutaj. Dla każdego subskrybenta prezent niespodzianka.

Dziękuję za zapis.

Niebawem przyjdzie do Ciebie mail powitalny. Twoja darmowa godzina na pracę w #WordPress została aktywowana.