Current File : /home/pacjaorg/www/cop29/wp-content/plugins/maintenance/load/functions.php |
<?php
function mtnc_get_custom_login_code()
{
global $wp_query,
$error;
$mt_options = mtnc_get_plugin_options(true);
$user_connect = false;
if (!is_array($wp_query->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 '<!--[if !IE]><!-->';
$wp_scripts->do_items('jquery');
echo '<!--<![endif]-->';
$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 '<title>' . esc_html($title) . '</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 '<style type="text/css">';
mtnc_wp_kses($options_style);
echo '</style>';
}
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;
?>
<div class="logo-box" rel="home">
<img src="<?php echo esc_url($image_link); ?>" srcset="<?php echo esc_url($image_link_retina); ?> 2x" width="<?php echo esc_attr($logo_w); ?>" <?php echo (!empty($logo_h)) ? 'height="' . esc_attr($logo_h) . '"' : ''; ?> alt="logo">
</div>
<?php
} else {
echo '<div class="logo-box istext" rel="home"><h1 class="site-title">' . esc_html(get_bloginfo('name')) . '</h1></div>';
}
}
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 .= '<h2 class="heading font-center" style="font-weight:' . $font_weight . ';font-style:' . $font_style . '">' . wp_kses_post(stripslashes($mt_options['heading'])) . '</h2>';
}
if (!empty($mt_options['description'])) {
$description_content = wpautop(wp_kses_post(stripslashes($mt_options['description'])), true);
$out_content .= '<div class="description" style="font-weight:' . $font_weight . ';font-style:' . $font_style . '">' . $description_content . '</div>';
} else {
$site_description = get_bloginfo('description');
$out_content .= '<div class="description" style="font-weight:' . $font_weight . ';font-style:' . $font_style . '"><h3>' . $site_description . '</h3></div>';
}
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 .= '<br><small>This site is using the free <a title="Free WP Maintenance Plugin" target="_blank" href="https://wordpress.org/plugins/maintenance/">WP Maintenance plugin</a>. Download and use it for free.</small>';
}
if ($out_ftext) {
$out_ftext = '<div style="font-weight:' . $font_weight . ';font-style:' . $font_style . '">' . $out_ftext . '</div>';
}
mtnc_wp_kses($out_ftext);
}
add_action('footer_section', 'mtnc_get_footer_section', 10);
function mtnc_do_button_login_form($error = -1)
{
?>
<div id="btn-open-login-form" class="btn-open-login-form">
<i class="fi-lock"></i>
</div>
<div id="btn-sound" class="btn-open-login-form sound">
<i id="value_botton" class="fa fa-volume-off" aria-hidden="true"></i>
</div>
<?php
}
function mtnc_do_login_form($user_login, $class_login, $class_password, $error = null)
{
$mt_options = mtnc_get_plugin_options(true);
$out_login_form = $form_error = '';
if (($class_login === 'error') || ($class_password === 'error')) {
$form_error = ' active error';
}
$out_login_form .= '<form name="login-form" id="login-form" class="login-form' . $form_error . '" method="post">';
$out_login_form .= '<label>' . __('User Login', 'maintenance') . '</label>';
$out_login_form .= '<span class="login-error">' . $error . '</span>';
$out_login_form .= '<span class="licon ' . $class_login . '"><input type="text" name="log" id="log" value="' . $user_login . '" size="20" class="input username" placeholder="' . __('Username', 'maintenance') . '"/></span>';
$out_login_form .= '<span class="picon ' . $class_password . '"><input type="password" name="pwd" id="login_password" value="" size="20" class="input password" placeholder="' . __('Password', 'maintenance') . '" /></span>';
$out_login_form .= '<a class="lost-pass" href="' . esc_url(wp_lostpassword_url()) . '" title="' . __('Lost Password', 'maintenance') . '">' . __('Lost Password', 'maintenance') . '</a>';
$out_login_form .= '<input type="submit" class="button" name="submit" id="submit" value="' . __('Login', 'maintenance') . '" tabindex="4" />';
$out_login_form .= '<input type="hidden" name="is_custom_login" value="1" />';
$out_login_form .= wp_nonce_field('mtnc_login', 'mtnc_login_check');
$out_login_form .= '</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) ? '<img src="' . $preloader_img . '">' : '<i class="fi-widget" aria-hidden="true"></i>';
$out = '<div class="preloader">' . $preloader . '</div>';
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'] !== '')) {
?>
<!-- Google tag (gtag.js) -->
<script async src='https://www.googletagmanager.com/gtag/js?id=<?php echo esc_attr($mt_options['gg_analytics_id']); ?>'></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '<?php echo esc_attr($mt_options['gg_analytics_id']); ?>');
</script>
<?php
}
}
add_action('add_gg_analytics_code', 'mtnc_gg_analytics_code');
function mtnc_get_headers_503()
{
$mt_options = mtnc_get_plugin_options(true);
nocache_headers();
if (!empty($mt_options['503_enabled'])) {
$protocol = 'HTTP/1.0';
if (isset($_SERVER['SERVER_PROTOCOL']) && 'HTTP/1.1' === $_SERVER['SERVER_PROTOCOL']) {
$protocol = 'HTTP/1.1';
}
header("$protocol 503 Service Unavailable", true, 503);
$v_curr_date_end = '';
$vdate_end = date_i18n('Y-m-d', strtotime(current_time('mysql', 0)));
$vtime_end = date_i18n('h:i a', strtotime('12:00 pm'));
if (!empty($mt_options['expiry_date_end'])) {
$vdate_end = $mt_options['expiry_date_end'];
}
if (!empty($mt_options['expiry_time_end'])) {
$vtime_end = $mt_options['expiry_time_end'];
}
if ($mt_options['state'] && !empty($mt_options['expiry_date_end']) && !empty($mt_options['expiry_time_end'])) {
$date_concat = $vdate_end . ' ' . $vtime_end;
$v_curr_date = strtotime($date_concat);
if (strtotime(current_time('mysql', 0)) < $v_curr_date) {
header('Retry-After: ' . gmdate('D, d M Y H:i:s', $v_curr_date));
} else {
header('Retry-After: 3600');
}
} else {
header('Retry-After: 3600');
}
}
}
function mtnc_wp_kses($html)
{
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',
'display',
);
foreach ($styles_wf as $style_wf) {
$styles[] = $style_wf;
}
return $styles;
});
$allowed_tags = wp_kses_allowed_html('post');
$allowed_tags['input'] = array(
'type' => 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;
});
}