Ten kod PHP pozwala na automatyczne ukrywanie produktów, które są niedostępne w magazynie, dzięki czemu sklep WooCommerce jest lepiej zorganizowany. Kod działa poprzez modyfikację głównego zapytania sklepu, aby wyświetlało tylko produkty dostępne w magazynie. Aby zastosować ten kod, wystarczy dodać go do pliku functions.php Twojego motywu WordPress.
Korzyści dla Administratora Sklepu:
- Łatwiej zarządzasz asortymentem, ponieważ funkcja automatycznie ukrywa niedostępne produkty, zmniejszając potrzebę ręcznego zarządzania ich widocznością.
- Dzięki poprawionej organizacji sklepu, sklep wygląda bardziej uporządkowanie, co w rezultacie ułatwia zarządzanie produktami.
Korzyści dla Klienta:
- Lepsze doświadczenie zakupowe, ponieważ klienci widzą tylko dostępne produkty, co w rezultacie zmniejsza frustrację związaną z przeglądaniem niedostępnych artykułów.
- Szybsze decyzje zakupowe, ponieważ przeglądanie oferty jest bardziej efektywne, co może w rezultacie przyspieszyć decyzje zakupowe.
Implementacja tego kodu pomaga w utrzymaniu przejrzystości oferty sklepu, a także poprawia ogólne doświadczenie użytkowników odwiedzających stronę.
function hide_out_of_stock_products($query) { if (!is_admin() && $query->is_main_query() && is_shop()) { $query->set('meta_query', array( array( 'key' => '_stock_status', 'value' => 'instock', 'compare' => '=' ) )); } } add_action('pre_get_posts', 'hide_out_of_stock_products');
Wyjaśnienie Działania Kodu
- Funkcja hide_out_of_stock_products:
- Funkcja ta przyjmuje jako argument zmienną $query, która reprezentuje główne zapytanie WordPressa.
- Wewnątrz funkcji sprawdzane są trzy warunki:
- !is_admin(): Upewnia się, że kod jest wykonywany tylko na froncie strony, a nie w panelu administracyjnym WordPressa.
- $query->is_main_query(): Upewnia się, że modyfikowane jest główne zapytanie, a nie dodatkowe zapytania, które mogą być uruchamiane na stronie.
- is_shop(): Upewnia się, że kod jest uruchamiany tylko na stronie sklepu WooCommerce.
- Modyfikacja Zapytania:
- Jeśli wszystkie powyższe warunki są spełnione, kod modyfikuje główne zapytanie sklepu WooCommerce, dodając do niego meta_query.
- meta_query filtruje produkty w oparciu o meta klucz _stock_status, który przechowuje status zapasów produktu.
- Ustawienie:
- key = _stock_status: Oznacza, że filtrujemy na podstawie statusu zapasów.
- value = instock: Ustawia wartość filtra na instock, co oznacza, że tylko produkty dostępne w magazynie będą wyświetlane.
- compare =
=
: Porównuje wartość _stock_status z instock.
- Dodanie Funkcji do Akcji pre_get_posts:
- Funkcja hide_out_of_stock_products jest przypięta do akcji pre_get_posts, która jest wywoływana przed wykonaniem głównego zapytania WordPressa.
- Dzięki temu nasza funkcja modyfikuje zapytanie, gdy WordPress tworzy je w celu pobrania produktów do wyświetlenia na stronie sklepu.
Krótka Instrukcja Implementacji Kodu
Zalecam dodanie go przez wtyczkę Code Snippets zamiast bezpośredniego edytowania pliku functions.php w motywie. Bezpośrednie edytowanie functions.php może spowodować utratę kodu, ponieważ kod może zostać usunięty po aktualizacji motywu.
Instrukcja Implementacji przez Wtyczkę Code Snippets
- Zainstaluj Wtyczkę Code Snippets:
- Zaloguj się do panelu administracyjnego WordPressa.
- Przejdź do Wtyczki > Dodaj nową.
- Wyszukaj „Code Snippets”.
- Zainstaluj i aktywuj wtyczkę „Code Snippets”.
- Dodaj Nowy Snippet:
- Po aktywacji wtyczki, przejdź do Snippets > Add New.
- Nadaj swojemu snippetowi tytuł, np. „Ukryj Produkty Bez Zapasów”.
- Wklej Kod:
- Skopiuj powyższy kod i wklej go do pola kodu w wtyczce.
- Zapisz i Aktywuj Snippet:
- Kliknij przycisk „Save Changes and Activate”.
Dlaczego Wtyczka Code Snippets?
Korzystanie z wtyczki Code Snippets ma kilka zalet:
- Bezpieczeństwo: Aktualizacja nie usunie kodu.
- Łatwe zarządzanie, ponieważ snippety są łatwe do zarządzania i wyłączania bez potrzeby modyfikowania plików motywu.
- Organizacja jest lepsza, ponieważ możesz przechowywać wszystkie swoje niestandardowe kody w jednym miejscu, co ułatwia ich edycję i zarządzanie.