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









Brak komentarzy