Сайт Fakel Gym
https://fakelgym.cp.good-production.xyz/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
5.4 KiB
119 lines
5.4 KiB
<?php
|
|
|
|
$form_id = get_field('form_id') ?: '3';
|
|
$form_title = get_field('form_title') ?: 'Форма обратной связи';
|
|
$submit_button_text = get_field('submit_button_text') ?: 'Отправить';
|
|
|
|
$unique_id = 'form-block-' . $block['id'];
|
|
|
|
$current_url = home_url($_SERVER['REQUEST_URI']);
|
|
$page_title = get_the_title() ?: 'Главная страница';
|
|
$form_name = $form_title;
|
|
|
|
$room = get_current_room();
|
|
if ($room === 'gym') {
|
|
$section_classes = 'bg-cover bg-center bg-no-repeat';
|
|
$bg_image = get_template_directory_uri() . '/assets/images/form-bg-dark.png.webp';
|
|
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
|
|
} else {
|
|
$section_classes = 'bg-cover bg-center bg-no-repeat';
|
|
$bg_image = get_template_directory_uri() . '/assets/images/form-bg-light.png.webp';
|
|
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
|
|
}
|
|
|
|
$hidden_value = "Форма: {$form_name} | Страница: {$page_title} | URL: {$current_url}";
|
|
?>
|
|
|
|
<section data-scroll-section="trial-training" class="bg-[100%_8px] bg-no-repeat max-[1050px]:!bg-none bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)] bg-cover"
|
|
id="<?php echo esc_attr($unique_id); ?> "
|
|
<?php echo $style_attr; ?>
|
|
>
|
|
|
|
<div class="mt-[-9px] max-[1050px]:py-[0] max-[1050px]:flex-col-reverse max-[1050px]:items-center max-[1050px]:justify-center max-[1050px]:gap-[20px] container mx-auto py-[48px] flex relative">
|
|
|
|
<div class="max-[1050px]:w-[calc(100%+20px)] max-[768px]:w-[calc(100%+48px)] bg-[100%_8px] bg-no-repeat max-[1050px]:flex max-[1050px]:items-center max-[1050px]:justify-center bg-cover bg-no-repeat absolute right-0 bottom-0 max-[1050px]:static"
|
|
data-bg-image="<?php echo esc_url($bg_image); ?>">
|
|
|
|
|
|
<img class="max-[1050px]:max-h-[274px] pointer-events-none z-0"
|
|
src="<?php echo esc_url(get_template_directory_uri() . '/assets/images/form-image-trainer.png'); ?>"
|
|
alt="Изображение тренера">
|
|
</div>
|
|
|
|
<script>
|
|
function setResponsiveBackground() {
|
|
const elements = document.querySelectorAll('[data-bg-image]');
|
|
elements.forEach(el => {
|
|
if (window.innerWidth <= 1050) {
|
|
el.style.backgroundImage = `url(${el.dataset.bgImage})`;
|
|
} else {
|
|
el.style.backgroundImage = 'none';
|
|
}
|
|
});
|
|
}
|
|
|
|
window.addEventListener('resize', setResponsiveBackground);
|
|
setResponsiveBackground();
|
|
</script>
|
|
|
|
<div class="max-[768px]:p-[20px] form-block-wrapper relative z-[1] border border-[2px] border-[#fff] p-[48px] bg-[#f8f8f8] rounded-[32px] w-full max-w-[590px]"
|
|
data-form-id="<?php echo esc_attr($form_id); ?>"
|
|
data-submit-text="<?php echo esc_attr($submit_button_text); ?>"
|
|
data-hidden-value="<?php echo esc_attr($hidden_value); ?>">
|
|
<h3 class="max-[1050px]:text-[30px] max-[768px]:text-[24px] font-[500] text-[40px] leading-[120%] text-[#222]">Пробная <strong class="font-[700]">персональная
|
|
тренировка</strong>
|
|
<span class="max-[768px]:text-[20px] max-[768px]:mt-[10px] max-[768px]:h-[29px] bg-[linear-gradient(90deg,_#9d9994_39.42%,_#ccc9c4_92.9%)] rounded-[32px] h-[43px] inline-flex items-center pr-[16px] pl-[16px] font-[600] text-[32px] leading-[115%] text-[#fff]">за 1200 ₽</span>
|
|
</h3>
|
|
<p class="max-[1050px]:text-[18px] max-[768px]:text-[16px] mt-[16px] mb-[24px] font-[500] text-[20px] leading-[140%] text-[#222]">Познакомимся, покажем зал и
|
|
<strong class="font-[600]">подберём
|
|
оптимальные для вас тренировки!</strong></p>
|
|
<?php echo do_shortcode('[fluentform id="' . esc_attr($form_id) . '"]'); ?>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
const section = document.getElementById('<?php echo esc_js($unique_id); ?>');
|
|
if (!section) return;
|
|
|
|
const block = section.querySelector('.form-block-wrapper');
|
|
if (!block) return;
|
|
|
|
const submitText = block.dataset.submitText;
|
|
const hiddenValue = block.dataset.hiddenValue;
|
|
|
|
function updateForm() {
|
|
const submitButton = block.querySelector('.ff-btn-submit');
|
|
const hiddenInput = block.querySelector('input[name="hidden"]');
|
|
|
|
let updated = false;
|
|
|
|
if (submitButton && submitText) {
|
|
submitButton.textContent = submitText;
|
|
updated = true;
|
|
}
|
|
|
|
if (hiddenInput && hiddenValue && !hiddenInput.value) {
|
|
hiddenInput.value = hiddenValue;
|
|
updated = true;
|
|
}
|
|
|
|
return updated;
|
|
}
|
|
|
|
if (!updateForm()) {
|
|
let attempts = 0;
|
|
const maxAttempts = 3;
|
|
|
|
const interval = setInterval(() => {
|
|
attempts++;
|
|
if (updateForm() || attempts >= maxAttempts) {
|
|
clearInterval(interval);
|
|
}
|
|
}, 150);
|
|
}
|
|
|
|
block.addEventListener('focusin', updateForm, {once: true});
|
|
});
|
|
</script>
|