Для того чтобы ajaxForm отправлял данные из формы на mindbox вам можно сделать следующее:
- В вызов Formit или AjaxForm добавить hook mindSend
- Создать сниппет mindSend примерно с таким содержимым:
<?php /** * Отправляем данные в mindBox * * @var modX $modx * @var fiHooks $hook */ $emailValue = $hook->getValue('email'); $deviceUUId = isset($_COOKIE['mindboxDeviceUUID']) ? $_COOKIE['mindboxDeviceUUID'] : ''; if (!empty($emailValue)) { $apiUrl = 'https://api.mindbox.ru/v3/operations/async?endpointId={Идентификатор точки интеграции}&operation={Операция}'; if (!empty($deviceUUId)) { $apiUrl .= '&deviceUUID=' . $deviceUUId; } $data = [ 'customer' => [ 'email' => $emailValue, 'subscriptions' => [ [ 'brand' => '{Название бренда в системе}', 'pointOfContact' => 'Email', 'topic' => '{Название рассылки в системе}', ], ] ] ]; $ch = curl_init( $apiUrl ); $payload = json_encode($data); curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload ); curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $result = curl_exec($ch); curl_close($ch); } return true;
- Добавить в подвал сайта следующий код:
<script> function getCookie(name) { let matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } </script> <script> mindbox = window.mindbox || function() { mindbox.queue.push(arguments); }; mindbox.queue = mindbox.queue || []; mindbox('create', { endpointId: '{Идентификатор точки интеграции}', deviceUUID: getCookie('mindboxDeviceUUID') }); </script> <script src="https://api.mindbox.ru/scripts/v1/tracker.js">