Нашел этот кастомный макрос тут
classes/modules/emarket/__custom.php
Он гигантский, и мне в нем работать надо, чтобы добавить e-mail?
Может где попроще?
public function purchase_check($step=1) {
$debug = false;
$users_inst = cmsController::getInstance()->getModule("users");
if($users_inst->is_auth()) { // проверка на авторизацию пользователя..
$user_id = macros_current_user_id();
//emarket::purchase();
//return 'Пользователь';
}
//emarket::purchase();
$order = $this->getBasketOrder();
if($order instanceof order) {
$order_is_empty = true;
$orderItems = $order->getItems();
foreach($orderItems as $orderItem) {
$element = $orderItem->getItemElement();
if($element instanceof umiHierarchyElement) {
$order_is_empty = false;
$c++;
}
}
if($order->isEmpty() or $order_is_empty) {
//$this->errorNewMessage('Корзина пуста<BR>');
//$this->errorPanic();
return '<B COLOR="red">Корзина пуста</B>';
}
//return $this->purchase();
if ($step == 1) { // вывести доступные способы оплаты
if ($debug) $s.= $step.' шаг ';
$s.= $this->renderPaymentsList2($order, 'default_2');
}
if ($step == 2) { // способ оплаты выбран
//$url = "{$this->pre_lang}/emarket/purchase/";
//$this->redirect($url);
if ($debug) $s.= $step.' шаг ';
$s.= $this->choosePayment2($order).$c.' '.$order->getCustomerId(). ' '. $user_id;
}
if ($step == 3) { // вывести форму для ввода адреса доставки
$payment_id = $order->getValue('payment_id'); // проанализировать ,какой метод оплаты выбрал клиент?
if($payment_id)
$payment = payment::get($payment_id, $order);
if($payment instanceof payment) {
$paymentName = $payment->getCodeName();
if (in_array($paymentName, array('chronopay', 'payonline')) and (!$users_inst->is_auth())) {
$s = 'Данный вид платежа доступен только зарегистрированным пользователям<BR>'.users::login();
if (getServer('HTTP_REFERER')) {
$this->errorNewMessage($s);
$this->errorPanic();
}
else
$this->redirect('/purchase/payment/');
//$s_ref_url = getServer('HTTP_REFERER');
//$this->redirect($s_ref_url);
//if(isset($_SERVER['HTTP_REFERER'])) $this->redirect($_SERVER['HTTP_REFERER']);
}
else {
if ($debug) $s.= $step.' шаг ';
$s.= $this->renderDeliveryAddressesList2($order, 'default2');
}
}
else {
//$s = $step.' шаг '.$this->renderDeliveryAddressesList2($order, 'default2');
// Вид платежа не выбран, вернуть к выбору способа оплаты
$this->redirect('/purchase/payment/');
}
}
if ($step == 4) { // адрес доставки выбран
if ($debug) $s.= $step.' шаг ';
$s.= $this->chooseDeliveryAddress2($order);
}
if ($step == 5) { // вывести форму выбора способа доставки
//$payment_id = $order->getValue('payment_id'); // проанализировать ,какой метод оплаты выбрал клиент?
//if($payment_id)
// $payment = payment::get($payment_id, $order);
//if($payment instanceof payment) {
if ($debug) $s.= $step.' шаг ';
$s.= $this->renderDeliveryList2($order, 'default2');
//}
//else // Вид платежа не выбран, вернуть к выбору способа оплаты
// $this->redirect('/purchase/payment/');
}
if ($step == 6) { // способ доставки выбран
if ($debug) $s.= $step.' шаг ';
$s.= $this->chooseDelivery2($order);
}
}
//return 'Гость'.var_export($order, true);
//return 'Гость'.$s.' '.$paymentName.'<BR>';
return $s;
}
Версия UMI 2.8.1, шаблон TPL.
Письмо приходит к клиенту, но в нем нет полной информации о заказе.
Перечня товара и общей суммы и номера заказа.
ФИО покупателя, адрес доставки и пр.
Как я понял это редактируется /clasess/modules/emarket/_events.php
Что писать в коде и где?
Я нашел такие строчки, если заказ оформлен, статус меняется, то происходит действие.
public function onStatusChanged(iUmiEventPoint $event) {
if($event->getMode() == "after" &&
$event->getParam("old-status-id") != $event->getParam("new-status-id")) {
$order = $event->getRef("order");
$this->notifyOrderStatusChange($order, "status_id");