Wazzup справка и инструкция по сервису

Код скрипта для CoMagic

<!-- Вставьте этот скрипт перед закрывающим тегом </body> -->
<!-- Токен {wz_metric} используется для подстановки кода аналитики. Убедитесь, чтобы токен и текст, в котором он прописан, были разделены как минимум одним символом пробела. -->

<script>
  (function () {
    function ChangeLinkWA() {
      this.text = "Здравствуйте! Номер моей заявки: {wz_metric}";
      this.cookieSource = "_comagic_";
      this.prefix = 'CM-';
    }

    ChangeLinkWA.prototype.editLink = function (url, id) {
      var analyticsСode = `${this.prefix}${id}`
      if (decodeURIComponent(url.split("text=")[1]) === this.text.replace(/{wz_metric}/gi, analyticsСode)) return;

      var regexNumberPhone = /\d+/;
      if (!regexNumberPhone.test(url)) return;

      var phone = url.match(regexNumberPhone)[0];
      var host = url.split(phone)[0];
      var newUrl =
        host === "https://wa.me/"
          ? `${host}${phone}?text=${this.text.replace(/{wz_metric}/gi, analyticsСode)}`
          : `${host}${phone}&text=${this.text.replace(/{wz_metric}/gi, analyticsСode)}`;
      return newUrl;
    };

    ChangeLinkWA.prototype.getCookie = function (name) {
      var allCookies = this.getAllCookies()
      var comagicCookieName = (allCookies.filter(cookieName => cookieName.includes(name)))[0];
      if (!comagicCookieName) return;
      var matches = document.cookie.match(new RegExp(`(?:^|; )${comagicCookieName.replace(/([.$?*|{}()[]\/+^])/g, "\\$1")}=([^;]*)`));
      return matches && decodeURIComponent(matches[1]);
    };

    ChangeLinkWA.prototype.getAllCookies = function () {
      var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
      for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {
        aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);
      }
      return aKeys;
    };

    ChangeLinkWA.prototype.censusLinks = function () {
      var links = document.querySelectorAll('[href*="//wa.me"], [href*="//api.whatsapp.com/send"], [href*="//web.whatsapp.com/send"], [href^="whatsapp://send"]');
      var id = this.getCookie(this.cookieSource);
      var that = this;
      links.forEach(function (link) {
        var newLink = that.editLink(link.href, id);
        if (newLink) link.href = newLink;
      });
    };

    window.addEventListener("DOMContentLoaded", function () {
      if (!(window.__wz_scripts && window.__wz_scripts.scriptsChangeLinkWA)) {
        if (!window.__wz_scripts) window.__wz_scripts = {};
        window.__wz_scripts.scriptsChangeLinkWA = new ChangeLinkWA();
        var interval = setInterval(function () {
          var id = window.__wz_scripts.scriptsChangeLinkWA.getCookie(
            window.__wz_scripts.scriptsChangeLinkWA.cookieSource
          );
          if (id) {
            clearInterval(interval);
            window.__wz_scripts.scriptsChangeLinkWA.censusLinks();
          }
        }, 200);
      }
    });
  })();
</script>