Trang chủ Lập trình PHP - MySQL Thêm tùy chọn hiển thị tất cả sản phẩm trong WooCommerce

Thêm tùy chọn hiển thị tất cả sản phẩm trong WooCommerce

Có một yêu cầu của khách hàng yêu cầu thêm tùy chọn hiển thị tất cả các sản phẩm (mặc định các sản phẩm sẽ được chia trang).

show-all-woocommerce-1

Bắt đầu tìm kiếm giải pháp và thấy rằng WooCommerce có một đoạn shortcode hỗ trở người dùng tùy biến lại hiển thị của tất cả sản phẩm của một thư mục (category). Shortcode đó có dạng như sau:

Trong đó appliances là slug của tên thư mục. Bạn có thể tùy biến với các tham biến nữa là:

  • per_page: số sản phẩm trên 1 trang (cho việc chia trang)
  • columns: số cột hiển thị (số phẩm trên 1 hàng)
  • orderby: biến dùng sắp xếp (tên, giá,…)
  • order: cách sắp xếp (a-z, z-a, cao đến thấp, thấp đến cao)

Bạn có thể tìm hiểu thêm thông tin về shortcode này cũng như các shortcode mặc định của WooCommerce tại: https://docs.woothemes.com/document/woocommerce-shortcodes/

Ý tưởng giải quyết: Vậy là khỏi phải viết thêm mã để giải quyết mà sẽ tận dụng shortcode này với tham biến per_page sẽ đây lên cao ví dụ như: 1000. Giờ mình chỉ phải viết code để nhận diện lúc nào chạy shortcode này lúc nào chạy code mặc định.

Mình giả dụ sẽ dùng tham số url (URL parameter) là show=all để nhận diện cho tùy chọn hiển thị hết tất cả các sản phẩm và mình sẽ code lại như sau:

Nếu bạn sử dụng theme có hỗ trợ woocommerce thì bạn tìm trong tập tin /themes/tên-theme/woocommerce/archive-product.php nếu theme chưa hỗ trợ (dùng theme) mặc định của WooCommerce thì bạn tìm trong tập tin /plugins/woocommerce/templates/archive-product.php. Tuy nhiên mình khuyên bạn là nên tạo thêm WooCommerce trong theme của bạn vì việc chỉnh sửa này có thể bị ảnh hưởng nếu WooCommerce update lên phiên bản mới.

Bạn tìm đến dòng:

và thêm vào dòng lệnh PHP:

Dòng lệnh này sẽ giúp bạn lấy thông tin thư mục hiện tại. Giờ bạn sẽ dùng lệnh IF để kiểm tra có tham biến show=all hay không. Nếu không thì chạy lệnh cũ. Thường lệnh này là 1 vòng lặp while có dạng như sau:

nếu tồn tại tham biến show=all thì sẽ chạy mã:

Mình nghĩ các bạn có thể viết lại thêm IF như mình mô tả ở trên.

show-all-woocommerce-2

Thật ra cách này sẽ khó để thực hiện thêm các thao tác như lọc (filter), sắp xếp (sort) nên nó không là giải pháp tối ưu nhất nên nếu bạn nào có giải pháp code nào khác có thể chia sẻ. Nếu có thời gian rãnh mình sẽ viết lại hướng dẫn cho giải pháp này với tính năng infinite scroll và đương nhiên là đã giải quyết hết tất cả các vấn đề. Các bạn nhớ đón xem

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

Huỳnh Mai Anh Kiệt

- Advertisement -
Huỳnh Mai Anh Kiệthttps://www.mangbinhdinh.vn
Anh là một người đam mê công nghệ. Hiện tại anh là một lập trình viên tại Quy Nhơn.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

BÀI VIẾT MỚI

Google sắp khai tử ứng dụng Google Shopping trên iOS và Android

Google được cho là đã thêm Google Shopping vào danh sách các ứng dụng sắp khai tử của mình. Sau khi các thành viên...

Google Pixel 5A 5G vẫn sẽ ra mắt vào cuối năm nay

Thứ Sáu tuần trước, Google cho biết sẽ ra mắt điện thoại tầm trung Pixel 5A vào cuối năm nay, bác bỏ tin đồn...

Facebook chi 23 triệu đô la để bảo vệ Mark Zuckerberg

Facebook đã chi hơn 23 triệu USD để bảo vệ cho Mark Zuckerberg - CEO và là người sáng lập Facebook vào năm ngoái....

Cách tùy chỉnh công cụ tìm kiếm trong Firefox

Bạn có thể sử dụng bất kỳ công cụ tìm kiếm nào mà bạn thích trong trình duyệt web của mình. Và bạn cũng...

12 cách khắc phục con trỏ chuột không hiển thị trong Windows 10

Con trỏ chuột đã trở thành một phần không thể thiếu trong quá trình chúng ta tương tác với máy tính. Vì vậy, hãy...

BẠN XEM CHƯA

Công cụ so sánh mức tương đồng của 2 đoạn văn bản trực tuyến

Có rất nhiều công cụ hỗ trợ bạn so sánh độ tương đồng của 2 đoạn văn bản. Đa phần trong số đó là...

Mẹo nhỏ để nhận ngay 1 tháng VIP miễn phí cho tài khoản NhacCuaTui

Với 1 tài khoản VIP trên trang Nhaccuatui.com (NCT) người dùng có thể thoải mái nghe và tải nhạc chất lượng cao. Bạn cũng...

5 GB không gian lưu trữ trực tuyến miễn phí từ Ubuntu

Có rất nhiều dịch vụ cung cấp giải pháp lưu trữ trực tuyến cho bạn. Ubuntu One là một trong những dịch vụ lưu...

Khắc phục lỗi “We’re sorry, we can’t send your payment right now” khi thanh toán bằng Paypal

Đang làm việc với một trang bán hàng trực tuyến sử dụng cổng thanh toán Paypal. Hôm qua chạy rất là OK nhưng tự...

CopyScape.Com – Công cụ giúp kiểm tra trang web trùng lặp nội dung

Bạn muốn kiểm tra xem nội dung 1 bài viết nào đó trên mạng internet có đang tồn tại trên 1 trang web nào...