How to sort products in shop page by defined category order?


I am currently working on sorting the shop page products based on a defined category order and stock count.

I got the stock count sorting working but I am unable to find a proper way to implement sort by category along with it.

I have many categories listed in my woocommerce site in that I would like to have few category products to be listed first and rest as follows.

Currently I am using the following code to sort the products by stock count and date. I need some help on adding the category sort along with it.

add_action( 'pre_get_posts', function ( $q ) {
  if (   is_shop()                  
     && $q->is_main_query()        
     && $q->is_post_type_archive() 
    && !is_admin()
  ) {
    $q->set( 'meta_key', '_stock' );
   // $q->set( 'orderby',  'meta_value' );
    $q->set('orderby', array('meta_value' => 'DESC', 'date' => 'DESC'));
, , , , Abdul 4 years 2020-07-12T12:10:34-05:00 0 Answers 70 views 0

Leave an answer