WordPress Cron менеджер. Часть 2

Сегодня в разделе WordPress плагины вторая часть о том как работать с Crony Cronjob Manager. Об установке параметров этого плагина читайте в первой части. Главный недостаток Crony Cronjob Manager это отсутствие возможности задать собственные промежутки выполнения заданий через интерфейс настроек. Возможно в будущих версиях эта возможность появится.

Всего предустановленных промежутков у меня в расписании оказалось тринадцать, начиная с «Каждую минуту» и до «Once Yearly(раз в год)».

Но что делать если необходимо установить расписание на промежуток времени, которого нет в списке? Например раз в шесть часов. Для этого можно внести изменения непосредственно в код плагина. Идем в папку plugins/crony/ и открываем файл crony.php. В нем нужно найти строку

function crony_schedules ($schedules)

эта функция задает различные интервалы расписания и в моем случае содержит код

$schedules['everymin'] = array( 'interval' => 60,'display' => __('Каждую минуту') );
$schedules['twicehourly'] = array( 'interval' => 1800, 'display' => __('Twice Hourly') );
$schedules['weekly'] = array( 'interval' => 604800, 'display' => __('Once Weekly') );
$schedules['twiceweekly'] = array( 'interval' => 302400, 'display' => __('Twice Weekly') );
$schedules['monthly'] = array( 'interval' => 2628002, 'display' => __('Once Monthly') );
$schedules['twicemonthly'] = array( 'interval' => 1314001, 'display' => __('Twice Monthly') );
$schedules['yearly'] = array( 'interval' => 31536000, 'display' => __('Once Yearly') );
$schedules['twiceyearly'] = array( 'interval' => 15768012, 'display' => __('Twice Yearly') );
$schedules['fouryearly'] = array( 'interval' => 7884006, 'display' => __('Four Times Yearly') );
$schedules['sixyearly'] = array( 'interval' => 5256004, 'display' => __('Six Times Yearly') );

Из приведенного видим, что интервалы заданы в виде массива с указанием промежутка времени выполнения в секундах, значит нужно добавить еще один элемент массива с интервалом в 21 600 секунд, то есть 6 часов

$schedules['fourdaily'] = array( 'interval' => 21600,'display' => __('Каждые 6 часов') );

Сохраняем файл crony.php и снова заходим в установки плагина

cron

Нужный нам промежуток времени появился в списке доступных интервалов.
Теперь что касается пользовательского кода для выполнения по расписанию. Он находится в поле 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 отчет о выполнении.