Skip to content

Instantly share code, notes, and snippets.

@omniacode
Last active October 22, 2020 15:09
Show Gist options
  • Save omniacode/4c0de505a6595e7dd8d4ab01dbb459e1 to your computer and use it in GitHub Desktop.
Save omniacode/4c0de505a6595e7dd8d4ab01dbb459e1 to your computer and use it in GitHub Desktop.
Custom WooCommerce Sorting Options
// Fix Default WooCommerce Sorting
function ocs_remove_default_sorting_options( $options ){
unset( $options[ 'popularity' ] );
unset( $options[ 'menu_order' ] );
unset( $options[ 'rating' ] );
unset( $options[ 'date' ] );
unset( $options[ 'price' ] );
unset( $options[ 'price-desc' ] );
return $options;
}
add_filter( 'woocommerce_catalog_orderby', 'ocs_remove_default_sorting_options' );
// Add Alphabetical sorting option to shop page
function ocs_alphabetical_woocommerce_shop_ordering( $sort_args ) {
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'name_a_to_z' == $orderby_value ) {
$sort_args['orderby'] = 'name';
$sort_args['order'] = 'asc';
$sort_args['meta_key'] = '';
}
if ( 'name_z_to_a' == $orderby_value ) {
$sort_args['orderby'] = 'name';
$sort_args['order'] = 'desc';
$sort_args['meta_key'] = '';
}
return $sort_args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'ocs_alphabetical_woocommerce_shop_ordering' );
// Add custom sortby options
function ocs_custom_woocommerce_catalog_orderby( $sortby ) {
$sortby['name_a_to_z'] = 'Sort by Name: A to Z';
$sortby['name_z_to_a'] = 'Sort by Name: Z to A';
return $sortby;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'ocs_custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'ocs_custom_woocommerce_catalog_orderby' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment