タイトル通り、私がやりたいことは、(WP-Cronを使用して)現在の日付のちょうど360日前に登録したユーザーをチェックするために1日に1回実行されるカスタムクエリを実行することです。そして彼らの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
Capsの中のビットがそのビットを表しているところで私は何をすべきかわかりません:)どんな助けにも感謝します。
I が を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
です。
date_query
引数に関して、 get_users()
関数のCodexを更新する必要があるようです。
つかいます
$wpdb->get_results("SELECT *, (DATEDIFF(NOW(),user_registered)) AS daydiff FROM {$wpdb->users} WHERE 'daydiff' = 360");