If by “made an entry” you mean “has published at least 1 post”, then following will do it (with the proviso given below):
$args = array (
'role' => 'spectator',
) ;
$spectators = new WP_User_Query ($args) ;
$users_with_recent_posts = array () ;
foreach ($spectators->get_results () as $user) {
$args = array (
// if you are interested in posts with a different
// post_type, then just change the following to
// be the post_type you're interested in
'post_type' => 'post',
'date_query' => array (
'after' => '7 days ago',
'inclusive' => true,
),
'author' => $user->ID,
'posts_per_page' => 1,
) ;
$posts = new WP_Query ($args) ;
$users_with_recent_posts[$user->data->user_nicename] = $posts->found_posts > 0 ? 'yes' : 'no' ;
}
Proviso: the above will only show a user as yes
if they have a least 1 post whose pust_status
is currently publish
, i.e., if a user published a post within the last 7 days but then that post had it’s post_status
changed to something other than publish
they will be shown as no
if that was the only post they published in the last 7 days.
If you mean something else by “made an entry”, then please explain what you mean.