php – Using ACF Relationship field to set post type to draft or published status

Question

I am currently using the ACF Relationship field selector to query through a custom post type for locations to show various pages. These pages are “service” pages that can be shown or hidden from the end user. The challenge is if the person de-selects the service page, it is technically still visible to the user if they know the link. I need to be able to set the page to a draft status or published when updating this option. Here is what I have based on other examples related to a similar request.

add_action('init','update_service_pages');
function update_service_pages () {
$the_query = get_posts( 'post_type=services' ); 
foreach($the_query as $service_post) {
    $services = get_field('our_services', 'options');
    if(!$services){
            $update_post = array(
            'post_status'   =>  'draft',
            'post_type' =>  'services' );
            wp_update_post($update_post);   
    }
    }

}

When I did this the first time it immediately set them all to draft from published without updating the ACF relationship field option. Do I need to hook into the “update” button in my options?

0
user3096584 1 month 2021-12-16T15:50:24-05:00 0 Answers 0 views 0

Leave an answer

Browse
Browse