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.
21 komentarzy “[WooCommerce] Usunięcie ceny wariantów – wyświetlanie jednej ceny”
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.
baja
Witam ja również szukam tego jak usunąć cenę za darmo… mamy już jakieś rozwiązanie ?
Mateusz Jaworowicz[ Autor Artykułu ]
Jest :) https://jaworowi.cz/jak-usun-cen-za-darmo-woocommerce-wordpress-2777.php
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
Mateusz Jaworowicz[ Autor Artykułu ]
Kod został poprawiony pod najnowszą wersję Woo + Twój motyw.
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
kolarz
Wielkie dzięki za pomoc – kod wklejony, cały sklep się wyje…..ł. Koszt backupu – 50 zł.
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.
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!
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".
Artur
<p>Super, dzięki jeszcze raz!</p>
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'.
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 :(
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źć”? :)
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.
Mateusz
Dzięki. Przydało mi się.
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)
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.
Ł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.
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…
Jakub Jaworowicz[ Autor Artykułu ]
Skorzystaj z wtyczki WP Sheet Editor https://wpsheeteditor.com/extensions/woocommerce-spreadsheet/ i życie stanie się prostsze :)