Mikebb
Mikebb

Reputation: 81

Woocommerce how to sort products by "last modified" date?

So here is my link:

https://snake.cl/shop/?orderby=date

This shows products by date created.

The problem I have is that I update the inventory of products and I would like them to show as if "new" or "now available".

So if I could sort by last modified date, that would work I think.

I had a look at some WP parameters for queries, and tried:

https://snake.cl/shop/?orderby=modified

but that doesn't work.

Any ideas?

Thanks!

Upvotes: 3

Views: 4303

Answers (2)

Mikebb
Mikebb

Reputation: 81

OK, I figured it out for anyone else that might need this.

This is the proper "query_var": ?orderby=modified-desc.

https://snake.cl/shop/?orderby=modified-desc

that sorted my products by the last modified date, i.e when I update the inventory it shows up first.

Upvotes: 2

Rajeev Singh
Rajeev Singh

Reputation: 1809

You should try this for Sort by last modified date order by DESC.

// Apply Sort By Last Modified
add_filter( 'woocommerce_get_catalog_ordering_args', 'woo_add_postmeta_ordering_args' );
function woo_add_postmeta_ordering_args( $args_sort ) {

  $orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : '';

  switch( $orderby_value ) {
     case 'last_modified':
        $args_sort['orderby']  = 'modified';
        $args_sort['order']    = 'DESC';
     break;
  }
  return $args_sort;
}

// Add "Sort By Last Modified" option in dropdown
add_filter( 'woocommerce_default_catalog_orderby_options', 'woo_add_new_postmeta_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'woo_add_new_postmeta_orderby' );

function woo_add_new_postmeta_orderby( $sortby ) {
    $sortby['last_modified'] = __( 'Sort By Last Modified', 'woocommerce' );
    return $sortby;
}

enter image description here

Upvotes: 3

Related Questions