HEX
Server: Apache
System: Linux c119.dattaweb.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: c1190199 (57165)
PHP: 7.4.33
Disabled: mail, system, shell, exec, system_exec, shell_exec, mysql_pconnect, passthru, popen, proc_open, proc_close, proc_nice, proc_terminate, proc_get_status, escapeshellarg, escapeshellcmd, eval, dl, imap_mail, libvirt_connect, gnupg_init, unsetenv, apache_setenv, pcntl_exec, 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_getpriority, pcntl_setpriority, pcntl_async_signals, opcache_get_status, opcache_reset, opcache_get_configuration
Upload Files
File: /home/c1190199/public_html/_alex/wp-content/themes/portada/class/Theme.MaintenanceMode.class.php
<?php

/******************************************************************************/
/******************************************************************************/

class Portada_ThemeMaintenanceMode
{
	/**************************************************************************/

	function __construct()
	{
	
	}
	
	/**************************************************************************/
	
	function init()
	{
		if(is_admin()) return;
		
		if(Portada_ThemeOption::getOption('maintenance_mode_enable')!=1) return;
		
		$user=wp_get_current_user();
		if(in_array($user->data->ID,(array)Portada_ThemeOption::getOption('maintenance_mode_user_id'))) return;
	
		$address=array_map('trim',preg_split("/\n/",Portada_ThemeOption::getOption('maintenance_mode_ip_address')));
		if(in_array(Portada_ThemeHelper::getVisitorIP(),$address)) return;
		
		$page=get_post((int)Portada_ThemeOption::getOption('maintenance_mode_post_id'));
		if(is_null($page)) return;
		
		add_action('wp_head',array($this,'filterWPHead'));
	}
	
	/**************************************************************************/
	
	function filterWPHead()
	{
		$page=get_post((int)Portada_ThemeOption::getOption('maintenance_mode_post_id'));
		if(is_null($page)) return;	
		
		if($page->ID==get_the_ID())
		{
			add_filter('wp_headers',array($this,'filterWPHeader'));
			add_filter('status_header',array($this,'filterStatusHeader'),10,4);			
		}
		else
		{
			ob_start();
			wp_redirect(get_permalink($page->ID));
			ob_end_flush();
			exit;			
		}
	}

	/**************************************************************************/
	
	function filterStatusHeader($header,$status_code,$text,$proto)
	{
		$text=get_status_header_desc(503);
		return($proto.' 503 '.$text);		
	}
	
	/**************************************************************************/
	
	function filterWPHeader($headers)
	{
		$headers['Retry-After']=3600;
		return($headers);		
	}
	
	/**************************************************************************/
}

/******************************************************************************/
/******************************************************************************/