При решении задач автоматизации процессов на сайте часто бывает нужно настроить wp_cron. До сих пор каждый раз вставлял функции wp_cron внутрь соответствующих классов. Но надоело 🙂
Думаю это лучше делать как подключаемый класс в форме сниппета. Скопировал, сделал класс типа class-cron.php, поменял префикс My на свой, где нужно чуть чуть поменял параметры и вперед.
<?php
/**
* Setup wp_cron
*/
class My_WP_Cron{
function __construct() {
add_filter( 'cron_schedules', array($this, 'add_schedule') );
add_action('init', [$this, 'add_hook']);
}
/*
* Регистрируем интервал для wp_cron в секундах
*/
function add_schedule( $schedules ) {
$schedules['my_cron_worker'] = array( 'interval' => 60, 'display' => 'My Cron Worker' );
return $schedules;
}
function add_hook(){
if ( ! wp_next_scheduled( 'my_cron_worker_start' ) ) {
wp_schedule_event( time(), 'my_cron_worker', 'my_cron_worker_start' );
}
}
}
new My_WP_Cron;