Jadi ada skenario berikut.
Saya menambahkan tindakan untuk membersihkan log dari database:
add_action( 'myplugin_clean_logs', array( 'MyPlugin_Logs', 'clean_logs' ) );
Sekarang saya ingin menjalankan tindakan ini secara berkala:
wp_schedule_event( current_time( 'timestamp' ), 'daily', 'myplugin_clean_logs' );
dan jalankan secara manual:
do_action( 'myplugin_clean_logs' );
Metode MyPlugin_Logs::clean_logs
mengembalikan jumlah baris yang terpengaruh atau salah jika ada sesuatu yang berlawanan arah.
Sekarang saya ingin menampilkan jumlah baris yang telah dihapus. Saya akan membayangkan sesuatu seperti ini:
$affected_rows = do_action( 'myplugin_clean_logs' );
echo $affected_rows . ' entries have been deleted.';
Tetapi karena do_action
tidak akan mengembalikan nilai apa pun, saya tidak tahu cara mendapatkan nilai kembali.
Haruskah saya mengeksekusi metode langsung pada menjalankan manual, tetapi menggunakan tindakan pada jadwal acara?