Данные код добавляете в "Плагины" - "Свой код" в раздел <body>. Данный код отвечает за "доставание" yclid из куков пользователя.
<script type="text/javascript">
function setCookie(name, value, days){
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = name + "=" + value + expires + ";path=/";
}
function getParam(p){
var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
var yclid = getParam('yclid');
if(yclid){
setCookie('yclid', yclid, 90);
}
</script>
Далее в форму добавляем скрытое поле и добавляем там "yclid_field". У меня это сделано так:
Дополнительно "обзываем" input поле классом "yclid_field":
Ниже скрытого поля добавляем HTML:
И вставляем данный код:
<script>
function readCookie(name) {
var n = name + "=";
var cookie = document.cookie.split(';');
for (var i = 0; i < cookie.length; i++) {
var c = cookie[i];
while (c.charAt(0) == ' ') {
c = c.substring(1, c.length);
}
if (c.indexOf(n) == 0) {
return c.substring(n.length, c.length);
}
}
return null;
}
function setYclidValues() {
var inputFields = document.querySelectorAll('.yclid_field input');
var yclidValue = readCookie('yclid');
for (var i = 0; i < inputFields.length; i++) {
if (!inputFields[i].value) {
inputFields[i].value = yclidValue;
}
}
}
window.onload = function() {
setYclidValues(); // Подстановка значений при загрузке страницы
// Подстановка значений после каждого скролла
window.addEventListener('scroll', setYclidValues);
}
</script>
Поздравляю, вы справились, теперь в скрытое поле будет подставляться yclid от Яндекс Директ и даже если оставленная заявка была не сразу, данные всё равно подставятся взятые из куков.