Hướng dẫn Woocommerce

Search sản phẩm theo danh mục trong WooCommerce

Chào các bạn! Hôm nay mình đã trở lại và tiếp tục với seri học lập trình theme wordpress woocommerce. Bài viết hôm nay mình sẽ hướng dẫn cho các bạn làm chức năng search sản phẩm theo danh mục trong woocommerce.

Bài viết này không chỉ áp dụng cho woocommerce mà còn sử dụng cho tất cả các trường hợp serch theo một category, theo tag, hay theo 1 taxonomy bất kỳ.

Chức năng này mình đã có xây dựng trong code bán hàng chuẩn seo của mình, các bạn có thể tham khảo.

Tạo giao diện form search html

Form search sản phầm theo danh mục sẽ có 3 phần chính:

  • Phần chọn danh mục
  • Phần nhập từ khóa tìm kiếm
  • Button submit để bắt đầu tìm kiếm

Chúng ta sẽ có giao diện theo code phía dưới:

<form action="/" method="GET" role="form">
 <div class="form-group">
  <select name="" id="product_cat" class="form-control" required="required">
   <option value="">Tất cả</option>
   <option value="slug1">Danh mục 1</option>
   <option value="slug2">Danh mục 2</option>
   <option value="slug3">Danh mục 3</option>
  </select>
 </div>
 <div class="form-group">
  <input type="text" name="s" id="s" class="form-control">
 </div>
 <button type="submit" class="btn btn-primary">Tìm kiếm</button>
</form>

Phần select sẽ là chọn danh mục, phần thẻ input là khu vực nhập từ khóa.

Ráp wordpress chức năng search sản phẩm theo danh mục

Chúng ta sẽ có đoạn code sau:

<form action="<?php bloginfo('url'); ?>/" method="GET" role="form">
 <input type="hidden" name="post_type" value="product">
 <div class="form-group">
  <?php $args = array(
   'show_option_all'    => '',
   'show_option_none'   => __( 'Danh mục' ),
   'option_none_value'  => '',
   'orderby'            => 'ID',
   'order'              => 'ASC',
   'show_count'         => 0,
   'hide_empty'         => 0,
   'child_of'           => 0,
   'include'            => '',
   'echo'               => 1,
   'selected'           => 0,
   'hierarchical'       => 1,
   'name'               => 'product_cat',
   'id'                 => 'product_cat',
   'class'              => 'form-control',
   'depth'              => 0,
   'tab_index'          => 0,
   'taxonomy'           => 'product_cat',
   'hide_if_empty'      => false,
   'value_field'      => 'slug',
  ); ?>
  <?php wp_dropdown_categories( $args ); ?> 
 </div>
 <div class="form-group">
  <input type="text" name="s" id="s" class="form-control" placeholder="Từ khóa">
 </div>
 <button type="submit" class="btn btn-primary">Tìm kiếm</button>
</form>

Giải thích:

  • Dòng 1 thay đổi action thành trang chủ, phương thức ở đây là GET nha.
  • Dòng 2 add một thẻ input ẩn thẻ input này giúp chúng ta chỉ search trong sản phẩm (product), không search bài viết hay là page
  • Từ dòng 4 đến dòng 26, chúng ta dùng hàm wp_dropdown_categories để hiển thị select chọn danh mục.
    • Dòng 17dòng 22 bắt buộc giá trị là: product_cat
    • Dòng 24 bắt buộc giá trị là slug
  • Dòng 29 là thẻ input để nhập từ khóa, Ở đây có 1 giá trị bắt buộc là name=”s”
  • Dòng 31 thẻ button bắt buộc type=”submit” nha

Đối với theme có sử dụng woocommerce thì chúng ta không code xử lý tìm kiếm tại vì trong plugin woocommerce nó đã làm sẵn chức năng xử lý rồi. Việc của chúng ta là truyên dúng tham số là nó sẽ cho ra kết quả đúng.

Đối với trường hợp search chỉ ra một kết quả, nó sẽ tự chuyến trang đến trang chi tiết của kết qua duy nhất đó.

Tổng kết:

Hôm nay mình đã hướng dẫn cho các bạn cách để làm chức năng search sản phẩm theo danh mục trong woocommerce rồi, sắp tới mình sẽ cố gắng siêng viết bài nhiêu hơn.

Mình vừa hoàn thiệt website học wordpress, site này mình sẽ tập trung hướng dẫn wordpress từ a đến z, từ cơ bản đến nâng cao. Bạn nào quan tâm thì like fan page hoặc theo dõi website đó nha.

Cảm ơn các bạn!

Huy Kira

Đam mê hóa học, ưng thi vào trường kinh tế... Đậu vào trường Sư phạm, quyết tâm đi dạy... Ra trường đi làm designer, tự học frontend, chuyển qua làm PHP, được công ty đào tạo laravel... Và hiện tại đang code react native(2015) => Fullstack ... ?? tối về viết blog... (Còn tiếp...)

View Comments

  • bạn có thể nói rõ mình có thể đặt mấy đoạn code kia vào đau không? Chứ mới vào đề bạn chỉ một lèo không có đầu đuôi vậy ai mà hiểu được.

  • Phần này nếu muốn tạo 2 field, danh mục cha và 1 cái danh mục con rồi mới đến từ khóa thì làm sao vậy admin

Recent Posts

Cafe với Anh Huy nghe kể chuyện hành trình fonttiengviet.com

Fonttiengviet.com là một dự án website do JKS thực hiện cho khách hàng Huy Academy.…

9 tháng ago

Giới thiệu thiết kế web Quảng Nam Web – quangnamweb.com

Chắc chắn nhiều anh em khi đọc bài viết này sẽ nghĩ tôi đang quảng…

9 tháng ago

Hướng dẫn viết widget bài viết theo chuyên mục trong wordpress

Widget trong WordPress là một công cụ mạnh mẽ cho phép bạn dễ dàng thêm…

11 tháng ago

Tạo website để viết blog với chi phí thấp nhất ai cũng làm được

Hôm nay mình sẽ hướng dẫn cho anh em cách tạo website blog cực kỳ…

12 tháng ago

WordPress có cùi bắp? Có sống tốt với nghề thiết kế website wordpress?

Sống cực tốt anh em ạ :D Sau nhiều năm gắng bó với nghề thiết…

12 tháng ago

Share mẫu website blog cá nhân cực nhẹ, giống hocwordpress.vn

Nhân dịp quay lại viết blog mình share cho anh em code mẫu website blog…

12 tháng ago