Entonces, existe el siguiente escenario.
Agrego una acción para limpiar los registros de la base de datos:
add_action( 'myplugin_clean_logs', array( 'MyPlugin_Logs', 'clean_logs' ) );
Ahora quiero ejecutar esta acción periódicamente:
wp_schedule_event( current_time( 'timestamp' ), 'daily', 'myplugin_clean_logs' );
y ejecutarlo manualmente:
do_action( 'myplugin_clean_logs' );
El método MyPlugin_Logs::clean_logsdevuelve el recuento de filas afectadas o falso si algo fue en la otra dirección.
Ahora quiero mostrar el número de filas que se han eliminado. Me imagino algo como esto:
$affected_rows = do_action( 'myplugin_clean_logs' );
echo $affected_rows . ' entries have been deleted.';
Pero como do_actionno devolverá ningún valor, no tengo idea de cómo obtener el valor de retorno.
¿Debo ejecutar el método directamente en una ejecución manual, pero usar la acción en eventos programados?