992 lines
61 KiB
PHP
992 lines
61 KiB
PHP
<?php
|
||
/**
|
||
* Template Name: Подготовка к школе (Bento 2026)
|
||
*
|
||
* Асимметричная Bento-сетка. Нейрокопирайтинг.
|
||
* CSS: main.css (секции Bento/Social/Guarantee) + podgotovka-k-shkole.css (переопределения 2026)
|
||
*
|
||
* @package Dekart
|
||
*/
|
||
|
||
get_header();
|
||
$post_id = get_the_ID();
|
||
|
||
// ─── ДАННЫЕ ОРГАНИЗАЦИИ ───
|
||
$opt_address = get_option( 'branch_address' ) ?: carbon_get_theme_option( 'site_address' ) ?: carbon_get_post_meta( $post_id, 'contact_address' ) ?: '';
|
||
$opt_coords = get_option( 'branch_coords' ) ?: carbon_get_post_meta( $post_id, 'contact_location' ) ?: '';
|
||
$opt_phone = get_option( 'branch_phone' ) ?: carbon_get_theme_option( 'site_phone' ) ?: carbon_get_post_meta( $post_id, 'contact_tel' ) ?: '';
|
||
$opt_email = get_option( 'branch_email' ) ?: carbon_get_theme_option( 'site_mail' ) ?: carbon_get_post_meta( $post_id, 'contact_mail' ) ?: '';
|
||
$opt_name = get_option( 'branch_name' ) ?: carbon_get_theme_option( 'site_name' ) ?: 'Декарт';
|
||
$opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_id, 'social_media' ) ?: [];
|
||
?>
|
||
|
||
<main class="page page-pksh">
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Breadcrumbs (outside hero) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<?php
|
||
$branch_city_prep = get_option( 'branch_city_prep', 'в Щёлково' );
|
||
$branch_city_clean = str_replace( array( 'в ', 'В ' ), '', $branch_city_prep );
|
||
$banner_img_id = carbon_get_post_meta( $post_id, 'banner_image' );
|
||
$h1_hero = carbon_get_post_meta( $post_id, 'banner_h1' );
|
||
$subtitle_hero = carbon_get_post_meta( $post_id, 'banner_subtitle' );
|
||
$hero_metrics = carbon_get_post_meta( $post_id, 'pksh_social_counters' );
|
||
$ext_review_count = get_option( 'branch_ext_review_count', '247' );
|
||
$hero_phone_clean = preg_replace( '/[^0-9+]/', '', $opt_phone );
|
||
?>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Breadcrumbs -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<div class="container breadcrumbs-wrapper">
|
||
<ul class="breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList" role="navigation" aria-label="Breadcrumb">
|
||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" itemprop="item" title="Главная">
|
||
<span itemprop="name">Главная</span>
|
||
</a>
|
||
<meta itemprop="position" content="1">
|
||
</li>
|
||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||
<span class="last_item" itemprop="name">Подготовка к школе</span>
|
||
<meta itemprop="position" content="2">
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Hero (ds-hero: dark bg, white grid) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="section-bg ds-hero" data-bg="hero" id="ds-hero" aria-label="Подготовка к школе">
|
||
<div class="ds-container">
|
||
<div class="ds-hero__inner">
|
||
|
||
<!-- Left: Content -->
|
||
<div class="ds-hero__content">
|
||
|
||
<!-- Address pill -->
|
||
<div class="ds-hero__address">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
||
<path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/>
|
||
<circle cx="12" cy="10" r="3"/>
|
||
</svg>
|
||
<span><?php echo esc_html( $opt_address ?: 'ул. Талсинская, 24' ); ?> — центр <?php echo esc_html( $branch_city_clean ?: 'Щёлково' ); ?></span>
|
||
</div>
|
||
|
||
<!-- H1 -->
|
||
<h1 class="ds-hero__h1"><?php echo esc_html( $h1_hero ?: 'Подготовка к школе в Щёлково' ); ?></h1>
|
||
|
||
<!-- Subtitle -->
|
||
<?php if ( '' !== $subtitle_hero ) : ?>
|
||
<p class="ds-hero__subtitle"><?php echo esc_html( $subtitle_hero ); ?></p>
|
||
<?php endif; ?>
|
||
|
||
<!-- Metrics (из pksh_social_counters) -->
|
||
<?php if ( ! empty( $hero_metrics ) && is_array( $hero_metrics ) ) : ?>
|
||
<div class="ds-hero__metrics">
|
||
<?php foreach ( $hero_metrics as $metric ) :
|
||
$num = $metric['counter_number'] ?? '';
|
||
$lbl = $metric['counter_label'] ?? '';
|
||
if ( empty( $num ) ) continue;
|
||
?>
|
||
<div class="ds-hero__metric reveal">
|
||
<span class="ds-hero__metric-number"><?php echo esc_html( $num ); ?></span>
|
||
<span class="ds-hero__metric-label"><?php echo esc_html( $lbl ); ?></span>
|
||
</div>
|
||
<?php endforeach; ?>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<!-- Rating badge -->
|
||
<div class="ds-hero__rating-badge">
|
||
<span class="ds-hero__rating-stars" aria-hidden="true">★★★★★</span>
|
||
<span class="ds-hero__rating-text">4.9 из 5 на основе <?php echo esc_html( $ext_review_count ); ?> отзывов на внешних площадках</span>
|
||
</div>
|
||
|
||
<!-- CTA -->
|
||
<button class="ds-hero__cta-btn open-bitrix-form">Записаться на бесплатное пробное</button>
|
||
|
||
<!-- Phone -->
|
||
<?php if ( $opt_phone ) : ?>
|
||
<p class="ds-hero__phone">Или позвоните: <a href="tel:<?php echo esc_attr( $hero_phone_clean ); ?>" aria-label="Позвонить в школу Декарт: <?php echo esc_attr( $opt_phone ); ?>"><?php echo esc_html( $opt_phone ); ?></a></p>
|
||
<?php endif; ?>
|
||
|
||
</div>
|
||
|
||
<!-- Right: Visual -->
|
||
<div class="ds-hero__visual">
|
||
<div class="ds-hero__visual-glow" aria-hidden="true"></div>
|
||
|
||
<div class="ds-hero__photo-wrap">
|
||
<div class="ds-hero__photo-frame">
|
||
<?php if ( $banner_img_id ) : ?>
|
||
<?php echo wp_get_attachment_image( $banner_img_id, 'full', false, array(
|
||
'class' => 'ds-hero__photo',
|
||
'loading' => 'eager',
|
||
'decoding' => 'async',
|
||
'alt' => 'Подготовка к школе в Щёлково — занятия для детей 5–7 лет',
|
||
) ); ?>
|
||
<?php else : ?>
|
||
<img class="ds-hero__photo" loading="eager" decoding="async"
|
||
src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/girl_and_a_boy.webp' ); ?>"
|
||
alt="Подготовка к школе в Щёлково — занятия для детей 5–7 лет"
|
||
width="689" height="689">
|
||
<?php endif; ?>
|
||
</div>
|
||
<div class="ds-hero__photo-ring" aria-hidden="true"></div>
|
||
</div>
|
||
|
||
<!-- Floating badges -->
|
||
<div class="ds-hero__float ds-hero__float--1">
|
||
<span class="ds-hero__float-icon">👩🏫</span>
|
||
<span>Педагоги с опытом 15+ лет</span>
|
||
</div>
|
||
<div class="ds-hero__float ds-hero__float--2">
|
||
<span class="ds-hero__float-icon">🎮</span>
|
||
<span>Игровая методика</span>
|
||
</div>
|
||
<div class="ds-hero__float ds-hero__float--3">
|
||
<span class="ds-hero__float-icon">📚</span>
|
||
<span>Авторская программа</span>
|
||
</div>
|
||
<div class="ds-hero__float ds-hero__float--4">
|
||
<span class="ds-hero__float-icon">🌟</span>
|
||
<span>Рейтинг 4.8</span>
|
||
</div>
|
||
|
||
<!-- Decorative shapes -->
|
||
<div class="ds-hero__deco ds-hero__deco--1" aria-hidden="true"></div>
|
||
<div class="ds-hero__deco ds-hero__deco--2" aria-hidden="true"></div>
|
||
<div class="ds-hero__deco ds-hero__deco--3" aria-hidden="true"></div>
|
||
<div class="ds-hero__deco ds-hero__deco--4" aria-hidden="true"></div>
|
||
|
||
<!-- Sparkle particles (обёртка для nth-child) -->
|
||
<div class="ds-hero__sparkles" aria-hidden="true">
|
||
<div class="ds-hero__sparkle"></div>
|
||
<div class="ds-hero__sparkle"></div>
|
||
<div class="ds-hero__sparkle"></div>
|
||
<div class="ds-hero__sparkle"></div>
|
||
<div class="ds-hero__sparkle"></div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Social Proof — Confidence counters (4 cards) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<?php
|
||
$social_counters = carbon_get_post_meta( $post_id, 'pksh_social_counters' );
|
||
$social_icons = array( '🎓', '📅', '⭐', '👩🏫' );
|
||
?>
|
||
<section class="bento pksh-section" aria-label="Социальное доказательство">
|
||
<div class="bento__full">
|
||
<div class="social-counters">
|
||
<?php if ( ! empty( $social_counters ) ) : ?>
|
||
<?php foreach ( $social_counters as $i => $counter ) :
|
||
$icon = isset( $social_icons[ $i ] ) ? $social_icons[ $i ] : '✅';
|
||
$number = $counter['counter_number'] ?? '';
|
||
$label = $counter['counter_label'] ?? '';
|
||
if ( empty( $number ) ) continue;
|
||
?>
|
||
<div class="social-counter">
|
||
<div class="social-counter__top"></div>
|
||
<div class="social-counter__body">
|
||
<span class="social-counter__icon"><?php echo esc_html( $icon ); ?></span>
|
||
<div class="social-counter__number"><?php echo esc_html( $number ); ?></div>
|
||
<div class="social-counter__label"><?php echo esc_html( $label ); ?></div>
|
||
</div>
|
||
</div>
|
||
<?php endforeach; ?>
|
||
<?php else : ?>
|
||
<!-- Fallback, если поля не заполнены -->
|
||
<div class="social-counter">
|
||
<div class="social-counter__top"></div>
|
||
<div class="social-counter__body">
|
||
<span class="social-counter__icon">🎓</span>
|
||
<div class="social-counter__number">500+</div>
|
||
<div class="social-counter__label">выпускников в топ-школах</div>
|
||
</div>
|
||
</div>
|
||
<div class="social-counter">
|
||
<div class="social-counter__top"></div>
|
||
<div class="social-counter__body">
|
||
<span class="social-counter__icon">📅</span>
|
||
<div class="social-counter__number">12</div>
|
||
<div class="social-counter__label">лет готовим к школе</div>
|
||
</div>
|
||
</div>
|
||
<div class="social-counter">
|
||
<div class="social-counter__top"></div>
|
||
<div class="social-counter__body">
|
||
<span class="social-counter__icon">⭐</span>
|
||
<div class="social-counter__number">4.8</div>
|
||
<div class="social-counter__label">средняя оценка родителей</div>
|
||
</div>
|
||
</div>
|
||
<div class="social-counter">
|
||
<div class="social-counter__top"></div>
|
||
<div class="social-counter__body">
|
||
<span class="social-counter__icon">👩🏫</span>
|
||
<div class="social-counter__number">20+</div>
|
||
<div class="social-counter__label">опытных педагогов</div>
|
||
</div>
|
||
</div>
|
||
<?php endif; ?>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Micro-Commitment: Checklist download -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section" aria-label="Скачать чек-лист">
|
||
<div class="bento__full">
|
||
<div class="micro-commit">
|
||
<div class="micro-commit__content">
|
||
<span class="bento-label">Бесплатно</span>
|
||
<h2 class="bento-h2">Скачайте чек-лист готовности к школе</h2>
|
||
<p class="bento-p">10 признаков, что ваш ребёнок готов к 1-му классу. Проверьте за 5 минут — и узнайте, на какие навыки обратить внимание.</p>
|
||
<div class="micro-commit__action">
|
||
<button class="btn-primary btn-write micro-commit__btn">Получить чек-лист бесплатно</button>
|
||
</div>
|
||
</div>
|
||
<div class="micro-commit__visual">
|
||
<svg class="micro-commit__svg" viewBox="0 0 130 170" fill="none" aria-hidden="true">
|
||
<!-- Paper background -->
|
||
<rect x="8" y="4" width="114" height="162" rx="8" fill="white" stroke="#DED3C0" stroke-width="1.2"/>
|
||
<!-- Header line -->
|
||
<rect x="24" y="20" width="82" height="4" rx="2" fill="#7C3AED" opacity="0.15"/>
|
||
<!-- Checklist items -->
|
||
<rect x="24" y="38" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||
<path d="M26 44l3 3 5-5" stroke="#7C3AED" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.4"/>
|
||
<rect x="44" y="40" width="50" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||
|
||
<rect x="24" y="62" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||
<path d="M26 68l3 3 5-5" stroke="#7C3AED" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.4"/>
|
||
<rect x="44" y="64" width="62" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||
|
||
<rect x="24" y="86" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||
<rect x="44" y="88" width="42" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||
|
||
<rect x="24" y="110" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||
<rect x="44" y="112" width="56" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||
|
||
<!-- Pencil illustration -->
|
||
<g transform="translate(92, 130) rotate(-30)">
|
||
<rect x="0" y="0" width="6" height="28" rx="1" fill="#7C3AED" opacity="0.12"/>
|
||
<polygon points="0,0 6,0 3,-6" fill="#7C3AED" opacity="0.15"/>
|
||
</g>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Guarantee Hero + Navigation -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" aria-label="Гарантия">
|
||
<div class="bento__full">
|
||
<div class="guarantee-hero">
|
||
<div class="guarantee-hero__badges">
|
||
<div class="guarantee-hero__shield">🛡️</div>
|
||
</div>
|
||
<div class="guarantee-hero__content">
|
||
<h2 class="bento-h2">Ваш ребёнок начнёт читать через 3 недели</h2>
|
||
<p class="guarantee-hero__text">Или <strong>мы вернём деньги</strong> и продолжим обучение бесплатно, пока не дойдём до результата. Мы — частная школа <strong>с гослицензией</strong>, а не кружок. Отвечаем за результат.</p>
|
||
</div>
|
||
<nav class="pksh-anchor-nav" aria-label="Навигация по странице">
|
||
<a href="#how-it-works" class="pksh-anchor-link">Как проходят занятия</a>
|
||
<a href="#results" class="pksh-anchor-link">Результаты</a>
|
||
<a href="#programs" class="pksh-anchor-link">Программы</a>
|
||
<a href="#teachers" class="pksh-anchor-link">Преподаватели</a>
|
||
<a href="#faq" class="pksh-anchor-link">Вопросы</a>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 1: How it works + Why us -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section" id="how-it-works" aria-label="Как проходят занятия">
|
||
<div class="bento__half bento-card bento-card--soft">
|
||
<span class="bento-label">Как проходит занятие</span>
|
||
<h2 class="bento-h2">30 минут игры = 1 шаг к школе</h2>
|
||
<p class="bento-p">Никаких скучных прописей. Каждое занятие построено так, что ребёнок <strong>сам хочет</strong> вернуться.</p>
|
||
<div class="steps-3">
|
||
<div class="step">
|
||
<div class="step__icon">
|
||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||
</div>
|
||
<div>
|
||
<strong>Вход в тему</strong>
|
||
<span>Короткая история или загадка — включаем интерес</span>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step__icon">
|
||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||
</div>
|
||
<div>
|
||
<strong>Игровое задание</strong>
|
||
<span>Чтение, счёт, логика — через механику игры</span>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step__icon">
|
||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||
</div>
|
||
<div>
|
||
<strong>Рефлексия</strong>
|
||
<span>Ребёнок сам рассказывает, чему научился</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bento__half bento-card bento-card--objections">
|
||
<span class="bento-label">Почему родители выбирают нас</span>
|
||
<h2 class="bento-h2">Три главных вопроса — честные ответы</h2>
|
||
<p class="bento-p">Мы не обещаем чуда — мы даём системную подготовку к школе, которую <strong>видят учителя</strong> в первую же неделю.</p>
|
||
<div class="objection-list">
|
||
<div class="objection-item">
|
||
<div class="objection-item__icon">
|
||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||
</div>
|
||
<div>
|
||
<strong>Не перегрузят ли ребёнка?</strong>
|
||
<p>Занятия по 30–40 минут. Каждые 7 минут — смена активности. Ребёнок не устаёт.</p>
|
||
</div>
|
||
</div>
|
||
<div class="objection-item">
|
||
<div class="objection-item__icon">
|
||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||
</div>
|
||
<div>
|
||
<strong>Успеем ли до сентября?</strong>
|
||
<p>Да. Наша программа рассчитана на 4–6 месяцев. Первые результаты — через 3 недели.</p>
|
||
</div>
|
||
</div>
|
||
<div class="objection-item">
|
||
<div class="objection-item__icon">
|
||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||
</div>
|
||
<div>
|
||
<strong>Дорого?</strong>
|
||
<p>От 600 ₽ за занятие. Первое — бесплатно. А если не понравится — вернём деньги.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- CTA: Бесплатное тестирование + занятие -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" aria-label="Запись на тестирование">
|
||
<div class="bento__full">
|
||
<div class="cta-test">
|
||
<div class="cta-test__badge">Бесплатно</div>
|
||
<h2 class="bento-h2 cta-test__title">Приходите на пробное — увидите результат своими глазами</h2>
|
||
<p class="cta-test__text">Запишитесь на <strong>бесплатное расширенное тестирование</strong> и полноценное занятие. Педагог проверит готовность ребёнка к школе, покажет сильные стороны и даст план подготовки. <strong>Всего за 1 визит</strong> — без очередей и ожидания.</p>
|
||
<button class="btn-primary btn-primary--large open-bitrix-form cta-test__btn">Записаться на бесплатное тестирование</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 2: Results / Data -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" id="results" aria-label="Результаты учеников">
|
||
<div class="bento__full bento-card bento-card--highlight-results">
|
||
<span class="bento-label bento-label--light">Результаты наших учеников</span>
|
||
<h2 class="bento-h2 bento-h2--light">К чему мы приводим детей</h2>
|
||
<div class="results-grid">
|
||
<div class="result-item">
|
||
<span class="result-item__value">95%</span>
|
||
<span class="result-item__desc">поступают в школы и лицеи Щёлкова без стресса</span>
|
||
</div>
|
||
<div class="result-item">
|
||
<span class="result-item__value">3 нед.</span>
|
||
<span class="result-item__desc">— первый осмысленный слог у нечитавших детей</span>
|
||
</div>
|
||
<div class="result-item">
|
||
<span class="result-item__value">87%</span>
|
||
<span class="result-item__desc">родителей отмечают рост самостоятельности</span>
|
||
</div>
|
||
<div class="result-item">
|
||
<span class="result-item__value">2,5×</span>
|
||
<span class="result-item__desc">быстрее адаптируются в первом классе</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 3: Programs / Курсы -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section" id="programs" aria-label="Программы подготовки">
|
||
<div class="bento__full">
|
||
<span class="bento-label">Программы</span>
|
||
<h2 class="bento-h2">Выберите формат подготовки</h2>
|
||
<p class="bento-p">Все программы ведут действующие педагоги начальных классов.
|
||
Группы до 8 человек — каждому ребёнку уделяем внимание.</p>
|
||
|
||
<div class="programs-grid">
|
||
<?php
|
||
$pksh_programs = carbon_get_post_meta($post_id, 'pksh_programs');
|
||
if (is_array($pksh_programs) && !empty($pksh_programs)) :
|
||
foreach ($pksh_programs as $program) :
|
||
$icon = $program['program_icon'] ?? '🎓';
|
||
$title = $program['program_title'] ?? '';
|
||
$intensity = $program['program_intensity'] ?? '';
|
||
$schedule_raw = $program['program_schedule'] ?? '';
|
||
$duration = $program['program_duration'] ?? '90 мин';
|
||
$structure_raw = $program['program_lesson_structure'] ?? '';
|
||
$includes_raw = $program['program_includes'] ?? '';
|
||
$price_sub = $program['program_price_subscription'] ?? '';
|
||
$price_single = $program['program_price_single'] ?? '';
|
||
$btn_text = $program['program_button_text'] ?? 'Записаться';
|
||
$btn_url = $program['program_button_url'] ?? '/zapis/';
|
||
|
||
$schedule_lines = array_filter(explode("\n", $schedule_raw));
|
||
$structure_lines = array_filter(explode("\n", $structure_raw));
|
||
$includes_lines = array_filter(explode("\n", $includes_raw));
|
||
?>
|
||
<div class="program-card">
|
||
<div class="program-card__header">
|
||
<span class="program-card__icon"><?php echo esc_html($icon); ?></span>
|
||
<h3 class="program-card__title"><?php echo esc_html($title); ?></h3>
|
||
</div>
|
||
|
||
<div class="program-card__body">
|
||
|
||
<?php if ($intensity) : ?>
|
||
<div class="program-card__intensity">
|
||
<span class="program-card__label">Интенсивность:</span>
|
||
<?php echo esc_html($intensity); ?>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<?php if (!empty($schedule_lines)) : ?>
|
||
<div class="program-card__schedule">
|
||
<span class="program-card__label">📅 Расписание:</span>
|
||
<ul>
|
||
<?php foreach ($schedule_lines as $line) : ?>
|
||
<li><?php echo esc_html(trim($line)); ?></li>
|
||
<?php endforeach; ?>
|
||
</ul>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<?php if (!empty($structure_lines) || $duration) : ?>
|
||
<div class="program-card__structure">
|
||
<span class="program-card__label">⏱ Структура занятия (<?php echo esc_html($duration); ?>):</span>
|
||
<ul class="program-card__timeline">
|
||
<?php foreach ($structure_lines as $line) : ?>
|
||
<?php
|
||
$line = trim($line);
|
||
// Parse "15 мин 🧠 Нейрогимнастика" into time and name
|
||
$parts = explode(' ', $line, 2);
|
||
$time_part = $parts[0] ?? '';
|
||
$name_part = $parts[1] ?? $line;
|
||
?>
|
||
<li class="program-card__timeline-item">
|
||
<span class="program-card__timeline-badge"><?php echo esc_html($time_part); ?></span>
|
||
<span class="program-card__timeline-name"><?php echo esc_html($name_part); ?></span>
|
||
</li>
|
||
<?php endforeach; ?>
|
||
</ul>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<?php if (!empty($includes_lines)) : ?>
|
||
<div class="program-card__includes">
|
||
<span class="program-card__label">Программа включает:</span>
|
||
<ul>
|
||
<?php foreach ($includes_lines as $line) : ?>
|
||
<li><?php echo esc_html(trim($line)); ?></li>
|
||
<?php endforeach; ?>
|
||
</ul>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<?php if ($price_sub || $price_single) : ?>
|
||
<div class="program-card__pricing">
|
||
<?php if ($price_sub) : ?>
|
||
<div class="program-card__price-main">
|
||
<span class="program-card__price-value"><?php echo esc_html($price_sub); ?></span>
|
||
<span class="program-card__price-period">за 4 недели</span>
|
||
</div>
|
||
<?php endif; ?>
|
||
<?php if ($price_single) : ?>
|
||
<div class="program-card__price-single">
|
||
<?php echo esc_html($price_single); ?> за одно занятие (вне абонемента)
|
||
</div>
|
||
<?php endif; ?>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<a href="<?php echo esc_url($btn_url); ?>" class="program-card__btn">
|
||
<?php echo esc_html($btn_text); ?>
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
<?php
|
||
endforeach;
|
||
else :
|
||
// Fallback, если программы не заполнены в админке
|
||
?>
|
||
<div class="program-card">
|
||
<div class="program-card__header">
|
||
<span class="program-card__icon">📖</span>
|
||
<h3 class="program-card__title">Базовая программа</h3>
|
||
</div>
|
||
<div class="program-card__body">
|
||
<p style="color: #94a3b8; font-style: italic;">Заполните программы в админке → Настройки Подготовки к школе → Программы</p>
|
||
</div>
|
||
</div>
|
||
<?php endif; ?>
|
||
</div>
|
||
|
||
<div class="programs-note">
|
||
<p>Первое пробное занятие — <strong>бесплатно</strong>. При покупке абонемента на месяц — скидка 10%.
|
||
<a href="#final-cta" class="programs-note__link">Записаться на бесплатное пробное</a></p>
|
||
</div>
|
||
<div class="pksh-fomo">
|
||
<span class="pksh-fomo__dot"></span>
|
||
<span class="pksh-fomo__text">🔥 4 из 8 мест в группе 5–6 лет <strong>уже заняты</strong>. Успейте записаться!</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 4: Schedule & Price -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<?php get_template_part('template-parts/block-price'); ?>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 4: Teachers (camp-style cards) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--teachers" id="teachers" aria-label="Преподаватели">
|
||
<div class="bento__full">
|
||
<h2 class="bento-h2">Наши преподаватели</h2>
|
||
<div class="pksh-teachers__scroll-x">
|
||
<div class="pksh-teachers__wrapper">
|
||
<?php
|
||
$pksh_teachers = carbon_get_post_meta(get_the_ID(), 'pksh_teachers');
|
||
if (is_array($pksh_teachers) && !empty($pksh_teachers)) :
|
||
foreach ($pksh_teachers as $item) :
|
||
$t_name = $item['teacher_name'] ?? '';
|
||
$t_photo = $item['teacher_photo'] ?? 0;
|
||
$t_subj = $item['teacher_subject'] ?? '';
|
||
$t_about = $item['teacher_about'] ?? '';
|
||
?>
|
||
<div class="pksh-teachers__item">
|
||
<div class="pksh-teachers__card">
|
||
<div class="pksh-teachers__card-top">
|
||
<?php if ($t_photo) : ?>
|
||
<img class="pksh-teachers__photo" loading="lazy" width="130" height="130"
|
||
src="<?php echo esc_url(wp_get_attachment_url($t_photo)); ?>"
|
||
alt="<?php echo esc_attr($t_name); ?>">
|
||
<?php else : ?>
|
||
<img class="pksh-teachers__photo" loading="lazy" width="130" height="130"
|
||
src="<?php echo get_template_directory_uri(); ?>/assets/images/no-photo.png"
|
||
alt="<?php echo esc_attr($t_name); ?>">
|
||
<?php endif; ?>
|
||
</div>
|
||
<div class="pksh-teachers__card-body">
|
||
<h3 class="pksh-teachers__name"><?php echo esc_html($t_name); ?></h3>
|
||
<?php if ($t_subj) : ?>
|
||
<p class="pksh-teachers__subj"><?php echo esc_html($t_subj); ?></p>
|
||
<?php endif; ?>
|
||
<?php if ($t_about) : ?>
|
||
<p class="pksh-teachers__about"><?php echo esc_html($t_about); ?></p>
|
||
<?php endif; ?>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<?php
|
||
endforeach;
|
||
endif;
|
||
?>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 5: Guarantee (standalone) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" id="guarantee" aria-label="Гарантия">
|
||
<div class="bento__full">
|
||
<div class="guarantee-block guarantee-block--centered">
|
||
<h2 class="bento-h2">🛡️ Гарантия результата</h2>
|
||
<p class="guarantee-block__text">
|
||
Если через 3 месяца ваш ребёнок не начнёт читать —
|
||
мы вернём деньги <strong>и продолжим обучение бесплатно</strong>,
|
||
пока не дойдём до результата.
|
||
</p>
|
||
<span class="guarantee-block__badge">Так работают только те, кто уверен в своём методе</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Bento Row 6: FAQ (как на странице лагеря) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" id="faq" aria-label="Вопросы и ответы">
|
||
<div class="bento__full pksh-faq">
|
||
<h2 class="bento-h2">Часто задаваемые вопросы</h2>
|
||
<?php
|
||
$faq_items = carbon_get_post_meta($post_id, 'pksh_faq_items');
|
||
if (!empty($faq_items) && is_array($faq_items)) :
|
||
$col1 = '';
|
||
$col2 = '';
|
||
$count = 0;
|
||
foreach ($faq_items as $item) :
|
||
$q = $item['faq_question'] ?? '';
|
||
$a = $item['faq_answer'] ?? '';
|
||
if (empty($q) && empty($a)) continue;
|
||
$accordion = '<div class="box__accordion">'
|
||
. '<div class="box__accordion_label" role="button" tabindex="0">'
|
||
. '<span>' . esc_html($q) . '</span>'
|
||
. '<svg role="presentation" focusable="false" width="24px" height="24px" viewBox="0 0 24 24">'
|
||
. '<g stroke="none" stroke-width="2px" fill="none" fill-rule="evenodd" stroke-linecap="square">'
|
||
. '<g transform="translate(1.000000, 1.000000)" stroke="currentColor">'
|
||
. '<path d="M0,11 L22,11"></path>'
|
||
. '<path d="M11,0 L11,22"></path>'
|
||
. '</g></g></svg></div>'
|
||
. '<div class="box__accordion_content">'
|
||
. '<div class="box__accordion_content-text">' . wp_kses_post($a) . '</div>'
|
||
. '</div></div>';
|
||
if ($count % 2 === 0) {
|
||
$col1 .= $accordion;
|
||
} else {
|
||
$col2 .= $accordion;
|
||
}
|
||
$count++;
|
||
endforeach;
|
||
if (!empty($col1) || !empty($col2)) :
|
||
?>
|
||
<div class="pksh-faq__wrapper">
|
||
<div class="pksh-faq__col"><?php echo $col1; ?></div>
|
||
<div class="pksh-faq__col"><?php echo $col2; ?></div>
|
||
</div>
|
||
<?php endif; endif; ?>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Reviews (lw-card inline, camp-style) -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="pksh-reviews reviews-cards" id="pksh-reviews" aria-label="Отзывы">
|
||
<h2 class="bento-h2">Что говорят родители</h2>
|
||
|
||
<?php
|
||
$review_items = carbon_get_post_meta($post_id, 'pksh_reviews_list');
|
||
$total_count = is_array($review_items) ? count($review_items) : 0;
|
||
if ($total_count > 0) :
|
||
$items = array_values($review_items);
|
||
$card_idx = 0;
|
||
?>
|
||
<div class="reviews-cards">
|
||
<div class="lw-scroll-x">
|
||
<div class="lw-grid lw-grid--3">
|
||
<?php foreach ($items as $item) :
|
||
$card_idx++;
|
||
$author = $item['review_author'] ?? '';
|
||
$text = $item['review_text'] ?? '';
|
||
$raw_rating = $item['review_rating'] ?? '';
|
||
$avatar_id = !empty($item['review_avatar']) ? (int)$item['review_avatar'] : 0;
|
||
$teacher = $item['review_teacher'] ?? array();
|
||
$date = $item['review_date'] ?? '';
|
||
$stars = max(1, min(5, (int)$raw_rating));
|
||
$name = $author ?: 'Анонимно';
|
||
$is_long = strlen( wp_strip_all_tags( $text ) ) > 350;
|
||
$batch = (int) ceil( $card_idx / 12 );
|
||
if (empty($text)) continue;
|
||
?>
|
||
<article class="lw-card reveal" data-batch="<?php echo (int) $batch; ?>">
|
||
<div class="lw-flex lw-flex--row lw-gap-12 lw-items-start">
|
||
<div class="lw-avatar lw-avatar--48">
|
||
<?php if ($avatar_id && wp_attachment_is_image($avatar_id)) : ?>
|
||
<?php echo wp_get_attachment_image($avatar_id, [48, 48], false, ['class' => 'lw-avatar__img', 'loading' => 'lazy', 'alt' => esc_attr($name)]); ?>
|
||
<?php else : ?>
|
||
<div class="lw-avatar lw-avatar--48 lw-avatar--letter">
|
||
<span class="lw-avatar__letter"><?php echo esc_html( $name ? mb_strtoupper( mb_substr( $name, 0, 1 ) ) : '?' ); ?></span>
|
||
</div>
|
||
<?php endif; ?>
|
||
</div>
|
||
<div class="lw-flex lw-flex--col" style="flex:1; min-width:0;">
|
||
<div class="lw-text-dark lw-font-semibold"><?php echo esc_html($name); ?></div>
|
||
<?php if ( ! empty( $teacher[0]['id'] ) ) : ?>
|
||
<div class="lw-text-xs lw-text-gray">
|
||
Преподаватель: <a href="<?php echo esc_url( get_permalink( $teacher[0]['id'] ) ); ?>" class="review-card__teacher-link"><?php echo esc_html( get_the_title( $teacher[0]['id'] ) ); ?></a>
|
||
</div>
|
||
<?php endif; ?>
|
||
<div class="lw-badge lw-badge--verified">✓ Проверенный отзыв</div>
|
||
</div>
|
||
</div>
|
||
<div class="lw-stars lw-mt-8">
|
||
<?php for ($i = 1; $i <= 5; $i++) : ?>
|
||
<svg class="lw-star <?php echo $i <= $stars ? 'lw-star--filled' : ''; ?>" width="16" height="16" viewBox="0 0 21 19" fill="none">
|
||
<path d="M9.58463 1.50884C9.89101 0.602477 11.1729 0.602476 11.4793 1.50884L13.1158 6.35007C13.2531 6.75637 13.6343 7.02985 14.0631 7.02985H19.2721C20.2504 7.02985 20.6467 8.28958 19.8447 8.84971L15.6995 11.7446C15.335 11.9991 15.1822 12.4636 15.3247 12.8847L16.9239 17.6158C17.233 18.5302 16.1954 19.3085 15.404 18.7559L11.1045 15.7533C10.7606 15.5131 10.3033 15.5131 9.95941 15.7533L5.65991 18.7559C4.86857 19.3085 3.83092 18.5302 4.14001 17.6158L5.73926 12.8847C5.8816 12.4636 5.72891 11.9991 5.36448 11.7446L1.21924 8.84971C0.417196 8.28958 0.813532 7.02985 1.79181 7.02985H7.00081C7.42969 7.02985 7.81081 6.75637 7.94815 6.35007L9.58463 1.50884Z" fill="currentColor"/>
|
||
</svg>
|
||
<?php endfor; ?>
|
||
</div>
|
||
<div class="lw-card__text lw-mt-8<?php echo $is_long ? ' review-card__text--clamped' : ''; ?>">
|
||
<?php echo wp_kses_post($text); ?>
|
||
</div>
|
||
<div class="review-card__footer">
|
||
<?php if ( $is_long ) : ?>
|
||
<button class="review-card__btn-more" aria-label="Читать ещё">Читать ещё</button>
|
||
<?php endif; ?>
|
||
<?php if ( ! empty( $date ) ) : ?>
|
||
<span class="review-card__date"><?php echo esc_html( $date ); ?></span>
|
||
<?php endif; ?>
|
||
</div>
|
||
</article>
|
||
<?php endforeach; ?>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<?php if ( $total_count > 12 ) : ?>
|
||
<div class="reviews-loadmore" id="reviews-loadmore">
|
||
<button type="button" class="reviews-loadmore__btn">Показать ещё</button>
|
||
</div>
|
||
<?php endif; ?>
|
||
<?php endif; ?>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section" aria-label="Почему нам доверяют">
|
||
<div class="bento__full">
|
||
<div class="trust-authority">
|
||
<h2 class="bento-h2">Почему родители доверяют нам</h2>
|
||
<div class="trust-authority__grid">
|
||
<div class="trust-authority__item">
|
||
<span class="trust-authority__icon">📜</span>
|
||
<strong class="trust-authority__title">Государственная лицензия</strong>
|
||
<p class="trust-authority__text">Имеем право на образовательную деятельность. Вы можете вернуть 13% через налоговый вычет.</p>
|
||
</div>
|
||
<div class="trust-authority__item">
|
||
<span class="trust-authority__icon">🏆</span>
|
||
<strong class="trust-authority__title">12 лет на рынке</strong>
|
||
<p class="trust-authority__text">С 2014 года готовим детей к школе. Более 500 выпускников успешно учатся в лицеях и гимназиях Щёлкова.</p>
|
||
</div>
|
||
<div class="trust-authority__item">
|
||
<span class="trust-authority__icon">🛡️</span>
|
||
<strong class="trust-authority__title">Гарантия результата</strong>
|
||
<p class="trust-authority__text">Если через 3 месяца ребёнок не начнёт читать — вернём деньги и продолжим обучение бесплатно.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- External Reviews — Social Proof -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" aria-label="Отзывы на внешних площадках">
|
||
<div class="bento__full">
|
||
<div class="external-reviews">
|
||
<h2 class="bento-h2">Нас рекомендуют на площадках</h2>
|
||
<div class="external-reviews__grid">
|
||
<a href="https://yandex.ru/maps/org/detskiy_tsentr_dekart/..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
|
||
<span class="external-reviews__icon">Я</span>
|
||
<span class="external-reviews__name">Яндекс.Карты</span>
|
||
<span class="external-reviews__rating">⭐ 4.8</span>
|
||
</a>
|
||
<a href="https://2gis.ru/search/..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
|
||
<span class="external-reviews__icon">2ГИС</span>
|
||
<span class="external-reviews__name">2ГИС</span>
|
||
<span class="external-reviews__rating">⭐ 4.7</span>
|
||
</a>
|
||
<a href="https://vk.com/topic-..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
|
||
<span class="external-reviews__icon">ВК</span>
|
||
<span class="external-reviews__name">ВКонтакте</span>
|
||
<span class="external-reviews__rating">⭐ 4.9</span>
|
||
</a>
|
||
<a href="https://otzovik.com/..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
|
||
<span class="external-reviews__icon">O</span>
|
||
<span class="external-reviews__name">Otzovik</span>
|
||
<span class="external-reviews__rating">⭐ 4.6</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Final CTA — Low Friction + Countdown Timer -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section pksh-section--alt" id="final-cta" aria-label="Запись">
|
||
<div class="bento__full">
|
||
<div class="final-cta">
|
||
<h2 class="bento-h2">Первое занятие — бесплатно</h2>
|
||
<p class="final-cta__text">Ребёнок познакомится с педагогом, попробует задания. Вы увидите методику своими глазами. Никакой оплаты и договоров.</p>
|
||
|
||
<!-- Countdown timer -->
|
||
<div class="final-cta__timer" id="cta-timer">
|
||
<span class="final-cta__timer-label">Скидка 10% действует ещё:</span>
|
||
<div class="final-cta__timer-digits">
|
||
<div class="final-cta__timer-unit">
|
||
<span class="final-cta__timer-num" id="timer-hours">24</span>
|
||
<span class="final-cta__timer-text">часов</span>
|
||
</div>
|
||
<span class="final-cta__timer-sep">:</span>
|
||
<div class="final-cta__timer-unit">
|
||
<span class="final-cta__timer-num" id="timer-minutes">00</span>
|
||
<span class="final-cta__timer-text">минут</span>
|
||
</div>
|
||
<span class="final-cta__timer-sep">:</span>
|
||
<div class="final-cta__timer-unit">
|
||
<span class="final-cta__timer-num" id="timer-seconds">00</span>
|
||
<span class="final-cta__timer-text">секунд</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<button class="btn-primary btn-primary--large open-bitrix-form btn-write">Записаться на бесплатное пробное</button>
|
||
<p class="final-cta__footnote">🔥 Осталось 2 места в группе 5–6 лет. Успейте!</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<script>
|
||
(function() {
|
||
var hours = 24, minutes = 0, seconds = 0;
|
||
var hEl = document.getElementById('timer-hours');
|
||
var mEl = document.getElementById('timer-minutes');
|
||
var sEl = document.getElementById('timer-seconds');
|
||
if (!hEl || !mEl || !sEl) return;
|
||
function pad(n) { return n < 10 ? '0' + n : '' + n; }
|
||
function tick() {
|
||
if (hours === 0 && minutes === 0 && seconds === 0) return;
|
||
if (seconds === 0) {
|
||
if (minutes === 0) { hours--; minutes = 59; seconds = 59; }
|
||
else { minutes--; seconds = 59; }
|
||
} else { seconds--; }
|
||
hEl.textContent = pad(hours);
|
||
mEl.textContent = pad(minutes);
|
||
sEl.textContent = pad(seconds);
|
||
}
|
||
setInterval(tick, 1000);
|
||
})();
|
||
</script>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Contacts — как на странице лагеря -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<section class="bento pksh-section" id="pksh-contact" aria-label="Контакты">
|
||
<div class="bento__full pksh-contact">
|
||
<h2 class="bento-h2">Наш адрес</h2>
|
||
<div class="pksh-contact__wrapper">
|
||
<div class="pksh-contact__info">
|
||
<?php if (!empty($opt_phone)) : ?>
|
||
<div class="pksh-contact__subtitle">Телефон:</div>
|
||
<a class="pksh-contact__value" href="tel:+<?php echo preg_replace('/[^0-9]/', '', $opt_phone); ?>"><?php echo esc_html($opt_phone); ?></a>
|
||
<?php endif; ?>
|
||
|
||
<?php if (!empty($opt_email)) : ?>
|
||
<div class="pksh-contact__subtitle">Почта:</div>
|
||
<a class="pksh-contact__value" href="mailto:<?php echo esc_attr($opt_email); ?>"><?php echo esc_html($opt_email); ?></a>
|
||
<?php endif; ?>
|
||
|
||
<?php if (!empty($opt_address)) : ?>
|
||
<div class="pksh-contact__subtitle">Адрес:</div>
|
||
<div class="pksh-contact__value"><?php echo esc_html($opt_address); ?></div>
|
||
<?php endif; ?>
|
||
|
||
<?php if (!empty($opt_social_raw) && is_array($opt_social_raw)) : ?>
|
||
<div class="pksh-contact__subtitle">Наши соцсети:</div>
|
||
<div class="pksh-contact__social">
|
||
<?php foreach ($opt_social_raw as $item) :
|
||
$link = $item['url'] ?? '';
|
||
$name = $item['name'] ?? '';
|
||
if ($link) : ?>
|
||
<a class="pksh-contact__social-link" href="<?php echo esc_url($link); ?>" target="_blank" rel="noopener noreferrer" title="<?php echo esc_attr($name); ?>">
|
||
<?php echo esc_html($name ?: $link); ?>
|
||
</a>
|
||
<?php endif; ?>
|
||
<?php endforeach; ?>
|
||
</div>
|
||
<?php endif; ?>
|
||
</div>
|
||
<div class="pksh-contact__map">
|
||
<div id="ya-map" style="width: 100%; height: 100%; min-height: 400px;"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<script>
|
||
(function() {
|
||
var mapCoords = [<?php echo esc_js($opt_coords ?: '55.7558,37.6173'); ?>];
|
||
var mapLabel = '<?php echo esc_js($opt_name); ?>';
|
||
var mapLoaded = false;
|
||
var apiLoading = false;
|
||
|
||
function initMap() {
|
||
ymaps.ready(function() {
|
||
var map = new ymaps.Map('ya-map', {
|
||
center: mapCoords,
|
||
zoom: 16
|
||
}, {
|
||
searchControlProvider: 'yandex#search'
|
||
});
|
||
var placemark = new ymaps.Placemark(
|
||
mapCoords,
|
||
{ iconContent: mapLabel },
|
||
{ preset: 'islands#redStretchyIcon' }
|
||
);
|
||
map.geoObjects.add(placemark);
|
||
mapLoaded = true;
|
||
});
|
||
}
|
||
|
||
function loadYandexMaps() {
|
||
if (mapLoaded || apiLoading) return;
|
||
apiLoading = true;
|
||
var script = document.createElement('script');
|
||
script.src = 'https://api-maps.yandex.ru/2.1/?lang=ru_RU';
|
||
script.onload = initMap;
|
||
document.head.appendChild(script);
|
||
}
|
||
|
||
function onScroll() {
|
||
if ((window.pageYOffset || document.documentElement.scrollTop) > 100) {
|
||
loadYandexMaps();
|
||
window.removeEventListener('scroll', onScroll);
|
||
}
|
||
}
|
||
window.addEventListener('load', function() {
|
||
setTimeout(function() {
|
||
if (!mapLoaded && !apiLoading) loadYandexMaps();
|
||
}, 3000);
|
||
});
|
||
window.addEventListener('scroll', onScroll, { passive: true });
|
||
})();
|
||
</script>
|
||
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<!-- Sticky CTA — Mobile -->
|
||
<!-- ════════════════════════════════════════════ -->
|
||
<div class="sticky-cta-mobile" aria-label="Запись">
|
||
<div class="sticky-cta-mobile__inner">
|
||
<span class="sticky-cta-mobile__text">Первое занятие — <strong>бесплатно</strong></span>
|
||
<button class="sticky-cta-mobile__btn btn-write">Записаться</button>
|
||
</div>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<?php
|
||
get_footer();
|