Xóa, Đổi Tên, Thêm Tùy Chọn Lọc “Sorting” Trong Woocommerce

Một ngày nào đấy bạn dùng đến bộ lọc “sorting” và thấy nó tù vãi chày là lúc bạn tìm được bài viết này của tui đấy.

Xóa tùy chọn lọc

Nhớ cái filter của nó là woocommerce_catalog_orderby còn gỡ là unset, unset cái gì đọc note nhé.

/**
* @snippet       Remove Sorting Option @ WooCommerce Shop
* @how-to        Get CustomizeWoo.com FREE
* @author        Rodolfo Melogli
* @testedwith    WooCommerce 3.8
* @community     https://businessbloomer.com/club/
*/
  
add_filter( 'woocommerce_catalog_orderby', 'bbloomer_remove_sorting_option_woocommerce_shop' );
  
function bbloomer_remove_sorting_option_woocommerce_shop( $options ) {
   unset( $options['rating'] );   
   return $options;
}
  
// Note: you can unset other sorting options by adding more "unset" calls... here's the list: 'menu_order', 'popularity', 'rating', 'date', 'price', 'price-desc'

Đổi tên tùy chọn lọc

Tương tự như xóa nhưng thay unset bằng $options[”] nhé, đổi tên cái gì đọc note bên trên.

/**
* @snippet       Rename a Sorting Option @ WooCommerce Shop
* @how-to        Get CustomizeWoo.com FREE
* @author        Rodolfo Melogli
* @testedwith    WooCommerce 3.8
* @community     https://businessbloomer.com/club/
*/
  
add_filter( 'woocommerce_catalog_orderby', 'bbloomer_rename_sorting_option_woocommerce_shop' );
  
function bbloomer_rename_sorting_option_woocommerce_shop( $options ) {
   $options['price'] = 'Sort by price (asc)';   
   return $options;
}

Thêm tùy chọn lọc

Tạo một bộ lọc sản phẩm rồi thêm vào thôi

/**
* @snippet       Add a Custom Sorting Option @ WooCommerce Shop
* @how-to        Get CustomizeWoo.com FREE
* @author        Rodolfo Melogli
* @testedwith    WooCommerce 4.0
* @community     https://businessbloomer.com/club/
*/
  
// 1. Create new product sorting rule
  
add_filter( 'woocommerce_get_catalog_ordering_args', 'bbloomer_sort_by_name_woocommerce_shop' );
  
function bbloomer_sort_by_name_woocommerce_shop( $args ) { 
   $orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
   if ( 'name' == $orderby_value ) {
      $args['orderby'] = 'title';
      $args['order'] = 'DESC';
   } 
   return $args;
}
  
// 2. Add new product sorting option to Sorting dropdown
  
add_filter( 'woocommerce_catalog_orderby', 'bbloomer_load_custom_woocommerce_catalog_sorting' );
  
function bbloomer_load_custom_woocommerce_catalog_sorting( $options ) {
   $options['name'] = 'Sort by name (desc)';
   return $options;
}

Phần thêm nó hơi loằng ngoằng 1 tý mình cứ lấy theo các trường của sản phẩm là được, nguồn ở đây anh em nào muốn nghiên cứu tài liệu thì vào đây nhé.