Подскажите новичку где копать? Нужно передавать в мой скрипт данные, которые приходят 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 - то блок будет самым первым в даше) - в котором выведите результат запроса к таблице обратного звонка с необработанным статусом. Для начала можно прямо из шаблона запрс выполнять, увидите что все правильно работает - в код вынести. Сейчас прошу прощения не могу конкретнее назвать, нет доступа к установке, но ход мыслей такой
Можно, создайте 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
Создайте 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;
}