Global-2026-07-12
This commit is contained in:
parent
6ed9de7c2c
commit
2826a8591d
@ -11110,8 +11110,9 @@ main > .pksh-section:first-child {
|
||||
background: var(--accent-light, #F5F3FF);
|
||||
}
|
||||
|
||||
.faq-section .container {
|
||||
/* центрирование через стандартный .container */
|
||||
.faq-section .container,
|
||||
.faq-section .bento {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.faq-section__title {
|
||||
@ -11121,11 +11122,13 @@ main > .pksh-section:first-child {
|
||||
font-weight: 700;
|
||||
line-height: 1.25;
|
||||
color: var(--navy, #0F172A);
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
.faq-section__wrapper {
|
||||
display: flex;
|
||||
gap: 30px;
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
.faq-section__col {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1465,7 +1465,6 @@ function needs_swiper(): bool {
|
||||
'page-school.php',
|
||||
'page-contacts.php',
|
||||
'page-teachers.php',
|
||||
'page-podgotovka-k-shkole.php',
|
||||
'page-camp.php',
|
||||
];
|
||||
foreach ( $swiper_templates as $tmpl ) {
|
||||
@ -1605,15 +1604,40 @@ function dekart_security_headers(): void {
|
||||
header( 'X-Frame-Options: SAMEORIGIN' );
|
||||
header( 'Referrer-Policy: strict-origin-when-cross-origin' );
|
||||
// Content-Security-Policy — базовый, без блокировки легаси-скриптов
|
||||
header( "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn-ru.bitrix24.ru https://alee.bitrix24.ru https://api-maps.yandex.ru https://cdn.jsdelivr.net https://www.google.com https://www.gstatic.com https://www.googletagmanager.com https://mc.yandex.ru; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdn.jsdelivr.net https://alee.bitrix24.ru; img-src 'self' data: https: blob:; font-src 'self' data: https://fonts.gstatic.com; frame-src 'self' https://cdn-ru.bitrix24.ru https://alee.bitrix24.ru https://www.google.com; connect-src 'self' https://api-maps.yandex.ru https://cdn-ru.bitrix24.ru https://alee.bitrix24.ru https://mc.yandex.ru; object-src 'none'; base-uri 'self'; form-action 'self' https://alee.bitrix24.ru;" );
|
||||
header( "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn-ru.bitrix24.ru https://alee.bitrix24.ru https://api-maps.yandex.ru https://yastatic.net https://cdn.jsdelivr.net https://www.google.com https://www.gstatic.com https://www.googletagmanager.com https://mc.yandex.ru; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdn.jsdelivr.net https://alee.bitrix24.ru; img-src 'self' data: https: blob:; font-src 'self' data: https://fonts.gstatic.com; frame-src 'self' https://cdn-ru.bitrix24.ru https://alee.bitrix24.ru https://www.google.com; connect-src 'self' https://api-maps.yandex.ru https://yastatic.net https://cdn-ru.bitrix24.ru https://alee.bitrix24.ru https://mc.yandex.ru wss://mc.yandex.ru; object-src 'none'; base-uri 'self'; form-action 'self' https://alee.bitrix24.ru;" );
|
||||
}
|
||||
}
|
||||
|
||||
function dekart_add_preload_hints() {
|
||||
// резерв для preload hints
|
||||
}
|
||||
add_action('wp_head', 'dekart_add_preload_hints', 1);// Тестовая строка для проверки деплоя 2026-05-06
|
||||
// Updated via WordPress admin 2026-05-07
|
||||
add_action('wp_head', 'dekart_add_preload_hints', 1);
|
||||
|
||||
/* ── Honest timer: end-of-month deadline ── */
|
||||
/**
|
||||
* Return end-of-current-month as ISO 8601 string.
|
||||
* Stored in wp_option 'dekart_honest_deadline' so same value
|
||||
* is used by PHP (template) and exposed to JS.
|
||||
*/
|
||||
function dekart_get_honest_deadline(): string {
|
||||
$cached = get_option( 'dekart_honest_deadline', '' );
|
||||
if ( $cached && (int) $cached > time() ) {
|
||||
return $cached;
|
||||
}
|
||||
return dekart_recalc_honest_deadline();
|
||||
}
|
||||
|
||||
function dekart_recalc_honest_deadline(): string {
|
||||
$end = new DateTime( 'last day of this month 23:59:59' );
|
||||
$ts = (int) $end->format( 'U' ); // Unix timestamp — безопасен для JSON/JS
|
||||
update_option( 'dekart_honest_deadline', $ts, false );
|
||||
return (string) $ts;
|
||||
}
|
||||
|
||||
add_action( 'dekart_daily_refresh_deadline', 'dekart_recalc_honest_deadline' );
|
||||
if ( ! wp_next_scheduled( 'dekart_daily_refresh_deadline' ) ) {
|
||||
wp_schedule_event( time(), 'daily', 'dekart_daily_refresh_deadline' );
|
||||
}
|
||||
|
||||
// === ACF JSON Auto-save ===
|
||||
// Автоматически сохраняет группы полей в JSON при редактировании
|
||||
|
||||
@ -24,7 +24,20 @@
|
||||
|
||||
<?php
|
||||
// ─────────────────────────────────────────────────────────────────────
|
||||
// PRELOAD LCP
|
||||
// PRELOAD LCP: podgotovka-k-shkole
|
||||
// ─────────────────────────────────────────────────────────────────────
|
||||
if ( is_page_template( 'page-podgotovka-k-shkole.php' ) ) {
|
||||
$pksh_img_id = carbon_get_post_meta( get_the_ID(), 'banner_image' );
|
||||
if ( $pksh_img_id ) {
|
||||
$pksh_img_url = wp_get_attachment_url( $pksh_img_id );
|
||||
if ( $pksh_img_url ) {
|
||||
echo '<link rel="preload" as="image" href="' . esc_url( $pksh_img_url ) . '" fetchpriority="high">' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ─────────────────────────────────────────────────────────────────────
|
||||
// PRELOAD LCP: front page
|
||||
// ─────────────────────────────────────────────────────────────────────
|
||||
if ( is_front_page() ) {
|
||||
$post_id = get_the_ID();
|
||||
@ -91,8 +104,7 @@ if ( is_front_page() ) {
|
||||
<img width="136" height="40"
|
||||
src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/logo-svg.svg"
|
||||
alt="<?php esc_attr_e('Декарт — частная школа в Щелково', 'dekart'); ?>"
|
||||
loading="eager"
|
||||
fetchpriority="high">
|
||||
loading="eager">
|
||||
</a>
|
||||
|
||||
<div class="mobile icon-links">
|
||||
|
||||
@ -818,7 +818,7 @@ $metrics = [
|
||||
script.onerror = function() { console.warn("Yandex Maps API failed to load"); };
|
||||
script.onload = function() {
|
||||
ymaps.ready(function() {
|
||||
var coords = <?php echo $contact_location ? '[' . esc_js($contact_location) . ']' : '[55.76, 37.64]'; ?>;
|
||||
var coords = <?php echo $opt_coords ? '[' . esc_js($opt_coords) . ']' : '[55.76, 37.64]'; ?>;
|
||||
var map = new ymaps.Map("ya-map", {
|
||||
center: coords,
|
||||
zoom: 16
|
||||
@ -828,7 +828,7 @@ $metrics = [
|
||||
|
||||
var placemark = new ymaps.Placemark(
|
||||
coords,
|
||||
{ iconContent: "<?php echo esc_js($contact_location_text); ?>" },
|
||||
{ iconContent: "<?php echo esc_js($opt_name); ?>" },
|
||||
{ preset: "islands#redStretchyIcon" }
|
||||
);
|
||||
map.geoObjects.add(placemark);
|
||||
|
||||
@ -1,17 +1,9 @@
|
||||
<?php
|
||||
/**
|
||||
* Template Name: Подготовка к школе (Bento 2026)
|
||||
*
|
||||
* Асимметричная Bento-сетка. Нейрокопирайтинг.
|
||||
* CSS: main.css (секции Bento/Social/Guarantee) + podgotovka-k-shkole.css (переопределения 2026)
|
||||
*
|
||||
* @package Dekart
|
||||
*/
|
||||
/* Template Name: Подготовка к школе (Bento 2026) */
|
||||
|
||||
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' ) ?: '';
|
||||
@ -22,9 +14,6 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
|
||||
<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 );
|
||||
@ -36,9 +25,6 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
$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">
|
||||
@ -54,17 +40,12 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</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"/>
|
||||
@ -73,15 +54,12 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<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 ) :
|
||||
@ -97,23 +75,19 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</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>
|
||||
|
||||
@ -136,7 +110,6 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<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>
|
||||
@ -154,13 +127,11 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<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>
|
||||
@ -174,9 +145,6 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Social Proof — Confidence counters (4 cards) -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<?php
|
||||
$social_counters = carbon_get_post_meta( $post_id, 'pksh_social_counters' );
|
||||
$social_icons = array( '🎓', '📅', '⭐', '👩🏫' );
|
||||
@ -201,7 +169,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php else : ?>
|
||||
<!-- Fallback, если поля не заполнены -->
|
||||
|
||||
<div class="social-counter">
|
||||
<div class="social-counter__top"></div>
|
||||
<div class="social-counter__body">
|
||||
@ -239,9 +207,27 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Micro-Commitment: Checklist download -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" 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>
|
||||
|
||||
<section class="bento pksh-section" aria-label="Скачать чек-лист">
|
||||
<div class="bento__full bento-card bento-card--checklist">
|
||||
<div class="micro-commit">
|
||||
@ -277,35 +263,8 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Guarantee Hero + Navigation -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" 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__full" style="text-align: center;">
|
||||
<div class="bento__full section-header--centered">
|
||||
<span class="bento-label">Как проходят занятия</span>
|
||||
<h2 class="bento-h2">30 минут игры — 1 шаг к школе</h2>
|
||||
<p class="bento-p">Каждое занятие построено так, что ребёнок <strong>сам хочет</strong> вернуться. Без скучных прописей — только игровая методика и смена активностей каждые 7 минут.</p>
|
||||
@ -381,25 +340,54 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- CTA: Бесплатное тестирование + занятие -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" 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>
|
||||
|
||||
<?php
|
||||
$timer_ts = function_exists('dekart_get_honest_deadline') ? (int) dekart_get_honest_deadline() : 0;
|
||||
if ($timer_ts > 0) :
|
||||
?>
|
||||
<div class="honest-timer">
|
||||
<span class="honest-timer__label">Цены действуют до конца месяца:</span>
|
||||
<div class="honest-timer__digits">
|
||||
<span class="honest-timer__unit">
|
||||
<span class="honest-timer__num" data-timer="d">00</span>
|
||||
<span class="honest-timer__unit-label">дн</span>
|
||||
</span>
|
||||
<span class="honest-timer__sep">:</span>
|
||||
<span class="honest-timer__unit">
|
||||
<span class="honest-timer__num" data-timer="h">00</span>
|
||||
<span class="honest-timer__unit-label">ч</span>
|
||||
</span>
|
||||
<span class="honest-timer__sep">:</span>
|
||||
<span class="honest-timer__unit">
|
||||
<span class="honest-timer__num" data-timer="m">00</span>
|
||||
<span class="honest-timer__unit-label">мин</span>
|
||||
</span>
|
||||
<span class="honest-timer__sep">:</span>
|
||||
<span class="honest-timer__unit">
|
||||
<span class="honest-timer__num" data-timer="s">00</span>
|
||||
<span class="honest-timer__unit-label">сек</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<script>window.__HONEST_DEADLINE=<?php echo $timer_ts; ?>;</script>
|
||||
<script>
|
||||
!function(){var e=window.__HONEST_DEADLINE;if(!e)return;e*=1e3;var t=document.querySelectorAll('[data-timer]');if(!t.length)return;var n={};t.forEach(function(r){n[r.getAttribute('data-timer')]=r});var o=function(r){return r<10?'0'+r:''+r};!function r(){var t=e-Date.now();if(t<=0){for(var u in n)n[u].textContent='00';return}n.d.textContent=o(Math.floor(t/864e5)),n.h.textContent=o(Math.floor(t%864e5/36e5)),n.m.textContent=o(Math.floor(t%36e5/6e4)),n.s.textContent=o(Math.floor(t%6e4/1e3)),requestAnimationFrame(r)}()}();
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
<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" id="results" aria-label="Результаты учеников">
|
||||
<div class="bento__full bento-card bento-card--highlight-results" style="text-align: center;">
|
||||
<div class="bento__full bento-card bento-card--highlight-results section-header--centered">
|
||||
<span class="bento-label bento-label--light">Результаты наших учеников</span>
|
||||
<h2 class="bento-h2 bento-h2--light">К чему мы приводим детей</h2>
|
||||
<p class="bento-p bento-p--light">95% наших выпускников поступают в школы и лицеи Щёлкова без стресса. Первые результаты — через 3 недели.</p>
|
||||
@ -424,11 +412,8 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Bento Row 3: Programs / Курсы -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<?php
|
||||
// Данные из админки (CF)
|
||||
|
||||
$base_name = carbon_get_post_meta( $post_id, 'pksh_prog_base_name' ) ?: 'Уверенный старт';
|
||||
$base_subname = carbon_get_post_meta( $post_id, 'pksh_prog_base_subname' ) ?: '2 раза в неделю — комфортный темп без перегрузки';
|
||||
$base_schedule = carbon_get_post_meta( $post_id, 'pksh_prog_base_schedule' ) ?: 'вт, чт — 18:00–19:30';
|
||||
@ -443,93 +428,95 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
$prem_price_single = carbon_get_post_meta( $post_id, 'pksh_prog_prem_price_single' ) ?: '1 500 ₽';
|
||||
$prem_urgency = carbon_get_post_meta( $post_id, 'pksh_prog_prem_urgency' ) ?: 'Осталось 3 места в группе';
|
||||
?>
|
||||
|
||||
<section class="bento pksh-section" aria-label="Сравнение">
|
||||
<div class="bento__full section-header--centered">
|
||||
<span class="bento-label">Почему мы</span>
|
||||
<h2 class="bento-h2">Как мы отличаемся от репетитора и обычного кружка</h2>
|
||||
<p class="bento-p">Мы — частная школа с гослицензией, а не кружок. Занятия ведут действующие учителя начальных классов.
|
||||
Результат гарантируем договором.</p>
|
||||
</div>
|
||||
|
||||
<div class="lw-scroll-x pksh-compare">
|
||||
<div class="pksh-swipe-hint" aria-hidden="true">
|
||||
<span class="pksh-swipe-hint__arrow">👇</span>
|
||||
<span class="pksh-swipe-hint__text">Листайте, чтобы сравнить</span>
|
||||
</div>
|
||||
|
||||
<table class="pksh-compare__table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="pksh-compare__label-cell" scope="col">Критерий</th>
|
||||
<th class="pksh-compare__highlight" scope="col">
|
||||
<span class="pksh-compare__col-title">Декарт</span>
|
||||
<span class="pksh-compare__col-badge">Частная школа</span>
|
||||
</th>
|
||||
<th scope="col">Репетитор</th>
|
||||
<th scope="col">Обычный кружок</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="pksh-compare__label-cell">Гослицензия</td>
|
||||
<td class="pksh-compare__highlight"><span class="pksh-compare__yes">✓</span> Есть</td>
|
||||
<td><span class="pksh-compare__no">✗</span> Нет</td>
|
||||
<td><span class="pksh-compare__no">✗</span> Чаще нет</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pksh-compare__label-cell">Формат занятий</td>
|
||||
<td class="pksh-compare__highlight">Группы до 10 человек, индивидуальный подход</td>
|
||||
<td>Индивидуально, но без сверстников</td>
|
||||
<td>Группы 15–20+ человек</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pksh-compare__label-cell">Гарантия результата</td>
|
||||
<td class="pksh-compare__highlight"><span class="pksh-compare__yes">✓</span> Не начнёт читать — вернём деньги</td>
|
||||
<td><span class="pksh-compare__no">✗</span> Нет гарантии</td>
|
||||
<td><span class="pksh-compare__no">✗</span> Нет гарантии</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pksh-compare__label-cell">Цена за 1 занятие</td>
|
||||
<td class="pksh-compare__highlight">от 1 000 ₽</td>
|
||||
<td><span class="pksh-compare__draft">[черновик]</span> 1 500–2 500 ₽</td>
|
||||
<td><span class="pksh-compare__draft">[черновик]</span> 800–1 200 ₽</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pksh-compare__label-cell">Педагоги</td>
|
||||
<td class="pksh-compare__highlight">Действующие учителя начальных классов</td>
|
||||
<td>Часто студенты или пенсионеры</td>
|
||||
<td>Педагоги доп. образования</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="pksh-compare__label-cell">Итоговый документ</td>
|
||||
<td class="pksh-compare__highlight"><span class="pksh-compare__yes">✓</span> Характеристика готовности к школе</td>
|
||||
<td><span class="pksh-compare__no">✗</span> Нет</td>
|
||||
<td><span class="pksh-compare__no">✗</span> Нет</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="pksh-compare__footnote">
|
||||
<strong>Важно:</strong> Данные по репетиторам и кружкам — рыночная оценка, требуют уточнения.
|
||||
Пожалуйста, подтвердите или скорректируйте цифры у руководителя.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="bento pksh-section" id="programs" aria-label="Программы подготовки">
|
||||
<div class="bento__full" style="text-align: center;">
|
||||
<div class="bento__full section-header--centered">
|
||||
<span class="bento-label">Программы</span>
|
||||
<h2 class="bento-h2">Выберите формат подготовки</h2>
|
||||
<p class="bento-p">Все программы ведут действующие педагоги начальных классов.
|
||||
Группы до 8 человек — каждому ребёнку уделяем внимание.</p>
|
||||
<p class="bento-p">Все программы ведут действующие педагоги начальных классов.
|
||||
Группы до 10 человек — каждому ребёнку уделяем внимание.</p>
|
||||
|
||||
<div class="pksh-swipe-hint" aria-hidden="true">
|
||||
<span class="pksh-swipe-hint__arrow">👇</span>
|
||||
<span class="pksh-swipe-hint__text">Листайте, чтобы сравнить программы</span>
|
||||
</div>
|
||||
|
||||
<div class="programs-grid">
|
||||
<!-- ═══ Базовая: Уверенный старт ═══ -->
|
||||
<div class="prog-card prog-card--base">
|
||||
<div class="prog-card__header">
|
||||
<div class="prog-card__header-badge">Первое занятие — бесплатно</div>
|
||||
<div class="prog-card__header-row">
|
||||
<div class="prog-card__icon">⭐</div>
|
||||
<div>
|
||||
<div class="prog-card__name"><?php echo esc_html( $base_name ); ?></div>
|
||||
<div class="prog-card__subname"><?php echo esc_html( $base_subname ); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__body">
|
||||
<!-- Цена — сразу под шапкой -->
|
||||
<div class="prog-card__pricing">
|
||||
<div class="prog-card__price"><?php echo esc_html( $base_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub"><?php echo esc_html( $base_price_single ); ?> за занятие — дешевле репетитора</div>
|
||||
<div class="prog-card__price-single">Разовое занятие вне абонемента: <?php echo esc_html( $base_price_single ); ?></div>
|
||||
<div class="prog-card__urgency"><?php echo esc_html( $base_urgency ); ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Результат с гарантией -->
|
||||
<div class="prog-card__result">
|
||||
<span class="prog-card__result-icon">🎯</span>
|
||||
<span><strong>Через 2 месяца</strong> — осознанное чтение по слогам</span>
|
||||
</div>
|
||||
|
||||
<!-- Что получит ребёнок -->
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Что получит ребёнок</div>
|
||||
<ul class="prog-card__checklist">
|
||||
<li>Чтение по слогам, письмо, математика — готовность к 1-му классу</li>
|
||||
<li>Поднимает руку, отвечает у доски — без страха</li>
|
||||
<li>Ребёнок идёт на занятия с удовольствием — игровая методика</li>
|
||||
<li>Все материалы и пособия включены в стоимость</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Расписание + Структура одним блоком -->
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Расписание</div>
|
||||
<div class="prog-card__schedule"><?php echo esc_html( $base_schedule ); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Структура занятия</div>
|
||||
<div class="prog-card__tags">
|
||||
<span class="prog-card__tag">Нейрогимнастика</span>
|
||||
<span class="prog-card__tag">Математика и логика</span>
|
||||
<span class="prog-card__tag">Активная перемена</span>
|
||||
<span class="prog-card__tag">Чтение и письмо</span>
|
||||
<span class="prog-card__tag">Творчество</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Доверие -->
|
||||
<div class="prog-card__trust">
|
||||
<span>👥 до 8 детей</span>
|
||||
<span>🎂 5–7 лет</span>
|
||||
<span>📍 очно, Щёлково</span>
|
||||
<span>👩🏫 педагог: стаж 12 лет</span>
|
||||
</div>
|
||||
|
||||
<!-- Соцдок-во -->
|
||||
<div class="prog-card__social-proof">
|
||||
<span>⭐ 4.8 — рейтинг программы</span>
|
||||
<span>🎓 500+ детей уже прошли</span>
|
||||
</div>
|
||||
|
||||
<!-- Кнопка -->
|
||||
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
|
||||
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══ Расширенная: Результат за 3 месяца ═══ -->
|
||||
<div class="prog-card prog-card--premium">
|
||||
<div class="prog-card__badge">Популярный выбор · 70% родителей выбирают эту программу</div>
|
||||
<div class="prog-card__header">
|
||||
<div class="prog-card__header-badge">Первое занятие — бесплатно</div>
|
||||
<div class="prog-card__header-row">
|
||||
@ -539,10 +526,11 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<div class="prog-card__subname"><?php echo esc_html( $prem_subname ); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="prog-card__popular">Популярный выбор · 70% родителей выбирают эту программу</div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__body">
|
||||
<!-- Цена — сразу под шапкой -->
|
||||
|
||||
<div class="prog-card__pricing">
|
||||
<div class="prog-card__price prog-card__price--premium"><?php echo esc_html( $prem_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub"><?php echo esc_html( $prem_price_single ); ?> за занятие — дешевле репетитора</div>
|
||||
@ -550,13 +538,11 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<div class="prog-card__urgency"><?php echo esc_html( $prem_urgency ); ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Результат с гарантией -->
|
||||
<div class="prog-card__result">
|
||||
<span class="prog-card__result-icon">🎯</span>
|
||||
<span><strong>Через 2 месяца</strong> — чтение целыми словами и счёт до 20</span>
|
||||
</div>
|
||||
|
||||
<!-- Что получит ребёнок -->
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Что получит ребёнок</div>
|
||||
<ul class="prog-card__checklist">
|
||||
@ -569,19 +555,18 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<li class="prog-card__checklist--plus">✚ Творческие задания и проекты — развиваем мышление, а не память</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Сравнение с базовой -->
|
||||
|
||||
<div class="prog-card__compare">
|
||||
<span class="prog-card__compare-icon">📈</span>
|
||||
<span><strong>На 50% больше занятий</strong> — результат наступает на 3 недели раньше, чем при стандартной нагрузке</span>
|
||||
</div>
|
||||
|
||||
<!-- Расписание + Структура -->
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__schedule-wrap">
|
||||
<div class="prog-card__block-title">Расписание</div>
|
||||
<div class="prog-card__schedule"><?php echo esc_html( $prem_schedule ); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__struct-wrap">
|
||||
<div class="prog-card__block-title">Структура занятия</div>
|
||||
<div class="prog-card__tags">
|
||||
<span class="prog-card__tag">Нейрогимнастика</span>
|
||||
@ -592,22 +577,92 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Доверие -->
|
||||
<div class="prog-card__trust">
|
||||
<span>👥 до 8 детей</span>
|
||||
<span>👥 до 10 детей</span>
|
||||
<span>🎂 5–7 лет</span>
|
||||
<span>📍 очно, Щёлково</span>
|
||||
<span>👩🏫 педагог: стаж 12 лет</span>
|
||||
</div>
|
||||
|
||||
<!-- Соцдок-во -->
|
||||
<div class="prog-card__social-proof">
|
||||
<span>⭐ 4.8 — рейтинг программы</span>
|
||||
<span>🎓 500+ детей уже прошли</span>
|
||||
<span class="prog-card__rating">4.8 — рейтинг программы</span>
|
||||
<span class="prog-card__graduates">🎓 500+ детей уже прошли</span>
|
||||
</div>
|
||||
|
||||
<!-- Кнопка -->
|
||||
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
|
||||
<div class="prog-card__btn-wrap">
|
||||
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
|
||||
</div>
|
||||
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card prog-card--base">
|
||||
<div class="prog-card__header">
|
||||
<div class="prog-card__header-badge">Первое занятие — бесплатно</div>
|
||||
<div class="prog-card__header-row">
|
||||
<div class="prog-card__icon">⭐</div>
|
||||
<div>
|
||||
<div class="prog-card__name"><?php echo esc_html( $base_name ); ?></div>
|
||||
<div class="prog-card__subname"><?php echo esc_html( $base_subname ); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__body">
|
||||
|
||||
<div class="prog-card__pricing">
|
||||
<div class="prog-card__price"><?php echo esc_html( $base_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub"><?php echo esc_html( $base_price_single ); ?> за занятие — дешевле репетитора</div>
|
||||
<div class="prog-card__price-single">Разовое занятие вне абонемента: <?php echo esc_html( $base_price_single ); ?></div>
|
||||
<div class="prog-card__urgency"><?php echo esc_html( $base_urgency ); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__result">
|
||||
<span class="prog-card__result-icon">🎯</span>
|
||||
<span><strong>Через 2 месяца</strong> — осознанное чтение по слогам</span>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Что получит ребёнок</div>
|
||||
<ul class="prog-card__checklist">
|
||||
<li>Чтение по слогам, письмо, математика — готовность к 1-му классу</li>
|
||||
<li>Поднимает руку, отвечает у доски — без страха</li>
|
||||
<li>Ребёнок идёт на занятия с удовольствием — игровая методика</li>
|
||||
<li>Все материалы и пособия включены в стоимость</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__schedule-wrap">
|
||||
<div class="prog-card__block-title">Расписание</div>
|
||||
<div class="prog-card__schedule"><?php echo esc_html( $base_schedule ); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__struct-wrap">
|
||||
<div class="prog-card__block-title">Структура занятия</div>
|
||||
<div class="prog-card__tags">
|
||||
<span class="prog-card__tag">Нейрогимнастика</span>
|
||||
<span class="prog-card__tag">Математика и логика</span>
|
||||
<span class="prog-card__tag">Активная перемена</span>
|
||||
<span class="prog-card__tag">Чтение и письмо</span>
|
||||
<span class="prog-card__tag">Творчество</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__trust">
|
||||
<span>👥 до 10 детей</span>
|
||||
<span>🎂 5–7 лет</span>
|
||||
<span>📍 очно, Щёлково</span>
|
||||
<span>👩🏫 педагог: стаж 12 лет</span>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__social-proof">
|
||||
<span class="prog-card__rating">4.8 — рейтинг программы</span>
|
||||
<span class="prog-card__graduates">🎓 500+ детей уже прошли</span>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__btn-wrap">
|
||||
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
|
||||
</div>
|
||||
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -615,19 +670,18 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</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" style="text-align: center;">
|
||||
<div class="bento__full section-header--centered">
|
||||
<span class="bento-label">Преподаватели</span>
|
||||
<h2 class="bento-h2">Наши преподаватели — практикующие педагоги</h2>
|
||||
<p class="bento-p">Каждый педагог имеет опыт работы с дошкольниками от 5 лет. Все — действующие учителя начальных классов с высшим образованием.</p>
|
||||
|
||||
<div class="pksh-swipe-hint" aria-hidden="true">
|
||||
<span class="pksh-swipe-hint__arrow">👇</span>
|
||||
<span class="pksh-swipe-hint__text">Листайте, чтобы познакомиться с преподавателями</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bento__full">
|
||||
<div class="pksh-teachers__scroll-x">
|
||||
@ -640,11 +694,9 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
$t_subj = $item['teacher_subject'] ?? '';
|
||||
$t_about = $item['teacher_about'] ?? '';
|
||||
|
||||
// Получаем данные из CPT teacher
|
||||
$t_post = $t_id ? get_post($t_id) : null;
|
||||
$t_name = $t_post ? $t_post->post_title : '—';
|
||||
|
||||
// Фото: _teacher_avatar или _thumbnail_id
|
||||
$t_photo = 0;
|
||||
if ($t_post) {
|
||||
$t_photo = get_post_meta($t_id, '_teacher_avatar', true);
|
||||
@ -653,12 +705,10 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
}
|
||||
}
|
||||
|
||||
// Subject fallback: сначала из CF, потом из CPT _teacher_direction
|
||||
if (empty($t_subj) && $t_post) {
|
||||
$t_subj = get_post_meta($t_id, '_teacher_direction', true);
|
||||
}
|
||||
|
||||
// About fallback
|
||||
if (empty($t_about) && $t_post) {
|
||||
$t_about = get_post_meta($t_id, '_teacher_about', true);
|
||||
}
|
||||
@ -717,9 +767,6 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</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">
|
||||
@ -734,11 +781,8 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Bento Row 6: FAQ (на всю ширину, section-bg) -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="section-bg faq-section" id="faq" aria-label="Вопросы и ответы">
|
||||
<div class="container">
|
||||
<div class="bento">
|
||||
<h2 class="faq-section__title">Часто задаваемые вопросы</h2>
|
||||
<?php
|
||||
$faq_items = carbon_get_post_meta($post_id, 'pksh_faq_items');
|
||||
@ -778,11 +822,20 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<?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>
|
||||
|
||||
<section class="bento pksh-section pksh-reviews" id="pksh-reviews" aria-label="Отзывы">
|
||||
<div class="bento__full section-header--centered">
|
||||
<span class="bento-label">Отзывы</span>
|
||||
<h2 class="bento-h2">Что говорят родители</h2>
|
||||
<p class="bento-p">Родители доверяют нам самое главное — делятся впечатлениями о подготовке к школе</p>
|
||||
|
||||
<div class="pksh-swipe-hint" aria-hidden="true">
|
||||
<span class="pksh-swipe-hint__arrow">👇</span>
|
||||
<span class="pksh-swipe-hint__text">Листайте, чтобы читать ещё отзывы</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bento__full">
|
||||
|
||||
<?php
|
||||
$review_items = carbon_get_post_meta($post_id, 'pksh_reviews_list');
|
||||
@ -858,9 +911,9 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" aria-label="Почему нам доверяют">
|
||||
<div class="bento__full">
|
||||
<div class="trust-authority">
|
||||
@ -886,9 +939,6 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- External Reviews — Social Proof -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" aria-label="Отзывы на внешних площадках">
|
||||
<div class="bento__full">
|
||||
<div class="external-reviews">
|
||||
@ -919,16 +969,12 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Final CTA — Low Friction + Countdown Timer -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" 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">
|
||||
@ -977,12 +1023,13 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Contacts — как на странице лагеря -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" id="pksh-contact" aria-label="Контакты">
|
||||
<div class="bento__full pksh-contact">
|
||||
<div class="bento__full section-header--centered">
|
||||
<span class="bento-label">Контакты</span>
|
||||
<h2 class="bento-h2">Наш адрес</h2>
|
||||
<p class="bento-p">Ждём вас в гости — удобно добираться из любого района города</p>
|
||||
</div>
|
||||
<div class="bento__full pksh-contact">
|
||||
<div class="pksh-contact__wrapper">
|
||||
<div class="pksh-contact__info">
|
||||
<?php if (!empty($opt_phone)) : ?>
|
||||
@ -1052,6 +1099,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
apiLoading = true;
|
||||
var script = document.createElement('script');
|
||||
script.src = 'https://api-maps.yandex.ru/2.1/?lang=ru_RU';
|
||||
script.onerror = function() { <?php if ( defined('WP_DEBUG') && WP_DEBUG ) : ?>console.warn("Yandex Maps API failed to load");<?php endif; ?> apiLoading = false; };
|
||||
script.onload = initMap;
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
@ -1071,16 +1119,39 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
})();
|
||||
</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>
|
||||
<span class="sticky-cta-mobile__text">Полное тестирование и первое занятие — <strong>бесплатно!</strong> Потом принимаете решение</span>
|
||||
<button class="sticky-cta-mobile__btn btn-write">Записаться</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sticky-cta-desktop" aria-label="Запись">
|
||||
<div class="sticky-cta-desktop__inner">
|
||||
<div class="sticky-cta-desktop__info">
|
||||
<span class="sticky-cta-desktop__badge">🔥 Акция</span>
|
||||
<span class="sticky-cta-desktop__text">Полное тестирование и первое занятие — <strong>бесплатно!</strong> Потом принимаете решение</span>
|
||||
</div>
|
||||
<button class="sticky-cta-desktop__btn btn-write">Записаться</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var sticky = document.querySelector('.sticky-cta-desktop');
|
||||
var hero = document.querySelector('.ds-hero');
|
||||
if (!sticky || !hero) return;
|
||||
|
||||
var observer = new IntersectionObserver(function(entries) {
|
||||
entries.forEach(function(entry) {
|
||||
sticky.classList.toggle('visible', !entry.isIntersecting);
|
||||
});
|
||||
}, { threshold: 0 });
|
||||
|
||||
observer.observe(hero);
|
||||
})();
|
||||
</script>
|
||||
|
||||
</main>
|
||||
|
||||
<?php
|
||||
|
||||
@ -45,6 +45,7 @@
|
||||
// а не при загрузке страницы. Экономит ~200kb в критическом пути.
|
||||
var script = document.createElement('script');
|
||||
script.src = 'https://api-maps.yandex.ru/2.1/?lang=ru_RU';
|
||||
script.onerror = function() { console.warn("Yandex Maps API failed to load"); apiLoading = false; };
|
||||
script.onload = initMap;
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user