Сейчас узнаем, какой подарок выпадет именно Вам
Крутите колесо
Как сделать текст кнопки в корзине зависимым от способа оплаты в Тильда
Portfolio
A Collection of Our Standout Projects
NovaFrame Studio
A modular creative platform that redefines visual expression through structured simplicity and fluid innovation.
Etheric Horizon
An experimental interface concept exploring the boundary between intuitive interaction and immersive digital presence.

Как сделать текст кнопки в корзине зависимым от способа оплаты в Тильда

1
Добавляем блок корзины ST100
2
Добавляем способы оплаты
3
Вставляем код на страницу в блок Т123
Код вставляется в обычный и продуктовый footer
Библиотека для примера
<script>
t_onReady(function() {
    setTimeout(function() {
        t_onFuncLoad('tcart__init', function() {
            
            // Объект соответствий: тип оплаты -> подпись кнопки
            var paymentButtonLabels = {
                "Наличными": "Оплатить наличными курьеру",
                "Оплата картой на сайте": "Оплатить по карте",
                "Оплата через СБП": "Оплатить по СБП",
                "Выставить счёт": "Сформировать счёт для ИП или ООО",
                
            };

            var cartSelector = 'div[data-record-type="706"]';
            var buttonSelector = cartSelector + ' button.t-submit span';
            var paymentInputsSelector = cartSelector + ' .t-input-group_pm input[name="paymentsystem"]';

            var defaultButtonText = null;

            function updateSubmitButton() {
                var buttonSpan = document.querySelector(buttonSelector);
                if (!buttonSpan) return;

                if (defaultButtonText === null) {
                    defaultButtonText = buttonSpan.textContent.trim();
                    buttonSpan.setAttribute('data-default-text', defaultButtonText);
                }

                var checkedInput = document.querySelector(paymentInputsSelector + ':checked');
                var newText = defaultButtonText;

                if (checkedInput) {
                    var label = checkedInput.closest('label');
                    if (label) {
                        var labelText = label.textContent.replace(/\s+/g, ' ').trim();
                        if (paymentButtonLabels.hasOwnProperty(labelText)) {
                            newText = paymentButtonLabels[labelText];
                        }
                    }
                }

                if (buttonSpan.textContent.trim() !== newText) {
                    buttonSpan.textContent = newText;
                }
            }

            function bindPaymentInputs() {
                var paymentInputs = document.querySelectorAll(paymentInputsSelector);
                if (!paymentInputs.length) return;

                paymentInputs.forEach(function(input) {
                    if (input.dataset.paymentLabelBound === 'y') return;
                    input.dataset.paymentLabelBound = 'y';

                    input.addEventListener('change', function() {
                        updateSubmitButton();
                    });
                });
            }

            function init() {
                bindPaymentInputs();
                updateSubmitButton();
            }

            init();

            var cartWindow = document.querySelector(cartSelector + ' .t706__cartwin');
            if (cartWindow) {
                
                var cartObserver = new MutationObserver(function(mutations) {
                    mutations.forEach(function(mutation) {
                        if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
                            var el = mutation.target;
                            if (el.classList.contains('t706__cartwin_showed')) {
                                setTimeout(function() {
                                    bindPaymentInputs();
                                    updateSubmitButton();
                                }, 50);
                            }
                        }
                    });
                });
                cartObserver.observe(cartWindow, { attributes: true, attributeFilter: ['class'] });
            }

            document.addEventListener('change', function(e) {
                if (e.target && e.target.matches && e.target.matches(paymentInputsSelector)) {
                    updateSubmitButton();
                }
            });

            var bodyObserver = new MutationObserver(function(mutations) {
                var shouldUpdate = false;
                mutations.forEach(function(mutation) {
                    mutation.addedNodes.forEach(function(node) {
                        if (node.nodeType === 1) {
                            if (node.matches && (
                                node.matches(paymentInputsSelector) ||
                                node.querySelector && node.querySelector(paymentInputsSelector) ||
                                node.matches('button.t-submit') ||
                                node.querySelector && node.querySelector('button.t-submit')
                            )) {
                                shouldUpdate = true;
                            }
                        }
                    });
                });
                if (shouldUpdate) {
                    bindPaymentInputs();
                    updateSubmitButton();
                }
            });
            bodyObserver.observe(document.body, { childList: true, subtree: true });
        });
    }, 200);
});
</script>
Made on
Tilda