Zakładki na stronie z produktem woocommerce
Wchodzicie na stronę z produktem i tam opis, opis rozszerzony i komentarze. Twórcy skórek robią wyścigi w układaniu tego banału w poziomie, w pionie, animacje i inne kreacje. Wszędzie tak samo, wszędzie trywialnie, a osoby wprowadzające produkt zazwyczaj głowią się co napisać w opisie skróconym a co w opisie rozszerzonym przy produkcie typu „gwóźdź stalowy”. To nawet nie jest wina woocommerca, to przypadłość uniwersalności systemów. Cechy, właściwości produktu zależą od tegoż właśnie produktu. Co innego możemy napisać o śrubie (jak ją wkręcić, gdzie ją wkręcić, czym ją wkręcić) co innego o szamponie (jakie ma składniki, do jakich włosów jest przeznaczony). Ale w większości przypadków są to na tyle istotne i charakterystyczne informacje, że zasługują na osobną zakładkę na karcie produktu.
Wszystkie operacje na zakładkach (tabs) dokonujemy za pomocą filtra 'woocommerce_product_tabs’.
W celu dodania nowej zakładki wywołujemy poniższą funkcję:
add_filter( 'woocommerce_product_tabs', 'woo_nowa_zakladka' ); function woo_nowa_zakladka( $tabs ) { $tabs['zakladka'] = array( 'title' = 'Tytuł zakładki', 'priority' = 20, // priorytet czyli kolejność 'callback' = 'woo_nowa_zakladka_content' //wywołanie funkcji odpowiedzialnej za treść zakładki ); }
Zakładka jest już gotowa teraz musimy zadbać o to co chcemy w niej wyświetlić.
function woo_nowa_zakladka_content() { echo 'test zakładki'; }
I gotowe!.
W praktyce zazwyczaj chcemy by w nowej zakładce pojawiła się jakaś treść związana z wyświetlanym produktem. Może być to tabela rozmiarów dla danego produktu, opis marki, opis technologii lub np. widok 360 produktu. Wszystkie z tych rozwiązań zostały zastosowane w sklepie etraper.pl.
Na koniec krótka informacja o tym jak zmieniać kolejność zakładek.
Zmiana kolejności zakładek. Za pomocą filtrów możemy zmieniać kolejność wyświetlania zakładek:
if ( comments_open() ) add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 ); //jeśli komentarze dla produktu są włączone function woo_reorder_tabs( $tabs ) { $tabs['reviews']['priority'] = 60; // domyślnie komentarze mają priority = 30 return $tabs; }