Сегодня в разделе WordPress плагины вторая часть о том как работать с Crony Cronjob Manager. Об установке параметров этого плагина читайте в первой части. Главный недостаток Crony Cronjob Manager это отсутствие возможности задать собственные промежутки выполнения заданий через интерфейс настроек. Возможно в будущих версиях эта возможность появится.
Всего предустановленных промежутков у меня в расписании оказалось тринадцать, начиная с «Каждую минуту» и до «Once Yearly(раз в год)».
Но что делать если необходимо установить расписание на промежуток времени, которого нет в списке? Например раз в шесть часов. Для этого можно внести изменения непосредственно в код плагина. Идем в папку plugins/crony/ и открываем файл crony.php. В нем нужно найти строку
functioncrony_schedules ($schedules)
эта функция задает различные интервалы расписания и в моем случае содержит код
$schedules['fouryearly'] = array( 'interval'=> 7884006, 'display'=> __('Four Times Yearly') );
$schedules['sixyearly'] = array( 'interval'=> 5256004, 'display'=> __('Six Times Yearly') );
Из приведенного видим, что интервалы заданы в виде массива с указанием промежутка времени выполнения в секундах, значит нужно добавить еще один элемент массива с интервалом в 21 600 секунд, то есть 6 часов
Сохраняем файл crony.php и снова заходим в установки плагина
Нужный нам промежуток времени появился в списке доступных интервалов.
Теперь что касается пользовательского кода для выполнения по расписанию. Он находится в поле Custom PHP to Run и самый простой способ, это внести код прямо в это поле, но в случае, если код большой или нужно выполнить уже существующую функцию, сохраненную в файле functions.php, то следует поступить так, вносим в Custom PHP to Run вызов своей функции
cron_myCronFunc();
Тело функции cron_myCronFunc в файле functions.php будет таким
my_func();
$email= "my@mail.com";
$emailfrom= "myCronFunc";
$message= "croned FROM myCronFunc every 6 hours";
mail($email, "mail", $message, $emailfrom);
то есть выполняем нужную нам функцию и отправляем на e-mail отчет о выполнении.