Dostępne warianty w widoku kategorii
Jedną z rzeczy, które mogą mocno zirytować klienta jest sytuacja, gdy wchodzi na stronę wybranego produktu, już ma zamiar go kupić a tu skucha – brak odpowiedniego rozmiaru lub koloru. Wkurzony, ze już się naklikał wychodzi ze sklepu – dokładnie jak w sklepie stacjonarnym. Dość ciekawym i prostym sposobem jaki kiedyś sobie umyśliłem i wdrożyłem jest pokazanie dostępnych wariantów już na stronie kategorii produktów. Takie rozwiązanie mamy w sklepie etraper.pl, gdzie zaraz za krótkim opisem produktu są umieszczone dostępne rozmiary.
Efekt ciekawy a wySTARCZY kilka linijek kodu – dlatego jestem STARCZYM PROGRAMISTĄ 🙂
Do sedna. Zabawimy się z akcją woocommerce_after_shop_loop_item – dzięki niej możemy sobie 'wstrzyknąć’ kodzik w każdym produkcie wyświetlanym na stronie kategorii lub sklepu
add_action( 'woocommerce_after_shop_loop_item', 'pokaz_rozmiary', 9 );
No i lecimy. Dawno temu to pisałem więc dopiero teraz dotarło do mnie, że nazwanie funkcji 'pokaż rozmiary’ może być niewłaściwie zrozumiane, ale to i tak nic w porównaniu z komentarzami większości programistów. Polecam podejrzeć np. kod kilku wtyczek kurierskich – niektórzy lubują się w zostawianiu śmieci typu alert(’dupa’).
Dobra czas na naszą funkcję:
function pokaz_rozmiary() { global $product; $rozmiarowka = array(); if ($product->product_type == 'variable') { //sprawdzamy czy produkt ma warianty $warianty = $product->get_available_variations(); //musimy pobrać tylko dostępne warianty foreach ($warianty as $wariant) { $atrybuty = $wariant['attributes']; foreach ($atrybuty as $atrybut){ $rozmiarowka[] = $atrybut; } } sort($rozmiarowka); // nie ufaj nigdy użytkownikowi i wordpresowi - programisto posortuj to sam echo '<div style="text-align:center; margin-bottom:5px; text-transform: uppercase;">'; foreach ($rozmiarowka as $rozmiarek) { echo '<span style="background:#aaaaaa; color:#ffffff; padding:2px; margin:1px;">'.$rozmiarek.'</span>'; //oczywiście tutaj powinniśmy zrobić sobie class na span i pomodzić jak nam się podoba ale chciałem żeby było w jednym miejscu } echo '</div>'; } }
Pstryk i gotowe !! Jak ktoś ma dużo czasu to może sobie poszukać ile kosztują wtyczki, które to robią.