Cómo configurar el estado predeterminado para el tipo de publicación personalizada

2

Cuando guardo mi 'producto' post_type personalizado, me gustaría establecer su estado en 'estado incompleto'.

    
pregunta Vincent Wasteels 09.09.2013 - 20:58

1 respuesta

5

Enganche el filtro wp_insert_post_data para forzar que el estado de una publicación se establezca como incompleto antes de que se pueda establecer como publicado. Con el siguiente código solo se puede guardar una publicación que está configurada como incompleta:

add_filter( 'wp_insert_post_data', 'prevent_post_change', 20, 2 );

function prevent_post_change( $data, $postarr ) {
    if ( ! isset($postarr['ID']) || ! $postarr['ID'] ) return $data;
    if ( $postarr['post_type'] !== 'product' ) return $data; // only for products
    $old = get_post($postarr['ID']); // the post before update
    if (
        $old->post_status !== 'incomplete' &&
        $old->post_status !== 'trash' && // without this post restoring from trash fail
        $data['post_status'] === 'publish' 
    ) {
        // set post to incomplete before being published
        $data['post_status'] = 'incomplete';
    }
    return $data;
}
    
respondido por el gmazzap 09.09.2013 - 21:29

Lea otras preguntas en las etiquetas