Cách làm: Thêm đoạn code vào file functions.php trong thư mục theme hiện tại.
- Đoạn code sẽ giữ nguyên các sắp xếp từ woocommerce trước đó (vd: sắp xếp theo giá, mới nhất…)
- Chuyển những sản phẩm hết hàng xuống cuối cùng
//sắp xếp sản phẩm hết hàng xuống cuối cùng function _nok_order_by_stock_status( $posts_clauses, $query ) { // only change query on WooCommerce loops if ( $query->is_main_query() && ( is_product_category() || is_product_tag() || is_product_taxonomy() || is_shop() ) ) { global $wpdb; $posts_clauses['join'] .= " LEFT JOIN ( SELECT post_id, meta_id, meta_value FROM $wpdb->postmeta WHERE meta_key = '_stock_status' AND meta_value <> '' ) istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) "; $posts_clauses['orderby'] = " CASE istockstatus.meta_value WHEN 'outofstock' THEN 1 ELSE 0 END ASC, " . $posts_clauses['orderby']; } return $posts_clauses; } add_filter( 'posts_clauses', '_nok_order_by_stock_status', 2000, 2 ); //end sắp xếp sản phẩm hết hàng xuống cuối cùng
-cre: _nok_
P/S: Đoạn code tác động đến frontend shop, danh mục sản phẩm
Link rút gọn của bài viết: https://longnh.com/Llnmh