В Тильде появилась возможность сделать "запоминание данных" без вставки кода
Если по какой-то причине вам не подойдёт вариант из Тильды, то воспользуйтесь кодом ниже.
<!-- Код для запоминания данных введённых в корзине -->
<!-- https://roman-kosov.ru/autocomplete-tilda-cart -->
<script>
$(document).ready(function () {
setTimeout(function () {
$(".js-form-proccess").each(function (i, cart) {
var $cart = $(cart);
var cartSuccessCallback = $cart.data("formsended-callback");
var cachedCallback = window[cartSuccessCallback];
var acTildaCartSave = {};
window[cartSuccessCallback] = (function () {
return function () {
if (window.tcart.promocode && window.tcart.promocode.promocode) {
acTildaCartSave['acTildaCart-promocode'] = window.tcart.promocode.promocode;
}
$($cart.serializeArray()).each(function (i, el) {
if (el.name.indexOf("form-spec-") === -1 && (el.name.indexOf("tildaspec-") === -1 || el.name === "tildaspec-phone-part[]") && el.name.indexOf("formservices") === -1) {
if (el.value !== "") {
acTildaCartSave[el.name] = el.value;
}
}
});
localStorage.setItem('acTildaCart', JSON.stringify(acTildaCartSave));
return cachedCallback($cart);
};
})();
/* Recovery fields */
var acTildaCartRecovery = localStorage.getItem('acTildaCart') || {};
try {
acTildaCartRecovery = JSON.parse(acTildaCartRecovery);
Object.keys(acTildaCartRecovery).forEach(function (name) {
if (name === "tildaspec-phone-part[]") {
setTimeout(function () {
$('[name="tildaspec-phone-part[]"]').val(acTildaCartRecovery[name]);
$('.t-input-phonemask').trigger('input');
}, 1000);
} else if (name === 'acTildaCart-promocode') {
$('.t-inputpromocode').val(acTildaCartRecovery[name]);
$('.t-inputpromocode__btn').trigger('click');
} else {
$('[name="' + name + '"]:not([type="radio"])').val(acTildaCartRecovery[name]);
try {
$('[type="radio"][value="' + acTildaCartRecovery[name] + '"]').prop("checked", true);
} catch (e) {}
}
});
} catch (e) {}
});
}, 500);
});
</script>