Отмена создания заказа, показ сообщения

Добрый день. На сайте есть два типа пользователей, физ лица и юр лица. Юр лица не могут оформлять заказы в привычном виде, у них все только через запросы к менеджерам. А вот физ лица могут спокойно оформить заказ (выбрать товар, добавить его в корзину, оплатить). А так же любой неавторизованный пользователь тоже по умолчанию физ лицо. Но вот если пользователь уже зарегистрирован как юр лицо, но не авторизирован оформляет заказ со своим email — он должен получить ошибку, и заказ не должен создаться. Для этой цели я так понял можно использовать плагин, повесив его на событие msOnBeforeCreateOrder. Вопросов всего два, как из плагина добраться до переменных корзины? конкретно до поля email, и как остановить оформление заказа, с выдачей пользователю на jGrowl ошибки?
Спасибо!
Николай
24 мая 2016, 07:42
modx.pro
1 191
0

Комментарии: 1

Николай
24 мая 2016, 21:45
0
К сожалению так и не смог разобраться. Если вдруг кто то столкнется с такой же проблемой — вот костыль:
в файле /core/components/minishop2/model/minishop2/msorderhandler.class.php

после:
$response = $this->ms2->invokeEvent('msOnBeforeCreateOrder', array(
			'msOrder' => $order,
			'order' => $this
		));
добавляем:
$user = $this->modx->getObject('modUser', $user_id);
		$sellerss = in_array('Корпоративный пользователь', $user->getUserGroupNames());
		if ($sellerss) {
			return $this->error("Для оформления заказа как физическое лицо вам необходимо использовать другой E-Mail!");
		}
И не забываем, что после обновления версии ms все это затрется.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1