Полностью готовый код для замены (фрагменты JS) 1) Замени функцию calculateSegment на эту: function calculateSegment(amount) { var growth = ['до 490 000', 'от 500 000 до 990 000']; return growth.indexOf(amount) !== -1 ? 'growth' : 'vip'; } 2) Добавь эту функцию перед finishQuiz(): function redirectToThankYou() { sessionStorage.setItem('quizThankYouType', state.segment); if (state.telegram) { sessionStorage.setItem('quizTelegram', state.telegram); } if (state.niche) { sessionStorage.setItem('quizNiche', state.niche); } if (state.lastLaunchAmount) { sessionStorage.setItem('quizLastLaunchAmount', state.lastLaunchAmount); } window.location.href = '/thank-you.html'; } 3) Полностью замени sendToTilda() на эту версию: function sendToTilda() { var form = getForm(); if (!form) return false; form.querySelectorAll('[required], [data-tilda-req]').forEach(function(el) { el.removeAttribute('required'); }); var gp = growthPotential(state.lastLaunchAmount); var weakPts = getWeakPoints(state.answers); var fields = { telegram: state.telegram ? '@' + state.telegram : '', niche: state.niche || '', role: state.role === 'producer' ? 'Продюсер' : state.role === 'expert' ? 'Эксперт' : '', subscribers: state.subscribers || '', coverage: state.coverage || '', project_link: state.projectLink || '', last_launch_amount: state.lastLaunchAmount || '', segment: state.segment || '', result_min: gp.min || '', result_max: gp.max || '', traffic_readable: formatList('traffic', state.answers.traffic || []), base_readable: formatList('base', state.answers.base || []), entry_readable: formatList('entry', state.answers.entry || []), warmup_readable: formatList('warmup', state.answers.warmup || []), converters_readable: formatList('converters', state.answers.converters || []), sales_readable: formatList('sales', state.answers.sales || []), push_readable: formatList('push', state.answers.push || []), weak_points: weakPts.join(' | '), quiz_summary: buildQuizSummary() }; Object.keys(fields).forEach(function(name) { var input = form.querySelector('[name="' + name + '"]'); if (input) { input.value = fields[name]; input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); input.dispatchEvent(new Event('blur', { bubbles: true })); } else { console.warn('⚠️ Не найдено поле:', name); } }); console.log('📤 Отправляем в Tilda:', fields); var redirected = false; function handleSuccessRedirect() { if (redirected) return; redirected = true; redirectToThankYou(); } form.addEventListener('submit', function() { setTimeout(handleSuccessRedirect, 1200); }, { once: true }); setTimeout(function() { var submitBtn = form.querySelector('button[type="submit"], .t-submit, input[type="submit"]'); if (submitBtn) { submitBtn.click(); } else { form.submit(); setTimeout(handleSuccessRedirect, 1200); } }, 300); return true; } 4) Полностью замени finishQuiz() на эту: function finishQuiz() { state.segment = calculateSegment(state.lastLaunchAmount); try { sendToTilda(); } catch (e) { console.error('❌ Ошибка отправки формы:', e); } } 5) Если thank you страница лежит по другому адресу, замени в redirectToThankYou(): window.location.href = '/thank-you.html'; например на: window.location.href = '/kviz-thanks'; 6) Если хочешь, чтобы и на thank you странице была доп.проверка, можешь использовать это: function normalizeThankYouType() { var storedType = sessionStorage.getItem('quizThankYouType'); var lastLaunchAmount = sessionStorage.getItem('quizLastLaunchAmount') || ''; if ( lastLaunchAmount === 'до 490 000' || lastLaunchAmount === 'от 500 000 до 990 000' ) { return 'growth'; } if ( lastLaunchAmount === 'от 1 000 000 до 1 990 000' || lastLaunchAmount === 'от 2 000 000 до 2 990 000' || lastLaunchAmount === 'от 3 000 000 до 4 990 000' || lastLaunchAmount === 'от 5 000 000 до 9 990 000' || lastLaunchAmount === '10 000 000+' ) { return 'vip'; } return storedType || 'growth'; } И тогда на thank you странице вместо: const thankYouType = sessionStorage.getItem('quizThankYouType') || 'growth'; используй: const thankYouType = normalizeThankYouType();
Made on
Tilda