wp_schedule_event nu funcționează?

6 iun. 2014, 17:27:35
Vizualizări: 15.3K
Voturi: 7

Nu reușesc să declanșez un cron în WordPress. Încerc să rulez acest cod pentru a primi un email în fiecare oră.

Codul este preluat direct din exemplele WordPress de aici: http://codex.wordpress.org/Function_Reference/wp_schedule_event. Cu excepția faptului că am eliminat underscore-urile (vezi observația din documentație).

Codul rulează în fișierul functions.php al temei mele. Cron-ul pare să fie înregistrat, dar funcția prefixdothishourly nu se execută (din câte pot observa).

add_action( 'wp', 'prefixsetupschedule' );

/**
 * Pe un hook de acțiune timpuriu, verifică dacă evenimentul este programat - dacă nu, îl programează.
 */
function prefixsetupschedule() {
    if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
        wp_schedule_event(time(), 'hourly', 'prefixhourlyevent');
    }
}

add_action( 'prefixhourlyevent', 'prefixdothishourly' );

/**
 * Pe hook-ul de acțiune programat, rulează o funcție.
 */
function prefixdothishourly() {
    return wp_mail("me@example.com", "Notification TEST", "TEST", null);
}
0
Toate răspunsurile la întrebare 2
0

Am descoperit că a trebuit să setez steagul ALTERNATE_WP_CRON în wp-config.php pentru ca acest lucru să funcționeze:

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

Parametrul ALTERNATE_WP_CRON realizează practic o redirecționare transparentă pentru un utilizator care vizitează site-ul tău și poate rezulta în adăugarea unui parametru doing_wp_cron în URL.

Dacă din orice motiv job-urile cron din WordPress eșuează din cauza unei încărcări prea mari sau a unui trafic prea mic pe site, poate fi o opțiune bună să treci la un job cron extern/de pe server pentru a declanșa cron-ul WordPress în locul tău.

11 mai 2016 22:34:55