Регистрация
Создайте аккаунт, чтобы сохранять избранное
Регистрация через ВК
Здравствуйте, ! Для завершения регистрации укажите ваш номер телефона.
Телефон уже используется
Аккаунт с этим номером уже существует.
Восстановите пароль — письмо придёт на
Найден существующий аккаунт
На нашем сайте уже есть аккаунт с email .
Что вы хотите сделать?
Введите пароль от существующего аккаунта:
/**
* Footer for Electro theme (lombik.ru)
* Овальное мобильное меню — версия с тотальной зачисткой конкурентов
*/
electro_get_footer();
$lk_url = function_exists(‘wc_get_page_permalink’) ? wc_get_page_permalink(‘myaccount’) : ”;
if (empty($lk_url) || $lk_url === ‘#’) $lk_url = home_url(‘/my-account/’);
$wishlist_count = 0;
if (function_exists(‘YITH_WCWL’)) {
try {
$wishlist = YITH_WCWL()->get_products();
if (is_array($wishlist)) $wishlist_count = count($wishlist);
} catch (\Throwable $e) {}
}
if ($wishlist_count === 0 && function_exists(‘tinv_wishlist_get_count_lists’)) {
$wishlist_count = max(0, (int) tinv_wishlist_get_count_lists());
}
if ($wishlist_count === 0 && isset($_COOKIE[‘lombik_wishlist_count’])) {
$wishlist_count = max(0, (int) $_COOKIE[‘lombik_wishlist_count’]);
}
?>
<!– ОВАЛЬНОЕ МОБИЛЬНОЕ МЕНЮ LOMBIK –>
<div class=”mobile-bottom-nav” id=”mobileBottomNav”>
<div class=”mobile-nav-oval”>
<a href=”<?php echo esc_url(home_url(‘/wishlist/’)); ?>” class=”nav-item” id=”navWishlist”>
<span class=”nav-icon”>
<svg viewBox=”0 0 24 24″ width=”24″ height=”24″ fill=”none”
stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”>
<path d=”M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z”/>
</svg>
<span class=”nav-badge” id=”navWishlistBadge”
data-count=”<?php echo (int) $wishlist_count; ?>”>
<?php echo (int) $wishlist_count; ?>
</span>
</span>
<span class=”nav-text”>Избранное</span>
</a>
<div class=”nav-item nav-item-dropdown-wrapper”>
<a href=”#” class=”nav-item-inner” id=”callDropdownTrigger”>
<span class=”nav-icon”>
<svg viewBox=”0 0 24 24″ width=”24″ height=”24″ fill=”none”
stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”>
<path d=”M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z”/>
</svg>
</span>
<span class=”nav-text”>Звонок</span>
</a>
<div class=”branches-dropdown” id=”branchesDropdown”>
<a href=”tel:+79012632844″ class=”dropdown-link”>22 Апреля 26А</a>
<a href=”tel:+79045848313″ class=”dropdown-link”>Космический пр. 26А</a>
<a href=”tel:+79502159799″ class=”dropdown-link”>21-я Амурская 43/2В</a>
<a href=”tel:+79507975978″ class=”dropdown-link”>Химиков 36/2</a>
<a href=”tel:+79502152296″ class=”dropdown-link”>Заозерная 24а/3 5</a>
<a href=”tel:+79088042813″ class=”dropdown-link”>75 Гв. Бригады 2</a>
</div>
</div>
<a href=”<?php echo esc_url(home_url(‘/lombik-map/’)); ?>” class=”nav-item”>
<span class=”nav-icon”>
<svg viewBox=”0 0 24 24″ width=”24″ height=”24″ fill=”none”
stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”>
<path d=”M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z”/>
<circle cx=”12″ cy=”10″ r=”3″/>
</svg>
</span>
<span class=”nav-text”>Где мы</span>
</a>
<div class=”nav-item nav-item-dropdown-wrapper”>
<a href=”<?php echo esc_url( is_user_logged_in() ? home_url(‘/kabinet/’) : home_url(‘/vhod/’) ); ?>” class=”nav-item-inner” id=”lkDropdownTrigger”>
<span class=”nav-icon”>
<svg viewBox=”0 0 24 24″ width=”24″ height=”24″ fill=”none”
stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”>
<path d=”M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2″/>
<circle cx=”12″ cy=”7″ r=”4″/>
</svg>
</span>
<span class=”nav-text”>Кабинет</span>
</a>
<div class=”branches-dropdown” id=”lkDropdown”>
<?php if ( is_user_logged_in() ) :
$current_user = wp_get_current_user(); ?>
<div class=”dropdown-user-info” style=”padding: 10px 16px; font-size: 12px; color: #777; border-bottom: 1px solid var(–lnb-dd-divider);”>
Привет, <strong><?php echo esc_html($current_user->display_name); ?></strong>
</div>
<a href=”<?php echo esc_url(home_url(‘/kabinet/’)); ?>” class=”dropdown-link”>
<svg class=”dd-icon” viewBox=”0 0 24 24″ fill=”none” stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”><path d=”M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2″/><circle cx=”12″ cy=”7″ r=”4″/></svg>
Мой профиль
</a>
<a href=”<?php echo esc_url(wp_logout_url(home_url())); ?>” class=”dropdown-link” style=”color: #e53935; font-weight: bold;”>
<svg class=”dd-icon” viewBox=”0 0 24 24″ fill=”none” stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”><path d=”M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4″/><polyline points=”16 17 21 12 16 7″/><line x1=”21″ y1=”12″ x2=”9″ y2=”12″/></svg>
Выйти
</a>
<?php else : ?>
<a href=”<?php echo esc_url(home_url(‘/vhod/’)); ?>” class=”dropdown-link” style=”font-weight: bold;”>
<svg class=”dd-icon” viewBox=”0 0 24 24″ fill=”none” stroke=”currentColor” stroke-width=”2″ stroke-linecap=”round” stroke-linejoin=”round”><path d=”M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4″/><polyline points=”10 17 15 12 10 7″/><line x1=”15″ y1=”12″ x2=”3″ y2=”12″/></svg>
Войти / Регистрация
</a>
<?php endif; ?>
</div>
</div>
</div>
</div>
<style>
/* ============================================================
ТОТАЛЬНАЯ ЗАЧИСТКА СТАРЫХ НИЖНИХ ПАНЕЛЕЙ
============================================================ */
.bookmark,
.electro-mobile-nav,
.electro-mobile-bottom-nav,
.electro-mobile-toolbar,
.mobile-toolbar,
.mobile-nav:not(#mobileBottomNav),
.mobile-menu:not(.elementor-nav-menu),
.mobile-bottom-menu,
.mobile-bottom-nav:not(#mobileBottomNav),
.e-navbar,
.footer-navbar,
.mobile-footer-nav,
.bottom-nav-wrap,
#footer-mobile-nav,
.handheld-navigation,
.woocommerce-handheld-footer-bar,
.mobile-app-bar,
.app-bar,
.floating-bar,
.mobile-buttons,
.mobile-cta,
.mobile-actions-bar {
display: none !important;
visibility: hidden !important;
pointer-events: none !important;
}
/* ТЕМА */
:root {
–lnb-bg: rgba(255, 255, 255, 0.85);
–lnb-bg-shrink: rgba(255, 255, 255, 0.45);
–lnb-border: rgba(255, 255, 255, 0.6);
–lnb-text: #222;
–lnb-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
–lnb-inset: inset 0 1px 0 rgba(255, 255, 255, 0.7);
–lnb-dd-bg: rgba(255, 255, 255, 0.98);
–lnb-dd-border: #e6e6e6;
–lnb-dd-divider: #f2f2f2;
–lnb-dd-hover: #f5f5f5;
–lnb-badge-bg: #e53935;
–lnb-badge-text: #fff;
}
@media (prefers-color-scheme: dark) {
:root {
–lnb-bg: rgba(28,28,32,0.78); –lnb-bg-shrink: rgba(28,28,32,0.42);
–lnb-border: rgba(255,255,255,0.08); –lnb-text: #f2f2f2;
–lnb-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
–lnb-inset: inset 0 1px 0 rgba(255,255,255,0.06);
–lnb-dd-bg: rgba(32,32,36,0.98); –lnb-dd-border: #333;
–lnb-dd-divider: #2a2a2e; –lnb-dd-hover: #2e2e33;
–lnb-badge-bg: #ff5252;
}
}
html.lombik-dark, body.lombik-dark {
–lnb-bg: rgba(28,28,32,0.78); –lnb-bg-shrink: rgba(28,28,32,0.42);
–lnb-border: rgba(255,255,255,0.08); –lnb-text: #f2f2f2;
–lnb-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
–lnb-inset: inset 0 1px 0 rgba(255,255,255,0.06);
–lnb-dd-bg: rgba(32,32,36,0.98); –lnb-dd-border: #333;
–lnb-dd-divider: #2a2a2e; –lnb-dd-hover: #2e2e33;
–lnb-badge-bg: #ff5252;
}
/* КОНТЕЙНЕР — z-index выше всех, гарантированный клик */
.mobile-bottom-nav#mobileBottomNav {
display: flex !important;
visibility: visible !important;
position: fixed !important;
bottom: 10px !important;
left: 50% !important;
right: auto !important;
transform: translateX(-50%) !important;
width: calc(100vw – 16px) !important;
max-width: 720px !important;
justify-content: center !important;
pointer-events: none;
z-index: 999999 !important;
padding: 0 !important;
box-sizing: border-box !important;
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
.mobile-nav-oval {
pointer-events: auto !important;
display: flex;
justify-content: space-evenly;
align-items: center;
width: 100%;
max-width: 720px;
padding: 10px 14px;
background: var(–lnb-bg);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
border-radius: 40px;
border: 1px solid var(–lnb-border);
box-shadow: var(–lnb-shadow), var(–lnb-inset);
transform-origin: center bottom;
transition:
transform 0.35s ease,
opacity 0.35s ease,
background 0.35s ease,
backdrop-filter 0.35s ease,
-webkit-backdrop-filter 0.35s ease;
box-sizing: border-box;
}
.mobile-bottom-nav.shrink .mobile-nav-oval {
transform: scale(0.8);
opacity: 0.55;
background: var(–lnb-bg-shrink);
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
}
.nav-item {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-decoration: none;
color: var(–lnb-text);
font-size: 12px;
line-height: 1.1;
padding: 4px 0;
transition: transform 0.2s ease;
position: relative;
cursor: pointer;
}
.nav-item:hover, .nav-item:active { transform: translateY(-2px); }
.nav-icon {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
margin-bottom: 4px;
color: var(–lnb-text);
}
.nav-icon svg { width: 24px; height: 24px; display: block; }
.nav-text {
font-size: 11px;
font-weight: 500;
white-space: nowrap;
color: var(–lnb-text);
}
.nav-item-dropdown-wrapper { cursor: pointer; }
.nav-item-inner {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-decoration: none;
color: inherit;
width: 100%;
}
.nav-badge {
position: absolute;
top: -6px;
right: -8px;
min-width: 16px;
height: 16px;
padding: 0 4px;
background: var(–lnb-badge-bg);
color: var(–lnb-badge-text);
border-radius: 8px;
font-size: 10px;
font-weight: 700;
line-height: 16px;
text-align: center;
box-shadow: 0 0 0 2px var(–lnb-bg);
transition: transform 0.2s ease, opacity 0.2s ease;
}
.nav-badge[data-count=”0″] { opacity: 0; transform: scale(0.6); pointer-events: none; }
.nav-badge.bump { animation: badgeBump 0.4s ease; }
@keyframes badgeBump {
0% { transform: scale(1); } 50% { transform: scale(1.35); } 100% { transform: scale(1); }
}
.branches-dropdown {
display: none;
position: absolute;
bottom: calc(100% + 12px);
left: 50%;
transform: translateX(-50%);
background: var(–lnb-dd-bg);
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
min-width: 220px;
box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.25);
border-radius: 14px;
border: 1px solid var(–lnb-dd-border);
padding: 6px 0;
z-index: 1000000;
overflow: hidden;
}
.branches-dropdown.show { display: block; }
.dropdown-link {
color: var(–lnb-text);
padding: 12px 16px;
text-decoration: none;
display: flex;
align-items: center;
gap: 10px;
font-size: 14px;
border-bottom: 1px solid var(–lnb-dd-divider);
text-align: left;
}
.dropdown-link:last-child { border-bottom: none; }
.dropdown-link:hover, .dropdown-link:active { background-color: var(–lnb-dd-hover); }
.dropdown-link {
color: var(–lnb-text);
padding: 12px 16px;
text-decoration: none;
display: flex;
align-items: center;
gap: 10px;
font-size: 14px;
border-bottom: 1px solid var(–lnb-dd-divider);
text-align: left;
}
.dropdown-link:last-child { border-bottom: none; }
.dropdown-link:hover, .dropdown-link:active { background-color: var(–lnb-dd-hover); }
.dd-icon {
width: 18px;
height: 18px;
flex-shrink: 0;
opacity: 0.75;
}
body { padding-bottom: 90px; }
</style>
<script>
(function() {
const nav = document.getElementById(‘mobileBottomNav’);
const trigger = document.getElementById(‘callDropdownTrigger’);
const dropdown = document.getElementById(‘branchesDropdown’);
const badge = document.getElementById(‘navWishlistBadge’);
// НОВЫЕ ПЕРЕМЕННЫЕ ДЛЯ КАБИНЕТА
const lkTrigger = document.getElementById(‘lkDropdownTrigger’);
const lkDropdown = document.getElementById(‘lkDropdown’);
if (!nav) return;
/* ============================================================
ЖЁСТКАЯ ЗАЧИСТКА DOM (несколько раз, т.к. блоки могут добавляться позже)
============================================================ */
const killSelectors = [
‘.bookmark’,
‘.electro-mobile-nav’,
‘.electro-mobile-bottom-nav’,
‘.electro-mobile-toolbar’,
‘.mobile-toolbar’,
‘.mobile-bottom-menu’,
‘.e-navbar’,
‘.footer-navbar’,
‘.mobile-footer-nav’,
‘.bottom-nav-wrap’,
‘#footer-mobile-nav’,
‘.handheld-navigation’,
‘.woocommerce-handheld-footer-bar’,
‘.mobile-app-bar’,
‘.app-bar’,
‘.floating-bar’,
‘.mobile-buttons’,
‘.mobile-cta’,
‘.mobile-actions-bar’
];
function killZombies() {
// Убираем дубли .mobile-bottom-nav
document.querySelectorAll(‘.mobile-bottom-nav’).forEach(el => {
if (el.id !== ‘mobileBottomNav’) {
el.remove();
}
});
// Убираем всех известных конкурентов
killSelectors.forEach(sel => {
document.querySelectorAll(sel).forEach(el => el.remove());
});
// Ищем любые fixed-элементы, перекрывающие нижнюю часть экрана
document.querySelectorAll(‘*’).forEach(el => {
if (el === nav || nav.contains(el)) return;
const s = getComputedStyle(el);
if (s.position !== ‘fixed’) return;
const rect = el.getBoundingClientRect();
// Если элемент внизу и большой — подозрительный
if (rect.bottom > window.innerHeight – 20 &&
rect.top > window.innerHeight – 200 &&
rect.width > window.innerWidth * 0.5 &&
rect.height < 200 &&
parseInt(s.zIndex || ‘0’) < 999999) {
// Пропускаем наши элементы и Elementor popup/overlay
if (el.closest(‘#mobileBottomNav’)) return;
if (el.matches(‘header, footer, nav, .site-header, .site-footer, [class*=”cookie”], [class*=”popup”], [class*=”modal”], [class*=”chat”], [class*=”widget”]’)) return;
// Логируем и убираем
console.log(‘LOMBIK: убираю подозрительный fixed-блок:’, el.tagName, el.className, el.id);
el.style.display = ‘none’;
el.style.pointerEvents = ‘none’;
}
});
}
// Зачищаем сразу и через задержки (на случай отложенной загрузки)
killZombies();
setTimeout(killZombies, 500);
setTimeout(killZombies, 1500);
setTimeout(killZombies, 3000);
/* Выпадающие списки (Звонок и Кабинет) */
if (trigger && dropdown) {
trigger.addEventListener(‘click’, function(e) {
e.preventDefault(); e.stopPropagation();
if (lkDropdown) lkDropdown.classList.remove(‘show’); // Закрываем кабинет, если открыли звонок
dropdown.classList.toggle(‘show’);
});
}
if (lkTrigger && lkDropdown) {
lkTrigger.addEventListener(‘click’, function(e) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
// Определяем авторизацию ПО ФАКТУ содержимого dropdown
// Если есть пункт “Мой профиль” → значит авторизован
var hasProfile = !!lkDropdown.querySelector(‘.dropdown-user-info’);
if (!hasProfile) {
// Гость — идём на страницу входа
window.location.href = ‘/vhod/’;
return false;
}
// Авторизованный — открываем dropdown
if (dropdown) dropdown.classList.remove(‘show’);
lkDropdown.classList.toggle(‘show’);
return false;
}, true);
}
// Закрытие при клике в любое пустое место сайта
document.addEventListener(‘click’, function(e) {
if (dropdown && !dropdown.contains(e.target) && !trigger.contains(e.target)) {
dropdown.classList.remove(‘show’);
}
if (lkDropdown && !lkDropdown.contains(e.target) && !lkTrigger.contains(e.target)) {
lkDropdown.classList.remove(‘show’);
}
});
/* Скролл */
let lastY = window.pageYOffset, ticking = false;
function onScroll() {
const y = window.pageYOffset, d = y – lastY;
if (Math.abs(d) > 4) {
if (d > 0 && y > 80) nav.classList.add(‘shrink’);
else nav.classList.remove(‘shrink’);
lastY = y;
}
ticking = false;
}
window.addEventListener(‘scroll’, () => {
if (!ticking) { requestAnimationFrame(onScroll); ticking = true; }
}, { passive: true });
/* Счётчик */
function setBadge(n) {
if (!badge) return;
n = Math.max(0, parseInt(n, 10) || 0);
const old = parseInt(badge.getAttribute(‘data-count’), 10) || 0;
badge.textContent = n;
badge.setAttribute(‘data-count’, n);
if (n > old) { badge.classList.remove(‘bump’); void badge.offsetWidth; badge.classList.add(‘bump’); }
}
window.addEventListener(‘lombik:wishlist-changed’, e => {
if (e.detail && typeof e.detail.count !== ‘undefined’) setBadge(e.detail.count);
});
document.addEventListener(‘added_to_wishlist’, () => {
setBadge((parseInt(badge?.getAttribute(‘data-count’),10)||0) + 1);
});
document.addEventListener(‘removed_from_wishlist’, () => {
setBadge((parseInt(badge?.getAttribute(‘data-count’),10)||0) – 1);
});
/* Тёмная тема */
const THEME_KEY = ‘lombik_theme’;
const saved = localStorage.getItem(THEME_KEY);
if (saved === ‘dark’) document.documentElement.classList.add(‘lombik-dark’);
if (saved === ‘light’) document.documentElement.classList.remove(‘lombik-dark’);
window.addEventListener(‘lombik:toggle-theme’, () => {
const isDark = document.documentElement.classList.toggle(‘lombik-dark’);
localStorage.setItem(THEME_KEY, isDark ? ‘dark’ : ‘light’);
});
})();
</script>
<!– Debug Mapbox –>
<script>
document.addEventListener(‘DOMContentLoaded’, function() {
const el = document.getElementById(‘lombik-map’);
if (!el) { console.log(‘LOMBIK DEBUG: контейнер не найден’); return; }
console.log(‘LOMBIK DEBUG data-lat:’, el.dataset.lat);
console.log(‘LOMBIK DEBUG data-lng:’, el.dataset.lng);
console.log(‘LOMBIK DEBUG data-zoom:’, el.dataset.zoom);
console.log(‘LOMBIK DEBUG data-branches:’, el.dataset.branches);
console.log(‘LOMBIK DEBUG lombikMapData:’, typeof lombikMapData !== ‘undefined’ ? lombikMapData : ‘НЕ ОПРЕДЕЛЁН’);
});
</script>