Force a Post to Draft on Save

Force a post to draft if specific meta is invalid (or other reason), in this case the start and end date/time.

<?php
/**
* For a post to draft if specific meta is invalid, in this case the start and end date/time.
*
* @author Joshua David Nelson, [email protected]
*/
add_action( 'updated_post_meta', 'jdn_force_draft', 10, 2 );
function jdn_force_draft( $meta_id, $post_id ) {
if( get_post_type( $post_id ) == 'events' ) {
$start = get_post_meta( $post_id, 'event_start', true );
$end = get_post_meta( $post_id, 'event_end', true );
if( ( !$end || !$start ) || empty( $start ) || empty( $end ) ) {
// Update post 37
$my_post = array(
'ID' => $post_id,
'post_status' => 'draft'
);
// Update the post into the database
wp_update_post( $my_post );
}
}
}
view raw force-draft.php hosted with ❤ by GitHub

Source: https://gist.github.com/joshuadavidnelson/8f8cdfe38d1aff53d5dd

Tags: , ,