Rogama Informática

WordPress – Ejecutar una tarea en cron

Tabla de contenidos

Para ejecutar algo en un cron tan solo necesitamos, crear la función que queremos que se ejecute de manera automática cada cierto tiempo, y registrarla en los eventos de WordPress, antes de registrarla deberemos comprobar si ya esta registrada, si no la registrará una vez por cada pasada en el functions.php, y nuestra función se registrara cada vez, imagínate que tienes algo programado para que se ejecute cada hora, y desde que lo publicas hasta que pasa la 1 hora, as recibido la miseria de 5 visitas, las cuales además no han navegado por la web, pues tu función se ejecutara 5 veces por cada hora, hay que tener mucho cuidado con eso.
Lo solucionamos con el siguiente código

if ( !wp_next_scheduled( ‘mailTest_hook’ ) ) {
    wp_schedule_event( time(), ‘hourly’, ‘mailTest_hook’ );
}

 Después deberemos registrar el action, que vincule nuestro hook con nuestra función

add_action( ‘mailTest_hook’, ‘mailTest_function’ );

y por último nuestra función, en este ejemplo mandamos un mail

function mailTest_function() {
         wp_mail( ‘[email protected]’, ‘Automatic email send Test’, ‘Esto es un mail de test enviado cada hora’);
}

Aquí os dejo el código completo:

/**
 * Añado una función automática, para que se ejecute cada hora
 */
if ( !wp_next_scheduled( ‘mailTest_hook’ ) ) {
    wp_schedule_event( time(), ‘hourly’, ‘mailTest_hook’ );
}
add_action( ‘mailTest_hook’, ‘mailTest_function’ );
function mailTest_function() {
         wp_mail( ‘[email protected]’, ‘Automatic email send Test’, ‘Esto es un mail de test enviado cada hora’);
}

Si la frecuencias que nos da WP por defecto, se nos quedan cortas, podemos ampliarlo, como necesitemos como explico en WordPress tiempos personalizados para cron

Fuente: http://codex.wordpress.org/Function_Reference/wp_schedule_event