<?php
/**
 * Compatibility Class
 *
 * @file The AioSecurity Model file
 * @package HMWP/Compatibility/AioSecurity
 * @since 7.0.0
 */

defined( 'ABSPATH' ) || die( 'Cheating uh?' );

class HMWP_Models_Compatibility_AioSecurity extends HMWP_Models_Compatibility_Abstract {

	public function hookFrontend() {

		add_filter( 'aiowps_site_lockout_output', array( $this, 'aioSecurityMaintenance' ), PHP_INT_MAX, 1 );

	}

	/**
	 * Compatibility with All In On Security plugin
	 *
	 * @param string $content
	 *
	 * @throws Exception
	 */
	public function aioSecurityMaintenance( $content ) {
		if ( defined( 'AIO_WP_SECURITY_PATH' ) ) {
			if ( empty( $content ) ) {
				nocache_headers();
				header( "HTTP/1.0 503 Service Unavailable" );
				remove_action( 'wp_head', 'head_addons', 7 );

				ob_start();
				$template = apply_filters( 'aiowps_site_lockout_template_include', AIO_WP_SECURITY_PATH . '/other-includes/wp-security-visitor-lockout-page.php' );
				include_once $template;
				$output = ob_get_clean();

				echo HMWP_Classes_ObjController::getClass( 'HMWP_Models_Rewrite' )->find_replace( $output ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			} else {
				echo $content; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			}

			exit();
		}
	}

}
