Mặc định trong phần quản trị sản phẩm của Woocommercce chỉ cho phép lọc theo danh mục sản phẩm như thế này(hình dưới).
Vậy nếu bạn muốn quản lý kho hàng( Stock) và bạn muốn lọc xem sản phẩm nào còn hàng, sản phẩm nào hết hàng thì phải làm sao đây?
Mình xin chia sẻ cách thêm phần lọc theo tình trạng hàng hóa ở khung Filter như sau:
Bạn chèn đoạn code sau đây vào file funtions.php của theme đang sử dụng:
<?php /* Add In/Out of Stock Filter to Admin */ add_action( 'restrict_manage_posts', 'woostock_admin_posts_filter_restrict_manage_posts' ); function woostock_admin_posts_filter_restrict_manage_posts(){ $type = 'product'; if (isset($_GET['post_type'])) { $type = $_GET['post_type']; } //only add filter to post type you want if ('product' == $type){ //change this to the list of values you want to show //in 'label' => 'value' format $values = array( 'Out of Stock' => 'outofstock', 'In Stock' => 'instock', ); ?> <select name="Stock"> <option value=""><?php _e('Show All Stock', 'wpse45436'); ?></option> <?php $current_v = isset($_GET['Stock'])? $_GET['Stock']:''; foreach ($values as $label => $value) { printf ( '<option value="%s"%s>%s</option>', $value, $value == $current_v? ' selected="selected"':'', $label ); } ?> </select> <?php } } add_filter( 'parse_query', 'woostock_posts_filter' ); function woostock_posts_filter( $query ){ global $pagenow; $type = 'product'; if (isset($_GET['post_type'])) { $type = $_GET['post_type']; } if ( 'product' == $type && is_admin() && $pagenow=='edit.php' && isset($_GET['Stock']) && $_GET['Stock'] != '') { $query->query_vars['meta_key'] = '_stock_status'; $query->query_vars['meta_value'] = $_GET['Stock']; } }
Và đây là kết quả:
Chúc các bạn thành công!