logPurger = $logPurger; $this->carrierDownloader = $carrierDownloader; $this->packetSynchronizer = $packetSynchronizer; } /** * Registers service. * * @return void */ public function register(): void { add_action( self::CRON_LOG_AUTO_DELETION_HOOK, [ $this->logPurger, 'autoDeleteHook' ] ); if ( ! wp_next_scheduled( self::CRON_LOG_AUTO_DELETION_HOOK ) ) { wp_schedule_event( ( new \DateTime( 'next day 02:00', wp_timezone() ) )->getTimestamp(), 'daily', self::CRON_LOG_AUTO_DELETION_HOOK ); } add_action( self::CRON_CARRIERS_HOOK, [ $this->carrierDownloader, 'runAndRender' ] ); if ( ! wp_next_scheduled( self::CRON_CARRIERS_HOOK ) ) { wp_schedule_event( time(), 'daily', self::CRON_CARRIERS_HOOK ); } add_action( self::CRON_PACKET_STATUS_SYNC_HOOK, [ $this->packetSynchronizer, 'syncStatuses' ] ); if ( ! wp_next_scheduled( self::CRON_PACKET_STATUS_SYNC_HOOK ) ) { wp_schedule_event( ( new \DateTime( 'next day 03:00:00', wp_timezone() ) )->getTimestamp(), 'daily', self::CRON_PACKET_STATUS_SYNC_HOOK ); } } /** * Unregisters purger and synchronizer. * * @return void */ public static function deactivate(): void { wp_clear_scheduled_hook( self::CRON_LOG_AUTO_DELETION_HOOK ); wp_clear_scheduled_hook( self::CRON_PACKET_STATUS_SYNC_HOOK ); } }