Code lọc sản phẩm giảm giá trong WooCommerce

Tôi vừa code 1 dự án sử dụng theme Blocksy và khách hàng yêu cầu khi truy cập vào website https://website.com/products/?orderby=on_sale thì sẽ hiện các sản phẩm được giảm giá hoặc khi truy cập vào trang lưu trữ sản phẩm hoặc trang danh mục sản phẩm sẽ có mục lọc sản phẩm đơn giản như ảnh dưới đây.

Để thêm chức năng lọc sản phẩm giảm giá trong WooCommerce bạn có thể thêm đoạn code ngắn dưới đây vào file functions.php. Nếu bạn không biết và thêm như thế nào thì có thể đọc qua nhé.

/**
* WooCommerce Sales Sorting Filter
*/
add_filter( 'woocommerce_get_catalog_ordering_args', 'vutruso_get_catalog_ordering_args' );
function vutruso_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 ( 'on_sale' == $orderby_value ) {
        $args['orderby'] = 'meta_value_num';
        $args['order'] = 'DESC';
        $args['meta_key'] = '_sale_price'; 
    }
    return $args;
}
 
add_filter( 'woocommerce_default_catalog_orderby_options', 'vutruso_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'vutruso_catalog_orderby' );
function vutruso_catalog_orderby( $sortby ) {
    $sortby['on_sale'] = 'Sort by on sale';
    return $sortby;
}

Sau khi thêm vào bạn lưu lại và truy cập vào trang lưu trữ sản phẩm hoặc trang danh mục sản phẩm để xem kết quả nhé.

Ở trên là 1 yêu cầu nhỏ và hay sử dụng để lọc các shop nhỏ, ngoài ra nếu bạn muốn các tính năng lọc nâng cao thì có thể sử dụng các plugin chuyên dụng khác.

Từ khóa

Tiến Dũng Đào chuyên quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress với hơn 5 năm phát triển theme và plugin. Sở thích của anh là đọc, viết blog, đi du lịch, tập võ và chia sẻ các kiến thức cho mọi người.

Bài viết liên quan