public function delete_items(WP_REST_Request $request) { // TODO refactor $args = array('older_than_seconds' => $request['older-than-seconds']); $db = new WP_REST_API_Log_DB(); return rest_ensure_response(new WP_REST_API_Log_Delete_Response($db->delete($args))); }
/** * Migrates records from the legacy custom tables into custom post type * * ## OPTIONS * * ## EXAMPLES * * wp rest-api-log migrate * */ function migrate() { WP_CLI::Line("Getting log entries that need to be migrated..."); $db = new WP_REST_API_Log_DB(); $ids = $db->get_log_ids_to_migrate(); $count = count($ids); if (0 === $count) { WP_CLI::Line("There are no more log entries that need to be migrated."); return; } $progress_bar = WP_CLI\Utils\make_progress_bar("Migrating {$count} entries:", $count, 1); $progress_bar->display(); foreach ($ids as $id) { $db->migrate_db_record($id); $progress_bar->tick(); } $progress_bar->finish(); WP_CLI::Success("Log entries migrated"); }
public function purge_old_records($days_old = false, $dry_run = false) { if (empty($days_old)) { $days_old = WP_REST_API_Log_Settings_General::setting_get('general', 'purge-days'); } $days_old = absint($days_old); if (empty($days_old)) { return; } $db = new WP_REST_API_Log_DB(); $args = array('fields' => 'ids', 'to' => date('Y-m-d H:i', current_time('timestamp') - DAY_IN_SECONDS * $days_old), 'posts_per_page' => -1); $ids = $db->search($args); $number_deleted = 0; if (!empty($ids) && is_array($ids)) { foreach ($ids as $id) { if (!$dry_run) { wp_delete_post($id, true); } $number_deleted++; } } return $number_deleted; }