let sc = document.getElementById("dgwasetanalyticphrase"); let textValue = sc.getAttribute('data-phrase'); let parameter = sc.getAttribute('data-parameter'); let ym_counter = sc.getAttribute('data-ym_counter'); let getPromoUrl = 'https://demo-integrations.daily-grow.ru/api/bitrix-24/whatsapp/get-promo-code'; function func() { switch (parameter) { case 'ym_uid': ym(ym_counter, 'getClientID', function(clientID) { let send_data = { number:clientID, }; try { postData(getPromoUrl, send_data).then((response) => { if (response.data.status == 'success') { let promo = response.data.promo; action(promo); } else { return; } }); } catch (error) { return; } }); break; case "roistat": let roistat_visit = localStorage.getItem("roistat_visit"); if (roistat_visit) { let send_data = { number:roistat_visit, }; try { postData(getPromoUrl, send_data).then((response) => { if (response.data.status == 'success') { let promo = response.data.promo; action(promo); } else { return; } }); } catch (error) { return; } } else { window.onRoistatAllModulesLoaded = function () { window.roistat.registerOnVisitProcessedCallback(function() { roistat_visit = window.roistat.getVisit(); let send_data = { number:roistat_visit, }; try { postData(getPromoUrl, send_data).then((response) => { if (response.data.status == 'success') { let promo = response.data.promo; action(promo); } else { return; } }); } catch (error) { return; } }); }; } break; default: break; } } function setAnalyticPhrase(el) { if (!el.getAttribute("href")) { return; } let url = new URL(el.getAttribute("href")); let hosts = ['api.whatsapp.com','wa.me','web.whatsapp.com']; if (!hosts.includes(url.hostname)) { return; } if (url.hostname == "wa.me" || url.hostname == "web.whatsapp.com") { phone = url.pathname.slice(-11); url.pathname = 'send'; url.hostname = 'api.whatsapp.com'; url.searchParams.set('phone',phone); } let textIsSeted = false; url.searchParams.forEach((value,key) => { if (key == 'text' && value == textValue) { textIsSeted = true; } }) if (!textIsSeted) { url.searchParams.set('text',textValue); el.setAttribute("href",url.href); } } function action(parameterValue) { if (!parameterValue) { return; } let mas = textValue.split('{parameter}'); textValue = mas[0] + parameterValue + mas[1]; let as = document.getElementsByTagName("a"); for (let i=0; i { mutationRecords.forEach((record) => { record.addedNodes.forEach((el) => { if (el.tagName == "A") { setAnalyticPhrase(el); } }) }) }); observer.observe(body, { childList: true, subtree: true, }); } async function postData(url = "", data = {}) { const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", "Accept":"application/json", }, referrerPolicy: "no-referrer", body: JSON.stringify(data), }); return {"status":await response.status,"data": await response.json()}; } document.addEventListener('DOMContentLoaded',func);