gpt4 book ai didi

php - 在 Woocommerce 中之前按 _sale_price_dates_to 获取产品 ID

转载 作者:行者123 更新时间:2023-11-29 03:17:22 25 4
gpt4 key购买 nike

我尝试从 postmeta 获取 post_ids,其中 _sale_price_dates_to 比现在少。我做了这样的事情:

global $wpdb;
$publishid = $wpdb->get_results('SELECT meta_value FROM ' . $wpdb->postmeta . ' WHERE meta_key="_sale_price_dates_to" and meta_value<=' .time().'') or die("Error: Cannot create object");

但它不起作用。可能是因为 _sale_price_dates_to 的格式是长文本而不是日期。如何在查询中更改它?

但这还没有结束。我要添加条件,产品必须发布,然后我必须加入:

$publishid = $wpdb->get_results('SELECT meta_value FROM ' . $wpdb->postmeta . 'join' . $wpdb->posts . ' ON wp_posts.ID = wp_postmeta.post_id WHERE wp_postmeta.meta_key="_sale_price_dates_to" and wp_postmeta.meta_value<=' .time().' and wp_posts.post_status="publish" ') or die("Error: Cannot create object");

但由于第一个问题,我不知道它是否有效。

最佳答案

更新: 设置 right time zone 在代码中

尝试以下操作,使用 WPDB 进行功能性 SQL 查询,以获取帖子 ID,其中帖子元 _sale_price_dates_to 时间戳小于当前时间戳:

global $wpdb;

// Set the correct time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set('Europe/Paris');

// An array of IDs
$results = $wpdb->get_col("
SELECT p.ID
FROM {$wpdb->prefix}posts AS p
JOIN {$wpdb->prefix}postmeta AS pm ON p.ID = pm.post_id
WHERE p.post_status = 'publish'
AND pm.meta_key = '_sale_price_dates_to'
AND pm.meta_value <= '".time()."'
AND pm.meta_value != ''
");

// Raw Output (array of post IDs)
print_r($results);

经过测试并有效。

meta_value != '' is needed to avoid Post IDs with empty values to be queried.

关于php - 在 Woocommerce 中之前按 _sale_price_dates_to 获取产品 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com