¿Cómo probar wp_cron?
Esta es una pregunta un poco tonta...
Programé una acción para ejecutarse cada hora:
if(!wp_next_scheduled('my_hourly_events'))
wp_schedule_event(time(), 'hourly', 'my_hourly_events');
add_action('my_hourly_events', 'the_function_to_run');
function the_function_to_run(){
echo '¡funciona!';
}
¿Cómo puedo probar si esto funciona sin esperar una hora? :)
Intenté agregar wp_clear_scheduled_hook('my_hourly_events');
antes de este código y agregar wp_cron()
después, pero no veo que mi función se ejecute...
edición:
ok, agregué un trigger_error()
dentro de mi función, revisé el registro de errores de apache, ¡y ahí está! :)
Ahora estoy aún más confundido:
¿Cómo puede ejecutarse wp-cron en segundo plano? porque aparentemente eso es lo que sucede si no veo ninguna salida...
esto no parece funcionar en un contexto de objeto; ¿por qué?
Mi plugin favorito para eso es Core Control, que tiene un módulo muy útil para mostrar lo que está ocurriendo en el cron: qué eventos están configurados, cuándo se ejecutarán próximamente, etc.
Para un nivel más técnico y práctico, revisa _get_cron_array()
, que devuelve los datos internos almacenados de los eventos cron (las claves principales son marcas de tiempo).

¿el HTTP Access Logger registra todas las solicitudes o solo las realizadas con la API HTTP de WP? Esto es genial para encontrar las solicitudes que hacen los plugins y por qué tu página carga lento :)

wp-cli es otra opción:
Listar Eventos
> wp cron event list
+-------------------+---------------------+-----------------------+---------------+
| hook | next_run_gmt | next_run_relative | recurrence |
+-------------------+---------------------+-----------------------+---------------+
| wp_update_plugins | 2020-04-14 08:11:38 | 7 horas 24 minutos | 12 horas |
| wp_update_themes | 2020-04-14 08:11:38 | 7 horas 24 minutos | 12 horas |
| wcsc_prime_sites | 2020-04-14 17:00:55 | 16 horas 13 minutos | 1 día |
+-------------------+---------------------+-----------------------+---------------+
Programar un Evento
> wp cron event schedule wp_update_plugins "now +5 seconds"
Éxito: Evento programado con el hook 'wp_update_plugins' para 2020-04-14 00:43:54 GMT.
Luego puedes visitar el front-end del sitio y actualizar un par de veces para asegurarte de que se active. Después ejecuta list
nuevamente para ver que ya no está programado.
Ejecutar Directamente en Terminal
> wp cron event run wcsc_prime_sites
Ejecutado el evento cron 'wcsc_prime_sites' en 0.805s.
Éxito: Se ejecutó un total de 1 evento cron.
Una peculiaridad a tener en cuenta es que wp-cli se ejecuta en el contexto de wp-admin, pero WP Cron se ejecuta en el front end. Normalmente eso no es un problema, pero cuando estés escribiendo trabajos, asegúrate de require()
cualquier archivo de wp-admin/includes
que tu código espere que esté cargado.
Si no lo haces, el trabajo funcionará bien en wp-cli, pero producirá un error fatal cuando se ejecute normalmente.
Otros comandos
Ejecuta wp help cron
para más detalles.
