Thêm, xóa, đổi tên, thay đổi thứ tự của phần Sắp xếp sản phẩm Woocommerce (Customize Sorting product by)

Lưu ý: Dấu hai gạch // sẽ làm cho đoạn code cùng hàng không thể thực thi

Đoạn code sử dụng:

//Bỏ một số sorting
add_filter( 'woocommerce_catalog_orderby', 'misha_remove_default_sorting_options' );
 
function misha_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;
 
}

//Đổi tên một số sorting
//add_filter( 'woocommerce_catalog_orderby', 'misha_rename_default_sorting_options' );
 
//function misha_rename_default_sorting_options( $options ){
 
//	$options[ 'price' ] = 'Giá tăng dần';
//	$options[ 'price-desc' ] = 'Giá giảm dần';
//	$options[ 'popularity' ] = 'Bán chạy nhất';// rename
 
//	return $options;
 
//}

//Thêm sorting by oldest to recent */
// Filters
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );
 
 // Apply custom args to main query
function custom_woocommerce_get_catalog_ordering_args( $args ) {

	$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
 
	if ( 'oldest_to_recent' == $orderby_value ) {
		$args['orderby'] = 'date';
		$args['order'] = 'ASC';
	}
 
	return $args;
}
 
// Create new sorting method
function custom_woocommerce_catalog_orderby( $sortby ) {
	
	$sortby['oldest_to_recent'] = __( 'Cũ nhất', 'woocommerce' );
	$sortby['featured'] = __( 'Sản phẩm nổi bật', 'woocommerce' );
	return $sortby;
}

//Thêm sorting by featured


add_filter( 'woocommerce_get_catalog_ordering_args', 'misha_custom_product_sorting' );
 
function misha_custom_product_sorting( $args ) {
 
	// Sort alphabetically
	//if ( isset( $_GET['orderby'] ) && 'title' === $_GET['orderby'] ) {
		//$args['orderby'] = 'title';
		//$args['order'] = 'asc';
	//}
 
	// Show products in stock first
	if( isset( $_GET['orderby'] ) && 'featured' === $_GET['orderby'] ) {
		$args['meta_key'] = '_featured';
		$args['orderby'] = array( 'meta_value' => 'ASC' );
	}
 
	return $args;
 
}

//Thay đổi thứ tự sorting


add_filter( 'woocommerce_catalog_orderby', 'misha_change_sorting_options_order', 5 );
 
function misha_change_sorting_options_order( $options ){
 
	$options = array(
 
		//'menu_order' => __( 'Default sorting', 'woocommerce' ), // you can change the order of this element too
		'featured'      => __( 'Sản phẩm nổi bật', 'woocommerce' ),
		'price'      => __( 'Giá tăng dần', 'woocommerce' ), // I need sorting by price to be the first
		'price-desc' => __( 'Giá giảm dần', 'woocommerce' ),
		'oldest_to_recent' => __( 'Cũ nhất', 'woocommerce' ), 
		'date'       => __( 'Mới nhất', 'woocommerce' ), 
 
		// and leave everything else without changes
		'popularity' => __( 'Bán chạy nhất', 'woocommerce' ),
		
		
 
	);
 
	return $options;
 
}


0989 333 069
Chat Zalo