Lọc sản phẩm theo tình trạng Stock trong phần quản trị Woocommerce

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).

woocommerce product

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ả:

woocommerce stock filter admin

Chúc các bạn thành công!

 


Hosting LiteSpeed SSD giá rẻ

admin has written 106 articles

Các bạn cần hỗ trợ hoặc kết bạn vui lòng liên hệ:
Skype: lephonghau37
Email: lephonghau@gmail.com
Zalo: 0908 077 994

Hosting Hawk Host

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>