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; }