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_logs
renvoie 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_action
je 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?