Vì vậy, có kịch bản sau đây.
Tôi thêm một hành động để xóa nhật ký từ cơ sở dữ liệu:
add_action( 'myplugin_clean_logs', array( 'MyPlugin_Logs', 'clean_logs' ) );
Bây giờ tôi muốn chạy hành động này định kỳ:
wp_schedule_event( current_time( 'timestamp' ), 'daily', 'myplugin_clean_logs' );
và thực hiện nó bằng tay:
do_action( 'myplugin_clean_logs' );
Phương thức MyPlugin_Logs::clean_logs
trả về số lượng hàng bị ảnh hưởng hoặc sai nếu có thứ gì đó đi theo hướng khác.
Bây giờ tôi muốn hiển thị số lượng hàng đã bị xóa. Tôi sẽ tưởng tượng một cái gì đó như thế này:
$affected_rows = do_action( 'myplugin_clean_logs' );
echo $affected_rows . ' entries have been deleted.';
Nhưng vì do_action
sẽ không trả lại bất kỳ giá trị nào, tôi không biết làm thế nào để có được giá trị trả về.
Tôi có nên thực hiện phương thức trực tiếp khi chạy thủ công không, nhưng sử dụng hành động theo lịch sự kiện?