Intereting Posts
Удаление любых и всех встроенных стилей из поля the_content () Та же самая страница для начальной страницы и архива? Не удалось выполнить попытки входа в систему Количество слов неточно – потенциальная ошибка Как администратор может просматривать заказ клиента в woocommerce Изменить заголовок, загруженный jQuery, для использования HTTPS Как напрямую вызвать функцию короткого кода и передать $ atts Почему get_template_part () прерывает переменные? Добавить категории в пользовательский тип сообщения, не работающий Еще один get_posts () в явно заданной задаче порядка Как группировать сообщения по месяцам и добавлять разбивку на страницы? Улавливание отправки MailChimp и переход на перенаправление страницы загрузка или автонастройка фото по автору аватара Shortcode добавляет p и br теги элемент формы, сгенерированный массивом, всегда вставляет последний элемент в db вместо выбранного элемента

Как изменить частоту запланированного события?

Я объявил запланированное событие в плагине следующим образом:

function shedule_email_alerts() { if ( !wp_next_scheduled( 'send_email_alerts_hook' ) ) { wp_schedule_event(time(), 'hourly', 'send_email_alerts_hook'); } } 

Затем я хотел изменить частоту на «ежедневно», сделав это, заменив исходную функцию:

 function shedule_email_alerts() { if ( !wp_next_scheduled( 'send_email_alerts_hook' ) ) { wp_schedule_event(time(), 'daily', 'send_email_alerts_hook'); } } 

Но похоже, что мое мероприятие все еще увольняется каждый час. Я использую плагин управления Core для отслеживания задач CRON, и он по-прежнему отображается как «один раз в час»,

Solutions Collecting From Web of "Как изменить частоту запланированного события?"

Мне кажется, что вы добавляете это событие только тогда, когда еще не запланировано такое событие «send_email_alerts_hook». Попробуйте что-нибудь подобное и сообщите мне, если он будет работать.

 function shedule_email_alerts() { if ( !wp_next_scheduled( 'send_email_alerts_hook' ) ) { wp_schedule_event(time(), 'daily', 'send_email_alerts_hook'); } else { wp_reschedule_event(time(), 'daily', 'send_email_alerts_hook'); } } 

Дело в том, что вы будете «переписывать» это событие все время, поэтому было бы неплохо отключить эту функцию, когда она запускается впервые.

Лучшим решением было бы проверить, как собираются эти задания, и проверить, добавлено ли это событие. Если да, тогда проверьте, не отличается ли повторение – если так перепланировать. Вы можете найти эту функцию в строке wp-includes / cron.php ~ 63

 function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array()) { $crons = _get_cron_array(); $schedules = wp_get_schedules(); if ( !isset( $schedules[$recurrence] ) ) return false; $event = (object) array( 'hook' => $hook, 'timestamp' => $timestamp, 'schedule' => $recurrence, 'args' => $args, 'interval' => $schedules[$recurrence]['interval'] ); $event = apply_filters('schedule_event', $event); // A plugin disallowed this event if ( ! $event ) return false; $key = md5(serialize($event->args)); $crons[$event->timestamp][$event->hook][$key] = array( 'schedule' => $event->schedule, 'args' => $event->args, 'interval' => $event->interval ); uksort( $crons, "strnatcasecmp" ); _set_cron_array( $crons ); } 

Удачи!

Хорошо, я мог бы решить проблему, используя wp_clear_scheduled_hook()

Я прокомментировал свое объявление о графике и добавил в wp_clear_scheduled_hook('send_email_alerts_hook') . Затем отключите – активируйте мой плагин, который удалил мой запланированный крючок. Затем удалили wp_clear_scheduled_hook() и раскомментировали мой код, теперь график был установлен правильно.

Найден кончик здесь .

Попробуйте debuggin с этим плагином, я написал: Ссылка на Github / Gist . Это немного хак-иш, но он служит своей цели.

Обратите внимание, что в вашей теме должен присутствовать wp_footer() . Иначе вам придется зацепить его в другом месте.