web-dev-qa-db-fra.com

WP_User_Query utilisateurs par date d'inscription

J'essaie d'obtenir le nombre d'utilisateurs qui se sont inscrits aujourd'hui.

J'ai essayé ceci:

$args = array (
'role'           => 'Subscriber',
'meta_query'     => array(
    array(
        'key'       => 'user_registered',
        'value'     => '2015-01-13 00:00:00',
        'compare'   => '>=',
        'type'      => 'DATE', //also tried DATETIME, TIME
    ),
 ),
);

$user_query = new WP_User_Query( $args );
$user_query->total_users;

Mais le résultat est toujours 0.

Cela marche:

global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM `wp_users` WHERE `user_registered` >= '2015-01-13 00:00:00'");
echo count($results);

Mais WP_User_Query () ne devrait pas pouvoir le faire. Est-ce que je fais quelque chose de mal avec les arguments?

3
CiprianD

Vous pouvez simplement utiliser le paramètre date_query à la date d’enregistrement de l’utilisateur:

$args = array (
    'role'          => 'subscriber',
    'date_query'    => array(
        array(
            'after'     => '2010-01-13 00:00:00',
            'inclusive' => true,
        ),
     ),
);

$user_query = new WP_User_Query( $args );

Cette partie du code source WP_User_Query permet:

// Date queries are allowed for the user_registered field.
if ( ! empty( $qv['date_query'] ) && is_array( $qv['date_query'] ) ) {
    $date_query = new WP_Date_Query( $qv['date_query'], 'user_registered' );
    $this->query_where .= $date_query->get_sql();
}
4
birgire