WP. При изменении статуса кастомного постайпа не хочет менять с publish на future. Что делаю не так?

add_action('save_post', 'generate_course_post');
function generate_course_post($post_id) {
$_post = get_post( $post_id );

if ($_post->post_name !== "" && $_post->post_type == "page") {

  // Добавление страницы курса
  $course_id = get_field('course_id');
  if (!$course_id) {
    // Создаем массив данных новой записи
    $post_course = array(
      'post_type'   => 'course',
      'post_title'  => wp_strip_all_tags($_post->post_name),
      'post_status'     => 'future',
      'post_date'   => $_post->post_date,
    );

    $course_id = wp_insert_post($post_course);

    // У страницы обновляем поле "course_id"
    update_field("course_id", $course_id, $post_id);

    // У страницы обновляем поле "course_link"
    update_field("course_link", get_post_permalink($course_id), $post_id);

    // У custom type курс обновляем поле "page_id"
    update_field("page_id", $post_id, $course_id);
  } elseif ($course_id) {
    if (get_field('new_link', $post_id)) {
      update_field('new_link', false, $post_id);

      wp_update_post(array(
        'ID'            => $course_id,
        'post_name'     => sha1(time()),
        'post_status'   => 'future',
        'post_date'     => $_post->post_date,
      ));
    } else {
      wp_update_post(array(
        'ID'            => $course_id,
        'post_status'   => 'future',
        'post_date'     => $_post->post_date,
      ));
    }
  }

  // Добавление страницы подписки
  $subscribe_id = get_field('subscribe_id');
  if (!$subscribe_id) {

    // Создаем массив данных новой записи
    $post_subscribe = array(
      'post_type'       => 'custom_subscribe',
      'post_title'  => wp_strip_all_tags($_post->post_name),
      'post_status'     => 'publish',
    );

    $subscribe_id = wp_insert_post($post_subscribe);

    // У страницы обновляем поле "subscribe_id"
    update_field("subscribe_id", $subscribe_id, $post_id);

    // У страницы обновляем поле "subscribe_link"
    update_field("subscribe_link", get_post_permalink($subscribe_id), $post_id);

    // У custom type подписки обновляем поле "page_id"
    update_field("page_id", $post_id, $subscribe_id);
  }

}

}

  1. И так, как можно видеть из кода, я при создании страницы(post_type=page) создаю ещё несколько custom post_type, одному из которых необходимо делать планировку публикации. Что происходит при создании - всё создаётся, всё хорошо, статус = future (запланировано), дата правильная (дата ставится такая же как дата публикации страницы) но когда мы дожидаемся нужного времени, ничего не происходит, custom post_type, в данном случае "course", не публикуется как запланировано. Если без планировки - всё отрабатывает, сразу всё публикуется и всё хорошо. Вопрос, почему не отрабатывает планировка? и как сделать чтобы она работала?

  2. Второй момент - когда страница уже создана, при сохранении, она должна так же менять дату публикации custom post_type и его, соответственно, статус. Как итог - дата меняется, статус не меняется.


Ответы (1 шт):

Автор решения: Эльвин Агарагимов

Опубликовался кастомный постайп, добавил "post_date_gmt" правильный

→ Ссылка