Dee3
@Dee3

Как передать значение cookie в CRM форму Битрикс24?

На сайте размещен виджет онлайн чата и CRM форма.
В документации есть пример как с помощью модификации кода виджета открытых линий передать параметр в форму битрикс24:

<script data-skip-moving="true"> (function(w,d,u,b){ s=d.createElement('script');
r=1*new Date();s.async=1;s.src=u+'?'+r; h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h); })
(window,document,'http://cp.bx/upload/crm/site_button/loader_14_i4bdl2.js'); 
window.Bitrix24WidgetObject = window.Bitrix24WidgetObject || {};
 window.Bitrix24WidgetObject.handlers = { 'form-init': function(form){ form.presets = { 'my_cookie1': 'test_value', }; } };


Попробовал просто вставить код виджета перед формой, а внутри формы добавил тег персонализации %my_cookie1%.
При отправке формы test_value на форму не приходит... Тут застопорился.

Вторым этапом ббудет получение значения куки y_clid и передача его в форму вместо test_value.
Должен помочь код, но я не знаю как это все вместе связать
function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}
  • Вопрос задан
  • 964 просмотра
Решения вопроса 1
Dee3
@Dee3 Автор вопроса
Разобрался сам. Виджет тут особо не нужен, достаточно модифицировать код формы. Работает для старых форм (не 2.0)
добавляем в начале страницы код функции, затем в коде формы добавляем запрос этой фунции.
<script>function getCookie(name){const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();}
</script>


Затем добавляем строчку с доп параметрами (presets)

b24form({"id": "4",
    "lang": "ru",
    "sec": "d143a7",
    "type": "inline",
	"presets":{"mycookie": getCookie('_ym_uid')}});
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы