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

woocommerce

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ł

Instrukcje dodania kodu znajdziesz poniżej kodu.

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.

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.

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.

4/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.

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

  1. Avatar autora komentarza Maciej Głowski
    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. Avatar autora komentarza baja
      baja

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

  2. Avatar autora komentarza mawww
    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. Avatar autora komentarza Mateusz Jaworowicz
      Mateusz Jaworowicz[ Autor Artykułu ]

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

  3. Avatar autora komentarza mateusz
    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. Avatar autora komentarza kolarz
    kolarz

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

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

      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. Avatar autora komentarza Artur
    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. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

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

      1. Avatar autora komentarza Artur
        Artur

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

  6. Avatar autora komentarza Alex
    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. Avatar autora komentarza woodenstuff
    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. Avatar autora komentarza Wojtek
    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. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

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

  9. Avatar autora komentarza Mateusz
    Mateusz

    Dzięki. Przydało mi się.

  10. Avatar autora komentarza Marek
    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. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

      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. Avatar autora komentarza Łukasz
    Ł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. Avatar autora komentarza Kasia
    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. Avatar autora komentarza Jakub Jaworowicz
      Jakub Jaworowicz[ Autor Artykułu ]

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

Przyłącz się do dyskusji