Skip to content

Instantly share code, notes, and snippets.

@ofernandolopes
Forked from bekarice/wc-sku-sorting.php
Created August 1, 2017 12:32
Show Gist options
  • Save ofernandolopes/763b746870025d2f0b2fcf94ebc0cd6e to your computer and use it in GitHub Desktop.
Save ofernandolopes/763b746870025d2f0b2fcf94ebc0cd6e to your computer and use it in GitHub Desktop.
Sort WooCommerce Products by SKU
/**
* Adds the ability to sort products in the shop based on the SKU
* Can be combined with tips here to display the SKU on the shop page: https://www.skyverge.com/blog/add-information-to-woocommerce-shop-page/
*/
function sv_add_sku_sorting( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'sku' == $orderby_value ) {
$args['orderby'] = 'meta_value';
$args['order'] = 'asc';
// ^ lists SKUs alphabetically 0-9, a-z; change to desc for reverse alphabetical
$args['meta_key'] = '_sku';
}
return $args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'sv_add_sku_sorting' );
function sv_sku_sorting_orderby( $sortby ) {
$sortby['sku'] = 'Sort by SKU';
// Change text above as desired; this shows in the sorting dropdown
return $sortby;
}
add_filter( 'woocommerce_catalog_orderby', 'sv_sku_sorting_orderby' );
add_filter( 'woocommerce_default_catalog_orderby_options', 'sv_sku_sorting_orderby' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment