获取从当前日期起360天内注册的用户

时间:2015-08-05 作者:Kev

根据标题,我想做的是运行一个自定义查询(使用WP Cron)每天运行一次,以检查在当前日期(不需要时间,只需要日期)前360天注册的用户,并收集他们的数据ID. 我有这个:

global $wpdb;
$sql = $wpdb->prepare(
    "SELECT * FROM {$wpdb->users} 
     WHERE {$wpdb->users}.user_registered = CURRENT-DATE-MINUS-360-DAYS";
);
$userdata = HOW-DO-I-GET-THE-RESULTS-IN-AN-ARRAY
如果大写的位代表位,我不知道该怎么办:)非常感谢您的帮助。

2 个回复
最合适的回答,由SO网友:birgire 整理而成

peeked 进入WP_User_Query 类,它支持WP_Date_Query 查询用户注册日期。

因此,我们可以使用:

$query = new WP_User_Query( $args );
或者简单地说:

$users = get_users( $args );
其中:

$args = [
    \'fields\'     => \'ID\',
    \'number\'     => 8,
    \'date_query\' => [
        [ \'before\' => \'359 days ago midnight\' ],
        [ \'after\'  => \'360 days ago midnight\', \'inclusive\' => true ],
   ] 
];
这将生成以下SQL查询(扩展视图):

SELECT wp_users.ID 
    FROM wp_users 
    WHERE 1=1 
        AND ( 
                wp_users.user_registered >= \'2014-08-10 00:00:00\' 
            AND       
                wp_users.user_registered < \'2014-08-11 00:00:00\' 
        ) 
    ORDER BY user_login ASC 
    LIMIT 10;
今天在哪里2015-08-05.

看来我们应该在get_users() 功能,关于date_query 论点

SO网友:Trang

Use

$wpdb->get_results("SELECT *, (DATEDIFF(NOW(),user_registered)) AS daydiff FROM {$wpdb->users} WHERE \'daydiff\' = 360");
结束