Để lọc truy vấn qua post_status
trước tiên chúng ta cần tìm kiếm giá trị trong bảng chính xác là bảng wp posts, chúng ta có thể làm như vậy bằng cách cập nhật truy vấn SQL bằng câu lệnh JOIN và so khớp các giá trị tương quan trong nhiều bảng, trong trường hợp này, chúng ta đang so khớp product_id trong wp.posts
với bảng trong wp.postmeta
bảng.
Các bảng mà chúng tôi đang đối sánh bằng cách sử dụng câu lệnh JOIN:
- wp.posts
$wpdb->posts
- wp.postmeta
$wpdb->wc_product_meta_lookup
Dưới đây là một chức năng được cập nhật:
function get_product_min_price_by_sku( $sku ) {
global $wpdb;
$min_price = $wpdb->get_var(
$wpdb->prepare(
"
SELECT MIN(lookup.min_price)
FROM {$wpdb->wc_product_meta_lookup} AS lookup
INNER JOIN {$wpdb->posts} AS posts ON lookup.product_id = posts.id
WHERE
posts.post_type IN ( 'product', 'product_variation' )
AND posts.post_status = 'publish'
AND lookup.sku = '%s'
LIMIT 1
"
, $sku)
);
return $min_price;
}