Php 按sku获取产品最低价格
对于产品Php 按sku获取产品最低价格,php,mysql,wordpress,woocommerce,Php,Mysql,Wordpress,Woocommerce,对于产品post\u类型和草稿post\u状态,我需要按sku获取min\u价格的最小值 function get_product_min_price_by_sku($sku) { global $wpdb; $min_price = $wpdb->get_var( $wpdb->prepare(" SELECT MIN(min_price) FROM {$wpdb->wc_product_meta_lookup} WHE
post\u类型
和草稿post\u状态
,我需要按sku获取min\u价格
的最小值
function get_product_min_price_by_sku($sku) {
global $wpdb;
$min_price = $wpdb->get_var(
$wpdb->prepare("
SELECT MIN(min_price)
FROM {$wpdb->wc_product_meta_lookup}
WHERE sku = '$sku'
")
);
return $min_price;
}
如何将post状态条件添加到此函数
AND posts.post_status = 'draft'
顺便说一句,我允许使用相同sku的多个产品:
add_filter('wc_product_has_unique_sku', '__return_false', PHP_INT_MAX);
为了通过
post\u status
过滤查询,我们首先需要在正确的表(即wp posts表)中查找值,我们可以使用JOIN语句更新SQL查询并匹配多个表中的相关值,在这种情况下,我们将wp.posts
表中的产品标识与wp.postmeta
表中的产品标识进行匹配
使用JOIN语句匹配的表:
- wp.posts
$wpdb->posts
- wp.postmeta
$wpdb->wc\u产品\u元\u查找
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;
}