Запланированное событие не сработает


Я пытаюсь настроить отдельные разовые события расписания в плагине. Что бы я ни делал, кажется, я не могу запустить события. Я использую плагин Cron View , чтобы увидеть, что находится в очереди, и события добавляются и удаляются полностью по расписанию. Однако я никогда не получаю электронное письмо, которое я настроил для отправки в целевой функции действия (просто для того, чтобы протестировать событие, позже там будет больше). Я протестировал функцию за пределами запланированные мероприятия, это действительно работает. Вот некоторый код:

GLOBAL $new_workshop_id;
$new_workshop_id = $wpdb->insert_id;

function send_reminders() {
 GLOBAL $new_workshop_id;
 wp_mail('[email protected]', 'Automatic ID: '.$new_workshop_id, 'here it is!');
}

if (!wp_next_scheduled('send_reminder_emails_'.$new_workshop_id)) {
 wp_schedule_single_event( time()+30, 'send_reminder_emails_'.$new_workshop_id );
}

do_action( 'send_reminder_emails_'.$new_workshop_id );
add_action( 'send_reminder_emails_'.$new_workshop_id, 'send_reminders' );

Одна вещь, которую я подозреваю, - это размещение do_acton и сама функция send_reminders(). Приведенный выше код находится в некоторых операторах if, проверяющих почтовые значения, поэтому возможно, что функция не может быть доступна заданию CRON - так куда мне следует поместить функцию? Я пробовал прямо в верхней части файла плагина. Из того, что я прочитал, do_action должен вызывать функцию и выполнять ее везде, где вы поставили do_action, но я думаю, что я нужно знать, куда поместить send_reminders() в первую очередь, чтобы он был доступен либо с помощью задания cron, либо с помощью do_action.

Заранее спасибо за любой вклад!

 2
Author: Gavin, 2010-10-21

1 answers

Использование cron arg выглядит странно. Идентификатор вставки вернет мусор к моменту вызова вашей функции.

По той же причине я считаю, что лучше всегда планировать его с аргументом id при вставке, если это необходимо для ведения журнала. В противном случае вы, по сути, будете ограничивать свои журналы.

Наконец, вы уверены, что функция wp_mail() работает?

 3
Author: Denis de Bernardy, 2010-10-21 22:01:31