wp_schedule_event non funziona?

6 giu 2014, 17:27:35
Visualizzazioni: 15.3K
Voti: 7

Non riesco a far partire un cron job in WordPress. Sto provando a eseguire questo codice per verificare se riesco a ricevere un'email ogni ora.

È preso direttamente dagli esempi di WordPress qui: http://codex.wordpress.org/Function_Reference/wp_schedule_event. Tranne che ho rimosso gli underscore (vedi avvertenza nella documentazione).

Il codice è in esecuzione nel file functions.php del mio tema. Il cron sembra essere registrato ma la funzione prefixdothishourly non viene eseguita (per quanto posso vedere).

add_action( 'wp', 'prefixsetupschedule' );

/**
 * Su un hook d'azione precoce, verifica se l'hook è schedulato - se no, schedulalo.
 */
function prefixsetupschedule() {
    if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
        wp_schedule_event(time(), 'hourly', 'prefixhourlyevent');
    }
}

add_action( 'prefixhourlyevent', 'prefixdothishourly' );

/**
 * Sull'hook d'azione schedulato, esegui una funzione.
 */
 function prefixdothishourly() {
     return wp_mail("me@example.com", "Notification TEST", "TEST", null);
 }
0
Tutte le risposte alla domanda 2
0

Ho scoperto che dovevo impostare il flag ALTERNATE_WP_CRON nel file wp-config.php per farlo funzionare:

define('ALTERNATE_WP_CRON', true);
10 giu 2014 15:55:52
0

Il ALTERNATE_WP_CRON effettua sostanzialmente un reindirizzamento trasparente quando un utente visita il tuo sito e potrebbe risultare in un parametro di query doing_wp_cron aggiunto all'URL.

Se per qualsiasi motivo i tuoi cron job di WordPress falliscono a causa di un carico eccessivo o di un traffico troppo basso sul sito web, potrebbe essere una buona opzione passare a un cron job lato server/esterno per attivare il cron di WordPress al posto tuo.

11 mag 2016 22:34:55