Prowadząc sklep internetowy, często łapałem się na tym, że muszę szybko sprawdzić, które produkty zaczynają się kończyć – szczególnie te, których w magazynie zostało zaledwie 1–5 sztuk. W panelu WooCommerce widać wprawdzie statusy „Na stanie” czy „Brak w magazynie”, ale trudno było mi je posortować i od razu wyłapać pozycje wymagające uzupełnienia. Dlatego postanowiłem dodać prostą funkcję sortowania po ilości w magazynie bezpośrednio na liście produktów. Okazało się to szybkim i bardzo praktycznym rozwiązaniem, które znacząco ułatwia codzienną pracę.
Cel: dodać w panelu Produkty → Wszystkie produkty możliwość sortowania listy po stanie magazynowym, aby łatwo znaleźć produkty z ilościami 1, 2, 3, 4 itd.
Wymagania i przygotowanie
- Uprawnienia Administratora do panelu WordPress.
- Włączony WooCommerce.
- Kopia zapasowa (zrób backup lub rób to na środowisku testowym).
- (Rekomendowane) pracuj w motywie potomnym – dzięki temu aktualizacje motywu nie usuwają zmian.
- Przeczytaj artykułu: „Jak stworzyć motyw potomny w WordPress (child theme) – prosty poradnik”.
Szybki skrót
Jeśli chcesz po prostu, aby kolumna “stan magazynowy” miała możliwość sortowania:
- Zainstaluj wtyczkę Code Snippets (lub edytuj
functions.phpmotywu potomnego). - Wklej fragment kodu z sekcji „Metoda A”.
- Zapisz i odśwież listę Produkty → Wszystkie produkty.
- Kliknij nagłówek kolumny “Stan magazynowy”, żeby sortować rosnąco/malejąco.
Metoda A — sortowanie po istniejącej kolumnie „Stan magazynowy” (bez wtyczek)
To najprostszy wariant: korzystamy z istniejącej kolumny „Stan magazynowy” i tylko dokładamy do niej możliwość sortowania produktów po ilości w magazynie.
Gdzie wkleić kod?
- Wtyczka Code Snippets → „Add New”, albo
- na końcu pliku
functions.phpmotywu potomnego.
Uwaga: Upewnij się, że żaden inny snippet nie modyfikuje w tym samym czasie sortowania produktów (konflikty potrafią wyłączyć sortowanie). Ten kod działa wyłącznie w panelu admina, na ekranie listy produktów.
Kod:
// Ustawia kolumnę 'Stan magazynowy' jako sortowalną
add_filter( 'manage_edit-product_sortable_columns', function( $columns ) {
$columns['is_in_stock'] = 'stock';
return $columns;
});
add_action( 'pre_get_posts', function( $q ) {
if ( ! is_admin() || ! $q->is_main_query() ) return;
if ( 'product' !== $q->get( 'post_type' ) ) return;
if ( 'stock' === $q->get( 'orderby' ) ) {
$q->set( 'meta_key', '_stock' );
$q->set( 'orderby', 'meta_value_num' );
$q->set( 'meta_query', [
'relation' => 'OR',
[ 'key' => '_stock', 'compare' => 'EXISTS' ],
[ 'key' => '_stock', 'compare' => 'NOT EXISTS' ],
] );
}
});
Co otrzymujesz?
- Klikając nagłówek Stan magazynowy, sortujesz produkty po liczbie
dostępnych sztuk(rosnąco/malejąco). - Kod nie dodaje nowych kolumn – wykorzystujemy to, co już jest w WooCommerce.
Metoda B — z wtyczkami
Jeśli nie chcesz dodawać kodu:
Wtyczka Admin Columns (darmowa/PRO)
- Zainstaluj i włącz Admin Columns.
- Wejdź w Ustawienia → Admin Columns → wybierz ekran Produkty.
- Dodaj kolumnę Stock (lub Stock Quantity) i zaznacz Sortowalne.
- Zapisz – kolumna pojawi się w liście produktów i można po niej sortować.
Testowanie i korzystanie
- Wejdź w Produkty → Wszystkie produkty.
- Jeśli nie widzisz kolumny, rozwiń w prawym górnym rogu Opcje ekranu i upewnij się, że jest zaznaczona.
- Kliknij nagłówek “Stan magazynowy”, aby sortować.
- Używaj pól wyszukiwania/filtrów (np. kategorie), aby zawęzić listę i szybciej wyłapać produkty z ilościami 1–5.
Najczęstsze pytania (FAQ)
Czy to działa z produktami z wariantami?
Częściowo. WooCommerce zwykle trzyma stany na wariantach, a nie na produkcie nadrzędnym. Kolumna „Stan magazynowy” pokaże wartość tylko wtedy, gdy produkt nadrzędny faktycznie zarządza stanem (rzadziej spotykane). Sortowanie opiera się na meta _stock – czyli głównie proste produkty. Jeśli większość asortymentu to warianty, rozważ wtyczkę Admin Columns PRO (ma gotowe kolumny/filtry dla wariantów) lub oddzielny ekran Stock Manager.
Czy to wpłynie na wydajność?
Kod jest lekki i działa tylko w panelu. Nie powinien obciążać strony.
Czy muszę używać Code Snippets?
Nie, możesz wkleić kod do functions.php motywu potomnego. Wtyczka ułatwia zarządzanie i wyłączanie fragmentów.
Przywracanie zmian / usuwanie
- Jeśli używasz Code Snippets – po prostu deaktywuj lub usuń dany snippet.
- Jeśli wkleiłeś do
functions.php– usuń fragment kodu i zapisz plik.
Gotowe!
Od teraz możesz sortować produkty po ilości w magazynie bez wychodzenia z listy produktów i szybciej wyłapywać pozycje ze stanem 1–5 itd.


