Поля записи данных на обратный звонок

Подскажите новичку где копать? Нужно передавать в мой скрипт данные, которые приходят cs cart при оформлении обратного звонка?

Попробуйте использовать хук
fn_set_hook('call_requests_do_call_request_post', $params, $product_data, $cart, $auth, $result);

Про хук тоже думал, но не могу найти файл отправки по клику((

А можно пл аяксу просто же отправить post?

Можно попробовать использовать пре контроллер
call_requests.php

Попробую, но возникла идея, может, можно обратный звонок конвертировать в заказ? А если клиент не вносит почту, то можно пожставить nomail@no.mail?

То есть смысл в том чтобы скрипт отсылал администратору сообщение? Иначе говоря как то отобразить, что появилась заявка обратного звонка? Через my_change прицепите к хуку index:index блок в дашборде (если pre.tpl - то блок будет самым первым в даше) - в котором выведите результат запроса к таблице обратного звонка с необработанным статусом. Для начала можно прямо из шаблона запрс выполнять, увидите что все правильно работает - в код вынести. Сейчас прошу прощения не могу конкретнее назвать, нет доступа к установке, но ход мыслей такой :slight_smile:

Можно, создайте call_requests.pre.php

<?php

if (!defined('BOOTSTRAP')) { die('Access denied'); }

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($mode == 'request') {
        if (!empty($_REQUEST['call_data']) && empty($_REQUEST['call_data']['email'])) {
            $_REQUEST['call_data']['email'] = 'nomail@no.mail';
        }
    }
    return;
}

(!) Не тестировано

Только вот при таком подходе клиент увидит в заказах еще кучу заказов. Так как email один)

В таком случае, можно поставить или считывание почты из формы или подмена в формат (телефон)@no.mail Сойдет такой вариант, как думаете?

Ну что вы))

$temp_mail = time();
$_REQUEST['call_data']['email'] = $temp_mail.'@no.mail';

Но медь в моем случае, почта будет связана с телефоном клиента и если он сделает повторный заказ , то попадет именно в нужного клиента в CRM

А, тогда да
Рекомендую форматировать телефоны клиентов чтобы они всегда были одинаковыми, потом уже подставлять)

У меня CRM сама парсит и валидирует телефоны. Остался главный вопрос. Куда запихнуть пре контроллер?

В модуль my_changes :slight_smile:

Создайте controllers/frontend/call_requests.pre.php

app/addons/my_changes/controllers/frontend/call_requests.pre.php

Что-то типа

$prefix = preg_replace('/[^0-9]+/', '', $_REQUEST['call_data']['phone']);
$_REQUEST['call_data']['email'] = $prefix . '@no.mail';

(!) Не тестировано

Теперь вообще форма перестала открываться(((
jquery.min.js:5 GET https://lillyshop.pro/index.php?dispatch=call_requests.request&obj_prefix=block&obj_id=793&result_ids=content_call_request_block793&skip_result_ids_check=true&is_ajax=1 500

Увы, не прошло и в заказы не упал звонок

Куда и какой код добавили? Напишите весь код с которым ошибка.

Это нужно добавить после
if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {

$return_url = !empty($_REQUEST['return_url']) ? $_REQUEST['return_url'] : '';

if ($mode == 'request') {

    if (!empty($_REQUEST['call_data'])) {

Разместите здесь весь код пре контроллера

<?php

if (!defined(‘BOOTSTRAP’)) { die(‘Access denied’); }

if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
if ($mode == ‘request’) {
if (!empty(
$prefix = preg_replace(’/[^0-9]+/’, ‘’, $_REQUEST[‘call_data’][‘phone’]);
$_REQUEST[‘call_data’][‘email’] = $prefix . ‘@no.mail’;
}
}
return;
}