Hello @macdoodle ,
Add below to functions.php file of your theme (or use it in a plugin)
it is a cron job scheduler, which will remove all expired events.
(It will actually make them draft, but there’s commented out line for removing them in case you need)
register_activation_hook(__FILE__, 'wojciech_borowicz_mec_cron_job_schedule');
function wojciech_borowicz_mec_cron_job_schedule() {
if (! wp_next_scheduled ( 'wojciech_borowicz_remove_expired_events_cron_job' )) {
wp_schedule_event(time(), 'daily', 'wojciech_borowicz_remove_expired_events_cron_job');
}
}
add_action('wojciech_borowicz_remove_expired_events_cron_job', 'wojciech_borowicz_remove_expired_events');
function wojciech_borowicz_remove_expired_events() {
$args = array(
'post_type' => 'mec-events',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page'=> '-1',
);
$loop = new WP_Query( $args );
if( $loop->have_posts() ):
$today = date('Y-m-d');
while( $loop->have_posts() ): $loop->the_post(); global $post;
$endDate = get_post_meta($post->ID, "mec_end_date", true);
if($today>$endDate && $endDate!=""){
//wp_delete_post($post->ID);
$post = array( 'ID' => $post->ID, 'post_status' => "draft" );
wp_update_post($post);
}
endwhile;
endif;
}