Как изменить статус поста WordPress после определенного периода времени? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть WordPress сайт, где пользователи могут загружать продукты.Статус продукта по умолчанию находится в состоянии ожидания, однако я хочу изменить его на опубликованный, если он прошел через 12 часов после post_time.

Я использую woocommerce.Я пытался использовать wp_insert_post_data :

function reset_post_date_wpse_121565($data,$postarr) {
    if ($data['post_type'] == 'product'){
        $data['post_date'] = '2018-06-03 22:50:00';
    } 
    return $data;
}
add_filter('wp_insert_post_data','reset_post_date_wpse_121565');

Но он устанавливает публикацию, что я могу сделать, чтобы выполнить это автоматическое обновление?

1 Ответ

0 голосов
/ 04 июня 2018

Вы можете попробовать запустить WordPress Cron, чтобы достичь этого,

function myprefix_custom_cron_schedule( $schedules ) {


 $schedules['every_tewlve_hours'] = array(
        'interval' => 43200, // Every 12 hours
        'display'  => __( 'Every 12 hours' ),
    );
    return $schedules;
}
add_filter( 'cron_schedules', 'myprefix_custom_cron_schedule' );

//Schedule an action if it's not already scheduled
if ( ! wp_next_scheduled( 'myprefix_cron_hook' ) ) {
    wp_schedule_event( time(), 'every_tewlve_hours', 'myprefix_cron_hook' );
}

///Hook into that action that'll fire every six hours
 add_action( 'myprefix_cron_hook', 'myprefix_cron_function' );

//create your function, that runs on cron
function myprefix_cron_function() {
    $args = array(
    'numberposts'   => -1,
    'post_type'     => 'product',
    'post_status'   => array( 'pending' ),
    'author'        => $userid
   );
   $pending_posts = get_posts( $args ); 
//update status code
}

Надеюсь, что это поможет вам.

Для более детального посещения,

wp cronдемо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...