//-----------------------------------------------------------------------------
// Maintenance Mode
//-----------------------------------------------------------------------------
add_action( 'init', 'cherry_maintenance_mode_redirecte' );
function cherry_maintenance_mode_redirecte() {
global $pagenow;
$mtc_options = get_option('mtc_options');
if(isset($mtc_options['mtc_mode_on'])){
// if (current_user_can( 'administrator')) {
if ( is_user_logged_in() ) {
if(is_admin()){
if($pagenow != "admin.php"){
add_action( 'admin_notices', 'cherry_maintenance_mode_notice' );
}
}else{
add_action( 'wp_before_admin_bar_render', 'cherry_maintenance_mode_notice' );
}
}else{
$page_url_now = cherry_get_page_URL();
if(!strripos($page_url_now, '/wp-admin') && $pagenow != "wp-login.php"){
add_action("wp_head", "cherry_under_construction_page_content");
}
}
register_sidebar(array(
'name' => __('Under Construction Page Widgets Area.', CHERRY_PLUGIN_DOMAIN),
'id' => 'under-construction-area',
'description' => __('Under construction page widgets area.', CHERRY_PLUGIN_DOMAIN),
'before_widget' => '
',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
));
}
}
function cherry_under_construction_page_content(){
$files = '/plugin-under-construction-content.php';
$template_dir = file_exists(CURRENT_THEME_DIR . $files) ? CURRENT_THEME_DIR . $files : CHERRY_PLUGIN_DIR .'includes' . $files ;
include_once ($template_dir);
exit;
}
function cherry_maintenance_mode_notice(){
echo cherry_add_notice(array(
'wrapper_id' => 'maintenance_mode_notice',
'wrapper_class' => 'error',
'notice_content' => ''.__('Maintenance mode activated. Website is blocked from public', CHERRY_PLUGIN_DOMAIN).' '.__('Settings.', CHERRY_PLUGIN_DOMAIN).''
)
);
if(!is_admin()){
echo '';
}
}
add_action('wp_ajax_mtc_save', 'cherry_mtc_save');
function cherry_mtc_save() {
$post_date = isset($data) ? $data : $_POST['data'] ;
update_option('mtc_options', $post_date);
exit();
}
//-----------------------------------------------------------------------------
// End Maintenance Mode
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Add notace in admin panel or web site
//-----------------------------------------------------------------------------
function cherry_add_notice($attr = array()){
$default = array(
'wrapper_id' => '',
'wrapper_class' => 'error',
'notice_content' => ''
);
extract(array_merge($default, $attr));
$wrapper_id = $wrapper_id ? ' id ="'.$wrapper_id.'"' : '' ;
$wrapper_class = $wrapper_class ? ' class ="'.$wrapper_class.'"' : '' ;
$output = '';
return $output;
}
//-----------------------------------------------------------------------------
// get now page url
//-----------------------------------------------------------------------------
function cherry_get_page_URL(){
if(!isset($_SERVER['REQUEST_URI'])){
$site_uri = $_SERVER['PHP_SELF'];
} else {
$site_uri = $_SERVER['REQUEST_URI'];
$https = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
$site_protocol = strtolower($_SERVER["SERVER_PROTOCOL"]);
$site_protocol = substr($site_protocol,0,strpos($site_protocol,"/")).$https;
$site_port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
}
return $site_protocol."://".$_SERVER['SERVER_NAME'].$site_port.$site_uri;
}