Second transition_post_status hook fired instead of the first

Question

I’m using transition_post_status to move a post into another post type based on the $new_status, I had made two hooks but the second one always firing first even though the $new_status is ‘publish‘. I has try to change the priority but didn’t work either, try to combine them into one hook also not working either…

//Move Group Queue CPT to Group Post Type
add_action( 'transition_post_status', 'groupqueue_to_groupcpt', 10, 3);
function groupqueue_to_groupcpt($new_status, $old_status, $post){
    //Move to Group Post Type
    if ('publish' === $new_status
        && 'groupq' === $post->post_type
    )
        wp_update_post(array(
            'ID'        => $post->ID,
            'post_type' => 'group'
        ), true );
}

//Move Group Queue or Group CPT to Banned Post Type
add_action( 'transition_post_status', 'groupcpt_to_bannedcpt', 10, 5);
function groupcpt_to_bannedcpt($new_status, $old_status, $post){
    if ( 'banned' === $new_status
        && 'groupq' === $post->post_type xor 'group' === $post->post_type
    )
        wp_update_post(array(
            'ID'        => $post->ID,
            'post_type' => 'banned'
        ), true );
}

If I remove the groupcpt_to_bannedcpt, the first one will be running fine. Is there a solution to this matter?

0
, , niznet 2 years 2020-01-02T08:38:36-05:00 0 Answers 95 views 0

Leave an answer

Browse
Browse