Skip to content

Instantly share code, notes, and snippets.

@autumned
Created March 26, 2016 18:04
Show Gist options
  • Save autumned/2256831adff7297d12a3 to your computer and use it in GitHub Desktop.
Save autumned/2256831adff7297d12a3 to your computer and use it in GitHub Desktop.
WP Woocommerce Sorting by Price Buttons
<div class="product_filter">
<?php
$order = get_query_var('order') ? get_query_var('order') : false;
$orderby = get_query_var('meta_key') ? get_query_var('meta_key') : false;
$ord_asc = '';
$ord_desc = '';
if(($orderby != false && $orderby == '_price') && $order != false){
if($order == 'ASC') $ord_asc = 'order_active_link';
if($order == 'DESC') $ord_desc = 'order_active_link';
}
?>
<a class="<?php echo $ord_asc; ?>" href="<?php echo get_category_link() ?>?orderby=price&order=asc"><i class="icon-long-arrow-down" style="display: inline;"></i> Сначала подешевле </a> &nbsp; &nbsp;
<a class="<?php echo $ord_desc; ?>" href="<?php echo get_category_link() ?>?orderby=price&order=desc"><i class="icon-long-arrow-up" style="display: inline;"></i> Сначала подороже</a>
</div>
<?php
add_filter('woocommerce_get_catalog_ordering_args', 'am_woocommerce_catalog_orderby');
function am_woocommerce_catalog_orderby( $args ) {
$order = get_query_var('order') ? get_query_var('order') : 'asc';
$orderby = get_query_var('orderby') ? get_query_var('orderby') : apply_filters( 'woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby') );
if($orderby != get_option( 'woocommerce_default_catalog_orderby' )){
$args['meta_key'] = '_'.$orderby;
$args['orderby'] = 'meta_value_num';
$args['order'] = $order;
}
return $args;
}
.order_active_link, .order_active_link i{
color: #ffbb00 !important;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment