Как подставить данные покупателя в тему письма заказа менеджеру MINISHOP2
Добрый день, не могу разобраться как подставить данные покупателя (телефон и имя) в тему письма заказа менеджеру.
Покупатель заполняет поля в форме заказа, и мне нужно вытащить поле имя и телефон в тему письма заказа для менеджера.
Мне нужен вот такой шаблон темы письма:
«У вас новый заказ #2111/01 / от [[+имя покупателя]] / тел.: [[+номер телефона]]»
Стандартные [[+address.receiver]] [[+address.phone]] отображаются в теле письма — тут всё ок. Но добавляя их в тему письма — они не работают.
___
Какие есть решения?
Покупатель заполняет поля в форме заказа, и мне нужно вытащить поле имя и телефон в тему письма заказа для менеджера.
Мне нужен вот такой шаблон темы письма:
«У вас новый заказ #2111/01 / от [[+имя покупателя]] / тел.: [[+номер телефона]]»
Стандартные [[+address.receiver]] [[+address.phone]] отображаются в теле письма — тут всё ок. Но добавляя их в тему письма — они не работают.
___
Какие есть решения?
Комментарии: 6
Вы в лексиконе ms2_email_subject_new_manager указывали, верно? Попробуйте просто [[+receiver]] и [[+phone]]
Да, всё верно в этом лексиконе добавляю. Но к сожалению не читается.
Письмо приходит по типу: «У вас новый заказ #2111/35 [[+receiver]] и [[+phone]]»
Пробовал и [[+receiver]] и [[+phone]], и [[+address.phone]] / [[+address.receiver], [[+form.phone]] / [[+form.receiver]], не выводит данные покупателя.
Письмо приходит по типу: «У вас новый заказ #2111/35 [[+receiver]] и [[+phone]]»
Пробовал и [[+receiver]] и [[+phone]], и [[+address.phone]] / [[+address.receiver], [[+form.phone]] / [[+form.receiver]], не выводит данные покупателя.
Забыл сказать самое главное :) — вам нужно переопределить класс минишопа и использовать его, как это сделать -здесь: modx.pro/development/3168
в исходном классе minishop2.class.php есть метод
в исходном классе minishop2.class.php есть метод
public function changeOrderStatus($order_id, $status_id)
переопределив, нужно добавить примерно следующее:$pls = $order->toArray();
$profile = $this->modx->getObject('modUserProfile', array('internalKey' => $order->get('user_id')));
$pls['receiver'] = $profile->get('fullname'); //найдите строки выше и добавьте недостающие плейсхолдеры
C Пользователем получилось, но пытаюсь по подобию пользователя вывести телефон — не получается.
$phone = $this->modx->newObject('modUserProfile', array('mobilephone' => $phone));
$pls['phone'] = $phone->get('mobilephone');
Не могу понять, то-ли логика нарушена, то ли опечатка в коде. Поле телефона стандартное.
Скорее всего и не придет. Там в классе minishop2 переопределить функцию changeOrderStatus
$subject = $this->pdoTools->getChunk('@INLINE '. $status->get('subject_user'), $pls);
И сделать вместо @INLINE, modChunk.
Не уверен, но попробовать стоит.
$subject = $this->pdoTools->getChunk('@INLINE '. $status->get('subject_user'), $pls);
И сделать вместо @INLINE, modChunk.
Не уверен, но попробовать стоит.
Просто @INLINE не отработает [[+address.receiver]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.