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 ); | |
} | |
} | |
} |
Source: https://gist.github.com/joshuadavidnelson/8f8cdfe38d1aff53d5dd
Tags: post meta, post save, post status