This commit is contained in:
oliver committed 2026-10-17 10:40:05 -03:00
1 parent 575e3efece
commit b4e0faa62e
2 files changed
+70 -3

No files matched your search

+36
View File
@@ -342,6 +342,41 @@
powerhouse: 5,
};
// ── UTM tracking (source / medium / campaign) ─────────────────────────────
const UTM_KEYS = ["source", "medium", "campaign"];
function getCookie(name) {
const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
return match ? decodeURIComponent(match[2]) : null;
}
function setCookie(name, value, days) {
const date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
document.cookie =
name + "=" + encodeURIComponent(value) +
"; expires=" + date.toUTCString() +
"; path=/; SameSite=Lax";
}
UTM_KEYS.forEach(function (key) {
const val = params.get("utm_" + key);
if (val) setCookie("utm_" + key, val, 90);
});
function appendUTM(form) {
UTM_KEYS.forEach(function (key) {
const val = getCookie("utm_" + key);
if (val) {
const input = document.createElement("input");
input.type = "hidden";
input.name = "utm_" + key;
input.value = val;
form.appendChild(input);
}
});
}
// ── Buy handler ───────────────────────────────────────────────────────────
function buyProduct(productId) {
if (!uuid) {
@@ -369,6 +404,7 @@
clear.name = "clear";
clear.value = "1";
form.appendChild(clear);
appendUTM(form);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
+34 -3
View File
@@ -57,7 +57,33 @@ var si = 0,
return data;
}
window.UTM = { parse: parseUTM, getStored: getStoredUTM, inject: injectUTM };
function appendToForm(form) {
var stored = getStoredUTM();
var keys = ['source', 'medium', 'campaign'];
for (var i = 0; i < keys.length; i++) {
if (stored[keys[i]]) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'utm_' + keys[i];
input.value = stored[keys[i]];
form.appendChild(input);
}
}
}
function toQuery() {
var stored = getStoredUTM();
var parts = [];
var keys = ['source', 'medium', 'campaign'];
for (var i = 0; i < keys.length; i++) {
if (stored[keys[i]]) {
parts.push('utm_' + keys[i] + '=' + encodeURIComponent(stored[keys[i]]));
}
}
return parts.join('&');
}
window.UTM = { parse: parseUTM, getStored: getStoredUTM, inject: injectUTM, appendToForm: appendToForm, toQuery: toQuery };
window.UTM.parse(); // Parse on page load
})();
@@ -196,13 +222,15 @@ var si = 0,
yearlySave.style.display = "block";
var buyBtn = document.getElementById("orderBuyBtn");
var loc = document.getElementById("orderServerLocation").value;
var utmQuery = UTM.toQuery();
buyBtn.href =
"/3/" +
price.toFixed(2) +
"/4/" +
encodeURIComponent(plan) +
"?location=" +
encodeURIComponent(loc);
encodeURIComponent(loc) +
(utmQuery ? "&" + utmQuery : "");
widget.style.display = "flex";
orderPopupShown = true;
}
@@ -233,13 +261,15 @@ var si = 0,
.trim();
var price = parseFloat(priceText);
var loc = this.value;
var utmQuery = UTM.toQuery();
document.getElementById("orderBuyBtn").href =
"/3/" +
price.toFixed(2) +
"/4/" +
encodeURIComponent(plan) +
"?location=" +
encodeURIComponent(loc);
encodeURIComponent(loc) +
(utmQuery ? "&" + utmQuery : "");
});
function applyCoupon() {
var input = document.getElementById("orderCouponInput");
@@ -719,6 +749,7 @@ var si = 0,
clear.name = 'clear';
clear.value = '1';
form.appendChild(clear);
UTM.appendToForm(form);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);