То, что вы ищете, называется cron-job.Вы создаете задание cron следующим образом:
add_action('wp_ajax_do_cron', [$this, 'doCron']);
add_action('wp_ajax_nopriv_do_cron', [$this, 'doCron']);
/**
* Ajax endpoint to be used as a cron url
*/
public function doCron()
{
$key = filter_input(INPUT_GET, 'key');
if ($key === 'dhsfvjusdfvu3vrju3vjuvgf') {
// Execute your function here
} else {
header('HTTP/1.0 403 Forbidden');
echo 'NOPE';
}
wp_die();
}
Выполнение задания Cron можно определить для запуска в конфигурации веб-хостеров или с помощью сторонней службы, такой как эта: https://cron -job.org/en/ По сути, у вас есть функция, которую вы хотите запустить в функции doCron ().Их можно настроить для ежедневного запуска в настройках веб-хостеров.Вы также можете сначала протестировать функцию, перейдя по URL вашего сайта следующим образом: http://example.com/wp-admin/admin-ajax.php?action=do_cron&key=dhsfvjusdfvu3vrju3vjuvgf.Для вашей собственной среды вы должны изменить ключ на что-то случайное.Мой предпочтительный метод для этого - старый добрый метод «лоб против клавиатуры»;)