Для отправки ClientID Яндекс.Метрики в форму обратной связи на WordPress вам нужно выполнить несколько шагов. Это включает получение ClientID из Яндекс.Метрики на стороне клиента и добавление его в ваше поле формы перед отправкой. Давайте рассмотрим, как это сделать.
### Шаг 1: Получение ClientID из Яндекс.Метрики
Сначала вы должны получить ClientID, который хранится в cookie устройства. Вы можете использовать следующий JavaScript-код для этого:
```javascript
function getYaClientId() {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookiePair = cookies[i].trim().split('=');
if (cookiePair[0] === '_ym_uid') {
return cookiePair[1];
}
}
return null;
}
```
### Шаг 2: Добавление ClientID в форму
После того, как вы получите ClientID, вы можете добавить его в скрытое поле вашей формы перед отправкой. Обновите ваш JavaScript код следующим образом:
```javascript
jQuery(document).ready(function($) {
$('input[type=tel]').inputmask({"mask": "+7 (999) 999-99-99"});
// Получаем ClientID
const clientId = getYaClientId();
// Устанавливаем ClientID в скрытое поле формы
$('input[name="ClientID"]').val(clientId);
// Остальной ваш код остается здесь
// Пример: валидация телефона
window.formPhoneValidator = function (input) {
let tempInput = input.toString().replaceAll(/[^0-9]+/g, '');
return tempInput.length > 10;
}
// Ваша логика меню для мобильных устройств
if ($(window).width() <= '1025') {
$('#mobile-menu li.has-childs > a').on('click', function (e) {
e.preventDefault();
const parent = $(this).parent();
parent.find('ul.sub-menu').slideToggle();
})
}
// Остальной код остался прежним
});
```
### Шаг 3: Обновите вашу форму
Убедитесь, что у вас есть скрытое поле для ClientID, как у вас уже прописано в HTML-коде формы:
```html
<input type="hidden" name="ClientID" value="">
```
### Шаг 4: Проверка на сервере
На бэкенде вам следует убедиться, что вы обрабатываете полученное значение ClientID при отправке формы. Проверьте, правильно ли оно приходит, например, так:
```php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$clientId = isset($_POST['ClientID']) ? sanitize_text_field($_POST['ClientID']) : '';
// Здесь вы можете использовать $clientId для дальнейшей обработки
}
```
Таким образом, вы успешно получите ClientID из Яндекс.Метрики и добавите его в форму обратной связи на вашем сайте WordPress.