Force a post to draft if specific meta is invalid (or other reason), in this case the start and end date/time.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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