Skip to content

Instantly share code, notes, and snippets.

@hunty
Last active September 8, 2024 08:18
Show Gist options
  • Save hunty/9b5cfe419d3dbb28e131fd100ce51d77 to your computer and use it in GitHub Desktop.
Save hunty/9b5cfe419d3dbb28e131fd100ce51d77 to your computer and use it in GitHub Desktop.
Парсит UTM метки и подставляет в скрытые поля
window.onload = function() {
// Parse the URL
function getParameterByName(name) {
var name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
var results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');
// Put the variable names into the hidden fields in the form.
document.getElementById("property_utm_source").value = source;
document.getElementById("property_utm_medium").value = medium;
document.getElementById("property_utm_campaign").value = campaign;
//U Can use it with Expertsender Forms
}
@wpdew
Copy link

wpdew commented Sep 8, 2024

Так ловим:

function getUTMParams() {
    const urlParams = new URLSearchParams(window.location.search);
    const utms = {
        utm_source: urlParams.get('utm_source'),
        utm_medium: urlParams.get('utm_medium'),
        utm_campaign: urlParams.get('utm_campaign'),
        utm_term: urlParams.get('utm_term'),
        utm_content: urlParams.get('utm_content')
    };
    
    // Сохраняем UTM-метки в sessionStorage для дальнейшей передачи
    sessionStorage.setItem('utms', JSON.stringify(utms));

    return utms;
}
// Получаем UTM-метки
const utmParams = getUTMParams();

Так принимаем на другой странице:

<?php
$utm_source = $_SESSION['utms']['utm_source'];
$utm_medium = $_SESSION['utms']['utm_medium'];
$utm_campaign = $_SESSION['utms']['utm_campaign'];
?>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment