Puis-je utiliser wp_schedule_event () () pour configurer un travail cron à partir d'un widget?
J'ai essayé, mais je ne peux pas le faire fonctionner, le problème semble être le paramètre $ hook. La fonction que j'essaie d'accrocher est située dans la classe de widgets, donc je suppose que WP ne peut pas la trouver.
aucun de ces travaux:
wp_schedule_event(time(), 'daily', 'my_widget_cron');
wp_schedule_event(time(), 'daily', array(&$this, 'my_widget_cron'));
des idées?
wp_schedule_event
prend un crochet en tant que paramètre, pas une fonction. Essayer:
wp_schedule_event(time(), 'daily', 'my_daily_event');
add_action('my_daily_event', array(&$this, 'my_widget_cron'));
if ( !wp_next_scheduled( 'my_daily_event' ) ) {
wp_schedule_event(time(), 'hourly', 'my_daily_event')
}
Si vous supprimez le widget de la barre latérale, le cron continuera à s'exécuter. Vous pouvez exécuter le code suivant (en dehors de la classe du widget) pour l'effacer:
if ( !is_active_widget('your_widget_callback_function') && wp_next_scheduled( 'my_daily_event' ) ) {
wp_clear_scheduled_hook('my_daily_event');
}