Попытка перевести wp post в черновой режим на основе значения datepicker - PullRequest
0 голосов
/ 28 января 2019

У меня есть пользовательский тип записи под названием купоны.Все купоны содержат поле 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);
    }
}
} 
...