Người Viết : ViKiMi Editor

Thực hiện truy vấn sản phẩm WooCommerce Shop sử dụng các thành phần WooCommerce
Với WooCommerce có nhiều cách để thực hiện truy vấn sản phẩm, mỗi cách đều có những thích hợp riêng. Nhưng với một Nhà Phát Triển hoặc Lập Trình Viên thì điều quan tâm đó là sự thích hợp và bền vững của hệ thống được tạo ra. Do đó, khi lựa chọn phát triển với hệ thống thương mại điện tử WooCommerce sẽ luôn ưu tiên cho những yêu cầu quan trọng cần có.
Ngay cả việc truy vấn sản phẩm cũng sẽ luôn đặt ra tính bền vững cao nhất có thể. Vì nếu xảy ra những thay đổi có thể tốn nhiều thời gian và công sức để chỉnh sửa cho toàn bộ.
Việc truy vấn sản phẩm đã biết với WP_Query sẽ chỉ ổn định lâu dài với WordPress. Nhưng với Plugin WooCommerce thì nó có thể sẽ thay đổi theo yêu cầu của WooCommerce. Do đó, việc truy vấn sản phẩm với hệ thống WooCommerce có thể bạn sẽ ưu tiên nhiều hơn cho cách mà WooCommerce đã đưa ra.
Chúng ta có thể dùng 2 cách mà WooCommerce đưa ra sau đây :
+ Cách 1 : Sử dụng wc_get_products()
+ Cách 2 : Sử dụng WC_Product_Query()
SAU ĐÂY LÀ CHI TIẾT CHO 2 CÁCH SỬ DỤNG
CÁCH 1 : Sử dụng wc_get_products()
Chúng ta cần tạo một mảng tham số truy vấn sản phẩm và sử dụng để truy vấn sản phẩm bằng Function do WooCommerce đưa ra.
$params = array(
‘status’ => array( ‘publish’ ),
‘type’ => array_merge( array_keys( wc_get_product_types() ) ),
‘parent’ => null,
‘sku’ => ”,
‘category’ => array(),
‘tag’ => array(),
‘limit’ => get_option( ‘posts_per_page’ ),
/* -1 để lấy về tất cả sản phẩm và cũng dùng như khi phân trang */
‘offset’ => null,
‘page’ => 1,
‘include’ => array(),
‘exclude’ => array(),
‘orderby’ => ‘date’,
‘order’ => ‘DESC’,
‘return’ => ‘objects’,
‘paginate’ => false,
‘shipping_class’ => array(),
);
Sau đó chúng ta sẽ thực hiện truy vấn các sản phẩm cần thiết :
$products = wc_get_products( $params ) { foreach( $products as $product ) { // print_r( $product ); // Collect product variables $product_id = $product->get_id(); $product_name = $product->get_name(); $product_image = $product->get_image('thumbnail'); $product_permalink = $product->get_permalink(); echo "ID: " . $product_id . " > \"" . $product_name . "\""; }
CÁCH 2 : Sử dụng WC_Product_Query()
Chúng ta cũng sẽ sử dụng mảng tham số truy vấn giống như cách 1. Tuy nhiên, chúng ta sẽ sử dụng WC_Product_Query() để truy vấn sản phẩm. Cách này thực chất sẽ nhanh hơn vì function wc_get_products() về cơ bản là gọi lại Lớp WC_Product_Query()
Chúng ta thực hiện như sau :
$my_query = new WC_Product_Query($params); // Collect Product Object $products = $my_query->get_products(); if ( ! empty( $products ) ) { foreach ($products as $product) { echo get_permalink( $product->get_id() ) . '<br>'; } }
Như vậy, chúng ta đã thực hiện truy vấn thông tin sản phẩm WooCommerce một cách dễ dàng nhanh chóng bằng cách sử dụng những gì WooCommerce cung cấp. Với cách làm như vậy chúng ta có thể yên tâm lâu dài rằng nếu WooCommerce có tiến hành cải thiện nhiều thứ thì Shop Online vẫn có thể thích nghi và không cần chỉnh sửa nhiều.
[ + ] Thực sự, đó cũng chỉ là vấn đề ít hay nhiều nên cũng có thể không quan tâm lắm.