Wyświetlaj tylko dostępne produkty w sklepie poprzez sortowanie – WooCommerce
Domyślnie w WooCommerce wyświetlane są wszystkie produkty – te na stanie i te których brakuje na magazynie, chyba że ukryjemy to w ustawieniach magazynu klikając w opcje- nie pokazuj niedostępnych produktów. Co jednak jeśli chcemy zachować wszystkie produkty ale filtrować je poprzez wyświetlenie jedynie dostepnych w danej chwili ?
Wystarczy prosty kod w pliku functions.php naszego szablonu. Dzięki niemu na stronie dodamy opcje sortowania pokazujące tylko dostepne na stanie produkty. Jest to bardzo przydatne gdy większość produktów nie ma na stanie a klient bulwersuje się widąc stan dopiero po wejściu w dany produkt.
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' ); function custom_woocommerce_catalog_orderby( $sortby ) { $sortby['in_stock'] = 'Dostępne produkty'; return $sortby; }
Krok 2: Modyfikowanie zapytania na podstawie opcji sortowania
Następnie, użyjemy hooka woocommerce_product_query
do zmodyfikowania zapytania, kiedy użytkownik wybierze nową opcję sortowania:
// Display only available products in the store by sorting - WooCommerce
add_action( 'woocommerce_product_query', 'custom_woocommerce_product_query' ); function custom_woocommerce_product_query( $q ){ $orderby = isset( $_GET['orderby'] ) ? wc_clean( wp_unslash( $_GET['orderby'] ) ) : ''; if ( 'in_stock' == $orderby ) { $q->set( 'meta_key', '_stock_status' ); $q->set( 'meta_value', 'instock' ); } }
Jeśli potrzebujesz pomocy z kodem lub masz inny problem związany z programowaniem, szukasz niestandardowego rozwiązania, napisz do nas a na pewno znajdziemy rozwiązanie – Kontakt