Site icon Hip-Hop Website Design and Development

set object terms after some some time of published post – functions.php

I have to change the published post in one category to another category after some days. I have created the below code for the function, which I have added in the functions.php file in child-theme. But, I don’t know the error piece.
The below data display the list of post based on the calculation in the loop. the only missing function is wp_set_object_terms.
Please help me out with this.

function set_expired_job_categories() {

    $current_time = time();// define timestamp

    // Set our query arguments
    $args = array(
        'fields' => 'ids', // Only get post ID's to improve performance
        'post_type' => 'job', // Post type
        'post_status' => 'publish',
        'posts_per_page' => 10,
        'tax_query' => array(
            'taxonomy' => 'current-status',
            'field' => 'slug',
            'terms' => array( 'ongoing' ),
        ),
    );
     $q = new WP_Query( $args ); //new wp_query

    // Check if we have posts, if not, return false
    if ( !$q )
        return false;

    // standard WP_query
   if( $q->have_posts() ){
        while( $q->have_posts() ){
            $q->the_post();

            //deadline_date saved as timestamp
            $expire_timestamp = rwmb_meta( 'deadline_date' );
            if ( $expire_timestamp ) {
                $seconds_between = ( (int)$expire_timestamp - (int)$current_time );
                if ( $seconds_between >= 0 ) {
                }else {
                    wp_set_object_terms( $post->ID, array ( 368 ), 'current-status', true );
                    wp_remove_object_terms( $post->ID, array ( 367 ), 'current-status' );
                }
            }
        }
    }
    wp_reset_postdata();
}

// hook fires when the Cron is executed
add_action( 'set_job_categories', 'set_expired_job_categories' );

// Add function to register event to wp
add_action( 'wp', 'register_daily_events_job_expiration');

function register_daily_events_job_expiration() {
    // Make sure this event hasn't been scheduled
    if( !wp_next_scheduled( 'set_job_categories' ) ) {
        // Schedule the event
        wp_schedule_event( time(), 'hourly', 'set_job_categories' );
    }
}

I have revised as follows

$taxonomy = 'current-status';
$job_expired_id = 368;
$job_ongoing_id = 367;

$postid = get_the_ID();
wp_set_object_terms( $postid, (int)$job_expired_id, $taxonomy, true );
wp_remove_object_terms( $postid, (int)$job_ongoing_id, $taxonomy );

For this also, no result.