HEX
Server: Apache/2.4.65 (Ubuntu)
System: Linux ielts-store-v2 6.8.0-1036-gcp #38~22.04.1-Ubuntu SMP Thu Aug 14 01:19:18 UTC 2025 x86_64
User: root (0)
PHP: 7.2.34-54+ubuntu20.04.1+deb.sury.org+1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/html/ielts-store/wp-content/plugins/automatewoo/includes/System_Checks.php
<?php
// phpcs:ignoreFile

namespace AutomateWoo;

use AutomateWoo\SystemChecks\AbstractSystemCheck;
use AutomateWoo\SystemChecks\CronRunning;
use AutomateWoo\SystemChecks\DatabaseTablesExist;

/**
 * System check management class
 *
 * @class System_Checks
 */
class System_Checks {

	/** @var array */
	static $system_checks;

	/**
	 * @return AbstractSystemCheck[]
	 */
	static function get_all() {
		if ( ! isset( self::$system_checks ) ) {
			$class_names = apply_filters( 'automatewoo/system_checks', [
				'cron_running'          => CronRunning::class,
				'database_tables_exist' => DatabaseTablesExist::class,
			] );

			foreach ( $class_names as $system_check_id => $class_name ) {
				self::$system_checks[ $system_check_id ] = new $class_name();
			}
		}

		return self::$system_checks;
	}


	/**
	 * Maybe background check for high priority issues
	 */
	static function maybe_schedule_check() {

		if ( did_action( 'automatewoo_installed' ) ) {
			return; // bail if just installed
		}

		if ( ! AW()->options()->enable_background_system_check || get_transient('automatewoo_background_system_check') ) {
			return;
		}

		AW()->action_scheduler()->schedule_single( gmdate( 'U' ) + 120, 'automatewoo/system_check' );

		set_transient( 'automatewoo_background_system_check', true, DAY_IN_SECONDS * 4 );
	}


	static function run_system_check() {

		foreach( self::get_all() as $check ) {

			if ( ! $check->high_priority ) {
				continue;
			}

			$response = $check->run();

			if ( $response['success'] == false ) {
				set_transient( 'automatewoo_background_system_check_errors', true, DAY_IN_SECONDS );
				continue;
			}
		}

	}


	static function maybe_display_notices() {
		if ( Admin::is_page('status' ) ) {
			return;
		}

		if ( ! current_user_can('manage_woocommerce') || ! get_transient('automatewoo_background_system_check_errors') ) {
			return;
		}

		$strong = __( 'AutomateWoo status check has found issues.', 'automatewoo' );
		$more = sprintf( __( '<a href="%s">View details</a>', 'automatewoo' ), Admin::page_url( 'status' ) );

		Admin::notice('error is-dismissible', $strong, $more, 'aw-notice-system-error' );
	}


}