I have been perfecting this bit of code below and ran into an issue. I was wondering how I can change the following code so that it will so the anniversary of any user in the next 30 days, not just by month (i.e, an anniversary on Jan. 15 would appear on my list on Dec. 15, not just once it was January)
Any suggestions (I'm running into such trouble because if I change the date sorting, I am not able to collect the correct user anniversary dates)
$args = array(
'meta_key' => 'anniversary_date',
'meta_value' => 0,
);
$user_query = new WP_User_Query( $args );
$users = $user_query->get_results();
foreach( $users as $user ):
echo $user->display_name;
echo ' will be celebrating their anniversary on ';
echo get_user_meta( $user->ID, 'anniversary_date', true );
endforeach;
function anniversary_user_query( $query ){
if( $query->query_vars['meta_key'] == 'anniversary_date' && $query->query_vars['meta_value'] === 0 ):
global $wpdb;
$thismonth = date('m');
$query->query_where = "WHERE 1=1 AND ( $wpdb->usermeta.meta_key = 'anniversary_date' AND ( MONTH( $wpdb->usermeta.meta_value ) = $thismonth ) )";
endif;
return $query;
}
add_action( 'pre_user_query', 'anniversary_user_query' );