web-dev-qa-db-fra.com

wp_schedule_event ne fonctionne pas?

Je n'arrive pas à faire déclencher un cron Wordpress. J'essaie d'exécuter ce code pour voir si je peux recevoir un courrier électronique toutes les heures.

Il est directement tiré des exemples Wordpress suivants: http://codex.wordpress.org/Function_Reference/wp_schedule_event . Sauf que j'ai supprimé les caractères de soulignement (voir l'avertissement dans la documentation).

Le code est en cours d'exécution dans mon fichier de fonctions theme.php. Le cron semble être enregistré mais la fonction prefixdothishourly ne se déclenche pas (pour autant que je sache.)

add_action( 'wp', 'prefixsetupschedule' );

/**
 * On an early action hook, check if the hook is scheduled - if not, schedule it.
 */
function prefixsetupschedule() {
    if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
        wp_schedule_event(time(), 'hourly', 'prefixhourlyevent');
    }
}

add_action( 'prefixhourlyevent', 'prefixdothishourly' );

/**
 * On the scheduled action hook, run a function.
 */
 function prefixdothishourly() {
     return wp_mail("[email protected]", "Notification TEST", "TEST", null);
 }
3
benedict_w

Il s'est avéré que je devais définir le drapeau ALTERNATE_WP_CRON dans wp-config.php pour que cela fonctionne:

define('ALTERNATE_WP_CRON', true);
7
benedict_w

Le ALTERNATE_WP_CRON effectue essentiellement une redirection transparente sur un utilisateur visitant votre site et peut entraîner l'ajout d'un paramètre de requête doing_wp_cron à l'URL.

Si, pour une raison quelconque, vos tâches cron WordPress échouent en raison d'une charge excessive ou du trafic insuffisant sur le site Web, il peut s'avérer judicieux de passer à une tâche cron côté serveur/externe pour déclencher le cron WordPress à votre place.

0
tribulant