Всего 123 801 комментарий

Николай Савин
29 июня 2023, 08:47
+1
Да верно. Мы заменяем хук email. Насчет хука FormItAutoResponder…
В сниппете send_email в список выполняемых хуков нужно просто добавить все нужные хуки.

Чтобы письма отправлялись в разное время, нужно просто перебрать email и каждому поставить свою задачу. Перепишем кусок поставновки задачи вот так:

// Перечисляем какие поля вы заполняете в сниппете, из тех что требуются для отправки писем
$fields = [
    'emailTo',
    'emailSubject',
    'successMessage',
    'fields'
];
$params = [];
foreach($fields as $key) {
    if (!empty($scriptProperties[$key])) {
        $params[$key] = $scriptProperties[$key];
    }
}

if ($task instanceof sTask) {
    $emails = $params['emailTo'];
    unset($params['emailTo']);
    $emails = array_map('trim', explode(',', $emails));
    foreach($emails as $email) {
        $params['emailTo'] = $email;
        // Здесь можете указать через какое время выполнить задание. 

        switch($email) {
            case 'bigboss@mail.ru':
                //   Этому отправляем сразу
                $task->schedule('+1 second', $params);
            case 'smallboss@mail.ru':
                //   Этому отправляем через 5 минут
                $task->schedule('+5 minutes', $params);
            break;
        }  
    }
   
}
Любовь
29 июня 2023, 08:17
0
К сожалению, тоже не помогло…
Александр Быковский
29 июня 2023, 07:49
0
Николай, правильно ли я понимаю, что этими действиями мы заменяем хук email и отправка писем (хуки email + FormItAutoResponder) будут откладываться на заданное время?

А если ситуация такая когда отправляются 3 письма: Заявка ушла админу/менеджеру, непонимание ушло клиенту — это всё мгновенно должно уходить после отправки формы. А третье через 15 минут уходит опять же клиенту.
Как на схеме, как прикрутить этот компонент? Заранее благодарен

Dan
Dan
29 июня 2023, 07:39
0
У fenom, если не ошибаюсь, нет метода получения коллекции TV. Поэтому надо написать свой сниппет. В принципе можете потом переменной присвоить результат сниппета и работать так, как хотели. Условно:
{set $res_five = '!getResourceTVs' | snippet : ['id' => 5]}
Дмитрий Середюк
29 июня 2023, 02:23
0
Если что Вот есть норм сервис, smtp.bz/panel/ там и DKIM через него и Все прочие плюшки подрубаю.
Тодор
29 июня 2023, 01:38
+2
id пусто для события msOnBeforeCreateOrder, так как обект msOrder еще не сохранен на етом етапе. По поводу properties, по умолчанию етот масив пустой, нужно сначала туда что-то положить
Сергей С
28 июня 2023, 23:04
0
Все Всем спасибо. Разобрался. Плагин собирал данные на момент msOnBeforeCreateOrderа тогда еще не присвоен id и properties
Сергей С
28 июня 2023, 22:59
0
это массив весь
[id] =>
[user_id] => 115
[createdon] => 2023-06-28 22:38:43
[updatedon] =>
[receiver] => Тест
[phone] => +79999999999
[country] =>
[index] =>
[region] =>
[city] => Карла Маркса д.26
[metro] =>
[street] =>
[building] =>
[entrance] =>
[floor] =>
[room] =>
[comment] =>
[text_address] =>
[properties] =>
[assembly] => 0
[point] =>
[delivery] => 60
[email] => test@yandex.ru
[payment] => 1
[ms2_action] => order/submit
[ctx] => web
Сергей С
28 июня 2023, 22:31
0
$msOrder->get('num') есть
$msAddress->get('user_id') есть
а
$msAddress->get('id') нету.
$msOrder->get('id') тоже нет
Сергей С
28 июня 2023, 22:27
0
$msAddress->get('id') вот так не хочет.
Николай Савин
28 июня 2023, 22:24
0
Пардон не понял тогда. msAddress совершенно точно имеет id.
Сергей С
28 июня 2023, 22:18
0
так там и так связь $msAddress = $msOrder->getOne('Address'); Или я недопонимаю в каком массиве копать?
Николай Савин
28 июня 2023, 21:55
0
Используйте связь между объектами $msAddress->Order
Сергей С
28 июня 2023, 21:43
0
Пытаюсь. Но нужен id а его не могу получить
Артур Шевченко
28 июня 2023, 21:39
0
Тогда получи самостоятельно объект адреса
Сергей С
28 июня 2023, 21:36
0
Там проблема видимо кроется в том, что $msAddress содержит не все данные. createdon, phone, city,receiver, user_id. Но нет id и properties
Артур Шевченко
28 июня 2023, 20:41
+1
Тут наши полномочия всё
Сергей С
28 июня 2023, 20:39
0
Пробовал не работает да и они в таблице адреса лежат modx_ms2_order_addresses