prefix . 'ait_iat_alt_log'; $wpdb->insert($table, [ 'attachment_id' => intval($attachment_id), 'alt_text' => sanitize_text_field($alt), 'generated_at' => current_time('mysql'), ]); } public function prune_logs() { global $wpdb; $days = intval(AIT_IAT_Settings::get('log_retention_days')); if ($days < 1) return; $table = $wpdb->prefix . 'ait_iat_alt_log'; $wpdb->query( $wpdb->prepare("DELETE FROM $table WHERE generated_at < NOW() - INTERVAL %d DAY", $days) ); } public static function create_table() { global $wpdb; $table = $wpdb->prefix . 'ait_iat_alt_log'; $charset_collate = $wpdb->get_charset_collate(); require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $sql = "CREATE TABLE $table ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, attachment_id BIGINT(20) UNSIGNED NOT NULL, alt_text TEXT NOT NULL, generated_at DATETIME NOT NULL, PRIMARY KEY (id), KEY attachment_id (attachment_id) ) $charset_collate;"; dbDelta($sql); } public function maybe_schedule_prune() { if (!wp_next_scheduled('ait_iat_prune_logs_daily')) { wp_schedule_event(time(), 'daily', 'ait_iat_prune_logs_daily'); } } }