register(); ( new WebStudio_Admin_Watch_Password_Monitor() )->register(); ( new WebStudio_Admin_Watch_404_Logger() )->register(); ( new WebStudio_Admin_Watch_Privacy() )->register(); add_action( 'init', array( $this, 'maybe_upgrade' ), 1 ); add_action( 'admin_watch_cleanup_404s', array( $this, 'cleanup' ) ); if ( is_admin() ) { require_once ADMIN_WATCH_DIR . 'admin/class-admin.php'; ( new WebStudio_Admin_Watch_Admin() )->register(); } } /** Upgrade once after a plugin schema change. */ public function maybe_upgrade() { if ( WebStudio_Admin_Watch_404_Repository::DB_VERSION !== get_option( 'admin_watch_db_version' ) ) { WebStudio_Admin_Watch_404_Repository::install(); } } /** Apply the configured retention period. */ public function cleanup() { $settings = get_option( 'admin_watch_settings', array() ); $days = is_array( $settings ) && isset( $settings['retention_days'] ) ? $settings['retention_days'] : 30; ( new WebStudio_Admin_Watch_404_Repository() )->cleanup( $days ); } }