У меня есть пользовательский тип записи под названием купоны.Все купоны содержат поле ACF с именем expiration_date, которое является полем DatePicker.Я пытаюсь использовать это поле, чтобы установить статус сообщения «Черновик» после истечения срока годности.Я не уверен, что я просто не использую правильный wp-хук или мой код неверен, но он не работает.Может ли кто-нибудь предложить предложение?Большое спасибо заранее.
<?php add_action( 'save_post', 'remove_expired_coupons', 10, 2 );
function remove_expired_coupons( $post_ID, $post )
{
$expiry = new DateTime();
$expiry->setTime(0,0,0);
$expiresValue = $expiry->format('Y-m-d');
$args = array(
'post_type' => 'coupon',
'posts_per_page' => -1,
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => 'expiration_date',
'value' => $expiresValue,
'compare' => '<=',
'type' => 'DATE'
),
),
);
$posts = get_posts($args);
foreach( $posts as $post ) {
if(get_field('expiration_date', $post->ID)) {
$postdata = array(
'ID' => $post->ID,
'post_status' => 'draft'
);
wp_update_post($postdata);
}
}
}