Produkty sa štandardne vo Woo archívoch nedajú radiť podľa dátumu úpravy. Prečo by to ale niekto mal chcieť?
No napríklad preto, že keď sa posledne upravené produkty zobrazujú v zozname ako prvé, znamená to, že na nich prebehla nejaká zmena. Napríklad, že si dal zľavu. Je super, že dáš zľavu a všetky tieto zľavnené produkty budú celkom hore, nie?
Na toto nastavenie použijeme jednoduchý snippet.
//order by modified_date
add_filter('woocommerce_get_catalog_ordering_args', 'am_woocommerce_catalog_orderby');
function am_woocommerce_catalog_orderby( $args ) {
$args['meta_key'] = '';
$args['orderby'] = 'modified';
$args['order'] = 'desc';
return $args;
}
Jednoducho napíšeme vlastný order a orderby. Tú prázdnu hodnotu meta_key by sme tam asi ani nemuseli mať, ale neskúšal som to bez nej. No a celé to napichneme cez filter na woocommerce_get_catalog_ordering_args, čo je filter, cez ktorý ideme počas toho, ako dostávame zoznam produktov z current query do front-endu. Tam sa napichneme a produkty si pekne zoradíme ako chceme.
Radenie na front-ende
Do štandardných možnosti radenia na front-ende vieme pridať aj vlastné radenie, napr. podľa dátumu modifikácie. Takto:
// Ordering on front-end
add_filter( 'woocommerce_catalog_orderby', 'add_catalog_orderby_by_modified_date' );
function add_catalog_orderby_by_modified_date( $orderby_options ) {
// Rename 'menu_order' label
$orderby_options['modified_date'] = __("Zoradiť podľa dátumu úpravy", "woocommerce");
return $orderby_options;
}