Настройка виджетов офферов с редиректом и кастомной ценой
Что нужно
-
offer_idнужных офферов (из GC или из HTML:data-offer-id="...") -
ссылка для редиректа (для каждого оффера)
-
(опционально) текст “цены”, который показываем вместо реальной
1) JS: редирект по выбранному offer_id
Вставь JS и заполни словарь REDIRECTS:
<script>
$(function () {
var REDIRECTS = {
"7528221": "https://buy.stripe.com/9B6dR98Sx88JcEXfgn3AY0i",
"7528798": "https://buy.stripe.com/8x25kD7Ot74F5cv6JR3AY0l",
"7528815": "https://buy.stripe.com/14A9AT0m1dt3dJ19W33AY0k"
};
var pendingRedirect = null; // Хранит URL для редиректа после успешной отправки
// Перед отправкой формы — запоминаем оффер
$(document).on('click', '.lt-form .btn.f-btn.button-md.btn-success', function (e) {
var $form = $(this).closest('.lt-form');
var $selected = $form.find('.form-position-input:checked').closest('.form-position');
var offerId = ($selected.attr('data-offer-id') || "").toString();
if (offerId && REDIRECTS[offerId]) {
// Запоминаем URL для редиректа, НО НЕ блокируем отправку
pendingRedirect = REDIRECTS[offerId];
} else {
pendingRedirect = null;
}
// Форма отправляется стандартно через liteForm()
});
// После успешной AJAX-отправки — редирект
$(document).ajaxComplete(function(event, xhr, settings) {
if (pendingRedirect && xhr.status === 200) {
try {
var response = JSON.parse(xhr.responseText);
// GetCourse возвращает success: true при успешном создании заказа
if (response.success) {
window.top.location.href = pendingRedirect;
}
} catch (e) {
// Если не JSON или ошибка парсинга — игнорируем
}
}
});
});
</script>
Как добавить новый оффер:"НОВЫЙ_ID": "https://ссылка"
2) CSS: порядок офферов + подмена цены
База (один раз)
.part-manyPositions { display: flex; flex-direction: column; }
.form-position .form-position-price.pull-right { position: relative; }
.form-position .form-position-price.pull-right::before{
font-size:14px;font-weight:700;color:#111;line-height:1.2;font-family:inherit;visibility:visible;
}
Для каждого оффера (копируй блок и меняй значения)
/* ОФФЕР 7820040 */
.form-position[data-offer-id="7820040"] { order: 1; }
.form-position[data-offer-id="7820040"] .form-position-price.pull-right { visibility:hidden; font-size:0; }
.form-position[data-offer-id="7820040"] .form-position-price.pull-right::before { content:"2 × 110€"; }
/* ОФФЕР 1234567 */
.form-position[data-offer-id="1234567"] { order: 2; }
.form-position[data-offer-id="1234567"] .form-position-price.pull-right { visibility:hidden; font-size:0; }
.form-position[data-offer-id="1234567"] .form-position-price.pull-right::before { content:"199€ (o singura plata)"; }
Проверка
-
Порядок офферов меняется (через
order) -
Цена визуально подменена (
content) -
Редирект срабатывает только для офферов из
REDIRECTS
No Comments