query_vars)) {
$wp_query->query_vars = array();
}
$error_message = $user_login = $user_pass = $error = '';
$is_role_check = true;
$class_login = 'user-icon';
$class_password = 'pass-icon';
$using_cookie = false;
if (isset($_POST['is_custom_login'])) {
$user_login = '';
if (isset($_POST['log']) && isset($_POST['mtnc_login_check']) && wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['mtnc_login_check'])), 'mtnc_login')) {
$user_login = sanitize_user(wp_unslash($_POST['log']));
}
$user_login = sanitize_user($user_login);
$user_pass = '';
if (isset($_POST['pwd']) && isset($_POST['mtnc_login_check']) && wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['mtnc_login_check'])), 'mtnc_login')) {
$user_pass = sanitize_text_field(wp_unslash($_POST['pwd']));
}
$access = array();
$access['user_login'] = esc_attr($user_login);
$access['user_password'] = $user_pass;
$access['remember'] = true;
$user = null;
$user = new WP_User(0, $user_login);
$current_role = current($user->roles);
if (!empty($mt_options['roles_array'])) {
foreach (array_keys($mt_options['roles_array']) as $key) {
if ($key === $current_role) {
$is_role_check = false;
}
}
} else {
$is_role_check = true;
}
if (!$is_role_check) {
$error_message = __('Permission access denied!', 'maintenance');
$class_login = 'error';
$class_password = 'error';
} else {
if (is_ssl()) {
$ssl = true;
} else {
$ssl = false;
}
$user_connect = wp_signon($access, $ssl);
if (is_wp_error($user_connect)) {
if ($user_connect->get_error_code() === 'invalid_username') {
$error_message = __('Login is incorrect!', 'maintenance');
$class_login = 'error';
$class_password = 'error';
} elseif ($user_connect->get_error_code() === 'incorrect_password') {
$error_message = __('Password is incorrect!', 'maintenance');
$class_password = 'error';
} else {
$error_message = __('Login and password are incorrect!', 'maintenance');
$class_login = 'error';
$class_password = 'error';
}
} else {
wp_safe_redirect(home_url('/'));
exit;
}
}
}
if (!$user_connect) {
mtnc_get_headers_503();
}
return array($error_message, $class_login, $class_password, $user_login);
}
function mtnc_add_custom_style()
{
global $wp_styles;
// all.css loading in index.php inline by 2 steps
wp_register_style('mtnc-style', MTNC_URI . 'load/css/style.css', '', filemtime(MTNC_DIR . 'load/css/style.css'));
wp_register_style('mtnc-fonts', MTNC_URI . 'load/css/fonts.css', '', filemtime(MTNC_DIR . 'load/css/fonts.css'));
$wp_styles->do_items('mtnc-style');
$wp_styles->do_items('mtnc-fonts');
mtnc_get_options_style();
}
function mtnc_add_bunny_fonts()
{
global $wp_scripts;
$mt_options = mtnc_get_plugin_options(true);
$font_link = array();
if (!empty($mt_options['body_font_family'])) {
$font_link[0] = mtnc_get_bunny_font(esc_attr($mt_options['body_font_family']));
/*Check if chooses subset for fonts*/
if (!empty($mt_options['body_font_subset'])) {
$font_subset = esc_attr($mt_options['body_font_subset']);
$font_link[0] .= ':' . $font_subset . '';
}
}
if (!empty($mt_options['countdown_font_family'])) {
$font_link[1] = mtnc_get_bunny_font(esc_attr($mt_options['countdown_font_family']));
}
if ($font_link) {
return $font_link;
}
return '';
}
function mtnc_add_custom_scripts()
{
global $wp_scripts;
$mt_options = mtnc_get_plugin_options(true);
$js_options = array(
'body_bg' => '',
'gallery_array' => array(),
'blur_intensity' => $mt_options['blur_intensity'],
'font_link' => '',
);
wp_register_script('_frontend', MTNC_URI . 'load/js/jquery.frontend.js', 'jquery', filemtime(MTNC_DIR . 'load/js/jquery.frontend.js'), true);
// IE scripts
wp_register_script('jquery_ie', $wp_scripts->registered['jquery-core']->src, array(), true, array());
wp_script_add_data('jquery_ie', 'conditional', 'lte IE 10');
if (!empty($mt_options['body_bg']) && empty($mt_options['gallery_array']['attachment_ids'])) {
$bg = wp_get_attachment_image_src($mt_options['body_bg'], 'full');
$js_options['body_bg'] = esc_url($bg[0]);
}
$js_options['font_link'] = mtnc_add_bunny_fonts();
wp_localize_script('_frontend', 'mtnc_front_options', $js_options);
$wp_scripts->do_items('jquery_ie');
$wp_scripts->do_items('jquery_migrate_ie');
$wp_scripts->do_items('_placeholder_ie');
$wp_scripts->do_items('_frontend_ie');
echo '';
$wp_scripts->do_items('jquery');
echo '';
$wp_scripts->do_items('_backstretch');
$wp_scripts->do_items('_frontend');
}
add_action('load_custom_scripts', 'mtnc_add_custom_scripts', 15);
add_action('load_custom_style', 'mtnc_add_custom_style', 20);
function mtnc_get_page_title($error_message = null)
{
$mt_options = mtnc_get_plugin_options(true);
$title = '';
if (empty($mt_options['page_title'])) {
$title = wp_title('|', false);
} else {
$title = wp_strip_all_tags(stripslashes($mt_options['page_title']));
}
echo '
' . esc_html($title) . '';
}
function mtnc_get_options_style()
{
$mt_options = mtnc_get_plugin_options(true);
$options_style = '';
if (!empty($mt_options['body_bg_color'])) {
$mt_options['body_bg_color'] = esc_attr($mt_options['body_bg_color']);
$options_style .= 'body {background-color: ' . esc_attr($mt_options['body_bg_color']) . '}';
$options_style .= '.preloader {background-color: ' . esc_attr($mt_options['body_bg_color']) . '}';
}
if (!empty($mt_options['is_blur']) && !empty($mt_options['blur_intensity'])) {
$options_style .= '.bg-img img, .bg-img source{';
$options_style .= '-webkit-filter: blur(' . $mt_options['blur_intensity'] . 'px);';
$options_style .= '-moz-filter: blur(' . $mt_options['blur_intensity'] . 'px);';
$options_style .= '-o-filter: blur(' . $mt_options['blur_intensity'] . 'px);';
$options_style .= '-ms-filter: blur(' . $mt_options['blur_intensity'] . 'px);';
$options_style .= 'filter:blur(' . $mt_options['blur_intensity'] . 'px);';
$options_style .= 'filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius=' . $mt_options['blur_intensity'] . ', enabled=\'true\');';
$options_style .= '}';
}
if ($mt_options['blur_intensity'] == '0') {
$options_style .= ' body > .main-container:after { background-color: transparent; } ';
}
if (!empty($mt_options['body_font_family'])) {
$options_style .= 'body {font-family: ' . esc_attr($mt_options['body_font_family']) . '; }';
}
if (!empty($mt_options['font_color'])) {
$font_color = esc_attr($mt_options['font_color']);
$options_style .= '.site-title, .preloader i, .login-form, .login-form a.lost-pass, .btn-open-login-form, .site-content, .user-content-wrapper, .user-content, footer, .maintenance a{color: ' . $font_color . ';} ';
$options_style .= 'a.close-user-content, #mailchimp-box form input[type="submit"], .login-form input#submit.button {border-color:' . $font_color . '} ';
$options_style .= 'input[type="submit"]:hover{background-color:' . $font_color . '} ';
$options_style .= 'input:-webkit-autofill, input:-webkit-autofill:focus{-webkit-text-fill-color:' . $font_color . '} ';
}
if (!empty($mt_options['controls_bg_color'])) {
$mt_options['controls_bg_color'] = esc_attr($mt_options['controls_bg_color']);
$options_style .= "body > .login-form-container{background-color:{$mt_options['controls_bg_color']}}";
$options_style .= ".btn-open-login-form{background-color:{$mt_options['controls_bg_color']}}";
$options_style .= "input:-webkit-autofill, input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 50px {$mt_options['controls_bg_color']} inset}";
$options_style .= "input[type='submit']:hover{color:{$mt_options['controls_bg_color']}} ";
$options_style .= "#custom-subscribe #submit-subscribe:before{background-color:{$mt_options['controls_bg_color']}} ";
}
if (!empty($mt_options['custom_css'])) {
$options_style .= wp_kses_stripslashes($mt_options['custom_css']);
}
echo '';
}
function mtnc_get_logo_box()
{
$mt_options = mtnc_get_plugin_options(true);
$logo_w = $logo_h = '';
if (!empty($mt_options['logo_width'])) {
$logo_w = $mt_options['logo_width'];
}
if (!empty($mt_options['logo_height'])) {
$logo_h = $mt_options['logo_height'];
}
if (!empty($mt_options['logo']) || !empty($mt_options['retina_logo'])) {
$logo = false;
if (is_numeric($mt_options['logo']) && $mt_options['logo'] > 0) {
$logo = wp_get_attachment_image_src($mt_options['logo'], 'full', true);
}
if (!empty($logo)) {
$image_link = esc_url_raw($logo[0]);
} else {
$image_link = $mt_options['logo'];
}
$retina_logo = false;
if (is_numeric($mt_options['retina_logo']) && $mt_options['retina_logo'] > 0) {
$retina_logo = wp_get_attachment_image_src($mt_options['retina_logo'], 'full', true);
}
if (!empty($retina_logo)) {
$image_link_retina = esc_url_raw($retina_logo[0]);
} else {
$image_link_retina = $mt_options['retina_logo'];
}
$image_link = empty($image_link) ? $image_link_retina : $image_link;
$image_link_retina = empty($image_link_retina) ? $image_link : $image_link_retina;
?>
; ?>)
alt="logo">
' . esc_html(get_bloginfo('name')) . '
';
}
}
add_action('logo_box', 'mtnc_get_logo_box', 10);
function mtnc_get_content_section()
{
$mt_options = mtnc_get_plugin_options(true);
if (!empty($mt_options['body_font_subset'])) {
$current_subset = esc_attr($mt_options['body_font_subset']);
$font_weight = (string) ((int) $current_subset);
$font_style = str_replace($font_weight, '', $current_subset);
}
if (empty($font_style) || $font_style === 'regular') {
$font_style = 'normal';
}
if (empty($font_weight)) {
$font_weight = 'normal';
}
$out_content = null;
if (!empty($mt_options['heading'])) {
$out_content .= '' . wp_kses_post(stripslashes($mt_options['heading'])) . '
';
}
if (!empty($mt_options['description'])) {
$description_content = wpautop(wp_kses_post(stripslashes($mt_options['description'])), true);
$out_content .= '' . $description_content . '
';
} else {
$site_description = get_bloginfo('description');
$out_content .= '' . $site_description . '
';
}
mtnc_wp_kses($out_content);
}
add_action('content_section', 'mtnc_get_content_section', 10);
function mtnc_get_footer_section()
{
$mt_options = mtnc_get_plugin_options(true);
if (!empty($mt_options['body_font_subset'])) {
$current_subset = esc_attr($mt_options['body_font_subset']);
$font_weight = (string) ((int) $current_subset);
$font_style = str_replace($font_weight, '', $current_subset);
}
if (empty($font_style) || $font_style === 'regular') {
$font_style = 'normal';
}
if (empty($font_weight)) {
$font_weight = 'normal';
}
$out_ftext = '';
if (isset($mt_options['footer_text']) && !empty($mt_options['footer_text'])) {
$out_ftext .= wp_kses_post(stripslashes($mt_options['footer_text']));
}
if (!empty($mt_options['show_some_love'])) {
$out_ftext .= '
This site is using the free WP Maintenance plugin. Download and use it for free.';
}
if ($out_ftext) {
$out_ftext = '' . $out_ftext . '
';
}
mtnc_wp_kses($out_ftext);
}
add_action('footer_section', 'mtnc_get_footer_section', 10);
function mtnc_do_button_login_form($error = -1)
{
?>
';
$out_login_form .= '';
$out_login_form .= '' . $error . '';
$out_login_form .= '';
$out_login_form .= '';
$out_login_form .= '' . __('Lost Password', 'maintenance') . '';
$out_login_form .= '';
$out_login_form .= '';
$out_login_form .= wp_nonce_field('mtnc_login', 'mtnc_login_check');
$out_login_form .= '';
if (isset($mt_options['is_login']) && $mt_options['is_login'] == true) {
mtnc_wp_kses($out_login_form);
}
}
function mtnc_reset_pass_url($lostpassword_url, $redirect)
{
$mt_options = mtnc_get_plugin_options(true);
if($mt_options['state'] === 0){
return $lostpassword_url;
}
$args = array('action' => 'lostpassword');
$lostpassword_url = add_query_arg($args, network_site_url('wp-login.php', 'login'));
return $lostpassword_url;
}
add_filter('lostpassword_url', 'mtnc_reset_pass_url', 999, 2);
function mtnc_get_preloader_element()
{
$mt_options = mtnc_get_plugin_options(true);
if (!empty($mt_options['preloader_img'])) {
$preloader_img = wp_get_attachment_image_src($mt_options['preloader_img'], 'full');
$preloader_img = !empty($preloader_img) ? $preloader_img[0] : false;
}
$preloader = !empty($preloader_img) ? '
' : '';
$out = '' . $preloader . '
';
mtnc_wp_kses($out);
}
add_action('before_content_section', 'mtnc_get_preloader_element', 5);
function mtnc_gg_analytics_code()
{
$mt_options = mtnc_get_plugin_options(true);
if (empty($mt_options['503_enabled']) && isset($mt_options['gg_analytics_id']) && ($mt_options['gg_analytics_id'] !== '')) {
?>
true,
'style' => true,
'class' => true,
'id' => true,
'checked' => true,
'disabled' => true,
'name' => true,
'size' => true,
'placeholder' => true,
'value' => true,
'data-*' => true,
'size' => true,
'disabled' => true
);
$allowed_tags['textarea'] = array(
'type' => true,
'style' => true,
'class' => true,
'id' => true,
'checked' => true,
'disabled' => true,
'name' => true,
'size' => true,
'placeholder' => true,
'value' => true,
'data-*' => true,
'cols' => true,
'rows' => true,
'disabled' => true,
'autocomplete' => true
);
$allowed_tags['select'] = array(
'type' => true,
'style' => true,
'class' => true,
'id' => true,
'checked' => true,
'disabled' => true,
'name' => true,
'size' => true,
'placeholder' => true,
'value' => true,
'data-*' => true,
'multiple' => true,
'disabled' => true
);
$allowed_tags['option'] = array(
'type' => true,
'style' => true,
'class' => true,
'id' => true,
'checked' => true,
'disabled' => true,
'name' => true,
'size' => true,
'placeholder' => true,
'value' => true,
'selected' => true,
'data-*' => true
);
$allowed_tags['optgroup'] = array(
'type' => true,
'style' => true,
'class' => true,
'id' => true,
'checked' => true,
'disabled' => true,
'name' => true,
'size' => true,
'placeholder' => true,
'value' => true,
'selected' => true,
'data-*' => true,
'label' => true
);
$allowed_tags['a'] = array(
'href' => true,
'data-*' => true,
'class' => true,
'style' => true,
'id' => true,
'target' => true,
'data-*' => true,
'role' => true,
'aria-controls' => true,
'aria-selected' => true,
'disabled' => true
);
$allowed_tags['div'] = array(
'style' => true,
'class' => true,
'id' => true,
'data-*' => true,
'role' => true,
'aria-labelledby' => true,
'value' => true,
'aria-modal' => true,
'tabindex' => true
);
$allowed_tags['li'] = array(
'style' => true,
'class' => true,
'id' => true,
'data-*' => true,
'role' => true,
'aria-labelledby' => true,
'value' => true,
'aria-modal' => true,
'tabindex' => true
);
$allowed_tags['span'] = array(
'style' => true,
'class' => true,
'id' => true,
'data-*' => true,
'aria-hidden' => true
);
$allowed_tags['style'] = array(
'class' => true,
'id' => true,
'type' => true
);
$allowed_tags['fieldset'] = array(
'class' => true,
'id' => true,
'type' => true
);
$allowed_tags['link'] = array(
'class' => true,
'id' => true,
'type' => true,
'rel' => true,
'href' => true,
'media' => true
);
$allowed_tags['form'] = array(
'style' => true,
'class' => true,
'id' => true,
'method' => true,
'action' => true,
'data-*' => true
);
echo wp_kses($html, $allowed_tags);
add_filter('safe_style_css', function ($styles) {
$styles_wf = array(
'text-align',
'margin',
'color',
'float',
'border',
'background',
'background-color',
'border-bottom',
'border-bottom-color',
'border-bottom-style',
'border-bottom-width',
'border-collapse',
'border-color',
'border-left',
'border-left-color',
'border-left-style',
'border-left-width',
'border-right',
'border-right-color',
'border-right-style',
'border-right-width',
'border-spacing',
'border-style',
'border-top',
'border-top-color',
'border-top-style',
'border-top-width',
'border-width',
'caption-side',
'clear',
'cursor',
'direction',
'font',
'font-family',
'font-size',
'font-style',
'font-variant',
'font-weight',
'height',
'letter-spacing',
'line-height',
'margin-bottom',
'margin-left',
'margin-right',
'margin-top',
'overflow',
'padding',
'padding-bottom',
'padding-left',
'padding-right',
'padding-top',
'text-decoration',
'text-indent',
'vertical-align',
'width'
);
foreach ($styles_wf as $style_wf) {
if (($key = array_search($style_wf, $styles)) !== false) {
unset($styles[$key]);
}
}
return $styles;
});
}