¿wp_schedule_event no funciona?

6 jun 2014, 17:27:35
Vistas: 15.3K
Votos: 7

No puedo hacer que un cron de WordPress se dispare. Estoy intentando ejecutar este código para ver si puedo recibir un correo electrónico cada hora.

Está tomado directamente de los ejemplos de WordPress aquí: http://codex.wordpress.org/Function_Reference/wp_schedule_event. Excepto que eliminé los guiones bajos (ver advertencia en la documentación).

El código se ejecuta en el archivo functions.php de mi tema. El cron parece estar registrado pero la función prefixdothishourly no se ejecuta (hasta donde puedo ver).

add_action( 'wp', 'prefixsetupschedule' );

/**
 * En un hook de acción temprano, verifica si el hook está programado - si no, lo programa.
 */
function prefixsetupschedule() {
    if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
        wp_schedule_event(time(), 'hourly', 'prefixhourlyevent');
    }
}

add_action( 'prefixhourlyevent', 'prefixdothishourly' );

/**
 * En el hook de acción programada, ejecuta una función.
 */
 function prefixdothishourly() {
     return wp_mail("me@example.com", "Notificación TEST", "TEST", null);
 }
0
Todas las respuestas a la pregunta 2
0

Resulta que tuve que configurar la bandera ALTERNATE_WP_CRON en wp-config.php para que esto funcionara:

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

El ALTERNATE_WP_CRON básicamente realiza una redirección transparente cuando un usuario visita tu sitio y podría resultar en un parámetro de consulta doing_wp_cron añadido a la URL.

Si por cualquier razón tus trabajos cron de WordPress están fallando debido a demasiada carga o debido a muy poco tráfico en el sitio web, puede ser una buena opción cambiar a un trabajo cron del lado del servidor/externo para activar el cron de WordPress por ti.

11 may 2016 22:34:55