HEX
Server: LiteSpeed
System: Linux cde2.duelhost.dk 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
User: dtptviut (1121)
PHP: 8.0.30
Disabled: exec,system,passthru,shell_exec,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/dtptviut/public_html/wp-content/plugins/nitropack/classes/WordPress/Cron.php
<?php

/**
 * Cron Class
 *
 * @package nitropack
 */

namespace NitroPack\WordPress;

use \NitroPack\SDK\Filesystem;

/**
 * Cron class for sheduling events.
 */
class Cron {
	/**
	 * Init class.
	 */
	public function __construct() {
		add_action( 'nitropack_remove_old_logs', [ $this, 'remove_old_logs' ] );
	}

	/**
	 * Schedule events.
	 *
	 * @return void
	 */
	public static function schedule_events() {

		if ( ! wp_next_scheduled( 'nitropack_remove_old_logs' ) ) {
			wp_schedule_event( time(), 'daily', 'nitropack_remove_old_logs' );
		}
	}

	/**
	 * Unschedule events when plugin is deactivated.
	 *
	 * @return void
	 */
	public static function unschedule_events() {
		$timestamp = wp_next_scheduled( 'nitropack_remove_old_logs' );
		wp_unschedule_event( $timestamp, 'nitropack_remove_old_logs' );
	}

	/**
	 * Remove old logs .csv and the .zip archive.
	 * Default to 14 days.
	 * Can be filtered with the 'nitropack_remove_old_logs_interval' filter by seconds.
	 * @return void
	 */
	public function remove_old_logs() {
		$files = glob( NITROPACK_LOGS_DATA_DIR . '/*.{csv,zip}', GLOB_BRACE );
		if ( ! $files ) {
			return;
		}
		$now = time();
		$days = 14;
		$seconds = $days * 24 * 60 * 60;

		$seconds = apply_filters( 'nitropack_remove_old_logs_interval', $seconds );

		foreach ( $files as $file ) {
			if ( is_file( $file ) ) {
				if ( $now - filemtime( $file ) >= $seconds ) {
					Filesystem::deleteFile( $file );
				}
			}
		}

	}
}