Il y a donc le scénario suivant.
J'ajoute une action pour nettoyer les journaux de la base de données:
add_action( 'myplugin_clean_logs', array( 'MyPlugin_Logs', 'clean_logs' ) );
Maintenant, je veux exécuter cette action périodiquement:
wp_schedule_event( current_time( 'timestamp' ), 'daily', 'myplugin_clean_logs' );
et l'exécuter manuellement:
do_action( 'myplugin_clean_logs' );
La méthode MyPlugin_Logs::clean_logsrenvoie le nombre de lignes affectées ou false si quelque chose va dans l'autre sens.
Maintenant, je veux afficher le nombre de lignes qui ont été supprimées. J'imagine quelque chose comme ça:
$affected_rows = do_action( 'myplugin_clean_logs' );
echo $affected_rows . ' entries have been deleted.';
Mais comme do_actionje ne retournerai aucune valeur, je ne sais pas comment obtenir la valeur de retour.
Dois-je exécuter la méthode directement sur une exécution manuelle, mais utiliser l'action sur les événements planifiés?