Nedávno jsem řešil na eshopu změnu výchozího řazení produktů. Nově mělo být výchozí řazení dle ceny od nejnižší. Řazení se mění zde: Vzhled – Přizpůsobit – WooCommerce – Katalog produktů. V mém případě jsem zvolil Seřadit dle ceny (vzestupně) a bylo hotovo?

Produkty se sice začaly řadit dle ceny od nejnižší, ale vyběhly tam na mě i nějaké produkty, které jsou momentálně nedostupné. Naštěstí lze velice snadno tyto produkty skrýt. V sekci WooCommerce – Nastavení – Produkty – Sklad je volba Skrýt položky v katalogu, které nejsou na skladě.

Co když ale nechcete tyto produkty skrýt ale pouze je zařadit na konec seznamu? Tedy aby zákazníka nerušily na prvních stránkách, ale zároveň byly k dispozici jako lákadlo, že něco takového máte. V tomto případě už bylo potřeba sáhnout do kódu. Do souboru functions.php ve své aktivní child šabloně zapište následující kód.
Kód pozmění dotaz na tabulku produktů a jako primární řazení nastaví dle stavu skladu (je/není skladem) a jako sekundární nastaví dle ceny od nejnižší. Ještě pozor! Aby to fungovalo musíte si přepnout řazení produktů na Výchozí třídění (zvláštní řazení + název) (viz. první obrázek).