Đây là 2 đoạn shortcode nho nhỏ mình sưu tầm lại được trong quá trình “tìm cách” show số sản phẩm nằm trong một danh mục sản phẩm của Woocommerce. Cả 2 cách đều hiển thị tốt
Việc bạn cần làm là gì?
Vẫn như mọi khi, copy và “vứt” nó vào function.php của theme ( hoặc child-theme ) bạn đang dùng -> Gọi shortcode là xong!
Bắt đầu thôi!
Cách 1
# Shortcode đếm số lượng sản phẩm trong một Danh mục sản phẩm # Excample `[products-counter category="dtdd"]` OR `[products-counter category="18"]` add_shortcode( 'products-counter', 'products_counter' ); function products_counter( $atts ) { $atts = shortcode_atts( [ 'category' => '', ], $atts ); $taxonomy = 'product_cat'; if ( is_numeric( $atts['category'] ) ) { $cat = get_term( $atts['category'], $taxonomy ); } else { $cat = get_term_by( 'slug', $atts['category'], $taxonomy ); } if ( $cat && ! is_wp_error( $cat ) ) { return $cat->count; } return ''; }
Cách dùng: có thể gọi bằng 2 cách khác, đó là thông qua slug hoặc id của danh mục sản phẩm. Cách lấy slug hoặc id như thế nào thì cứ để lại comment hoặc inbox facebook mình nhé
[products-counter category="may-loc-nuoc"]
Chú ý “slug” là đường dẫn của danh mục sản phẩm, trong đómay-loc-nuoc
chính là slug mình cần đếm số lượng sản phẩm[products-counter category="18"]
Tương tự, mình chỉ cần gọi ID của danh mục là xong
Cách 2
add_shortcode( 'products-counter', 'products_counter' ); function products_counter( $atts ) { $atts = shortcode_atts( [ 'category' => '', ], $atts ); $args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $atts['category'] ) ), 'meta_query' => array( array( 'key' => '_stock_status', 'value' => 'instock' ), ) ); $query = new WP_Query($args); $inStockCount = $query->found_posts; if ( $query && ! is_wp_error( $query ) ) { return $inStockCount; } return ''; }
Giải thích: Cách này đếm số lượng sản phẩm còn hàng nằm trong danh mục và cách dùng là…[products-counter category="may-loc-nuoc"]
cách này thì gọi thẳng slug của danh mục đó.
Tạm thế đã, hết rồi!
Quét mã QR để đọc bài viết này để xem tiếp trên điện thoại