Forum Replies Created

Viewing 1 replies (of 1 total)
  • 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;
    }
    
Viewing 1 replies (of 1 total)