miniShop2. Удаление товара из заказа при msOnSubmitOrder
Здравствуйте.
Нужно удалить товар из заказа в плагине. Ковырял исходники файла msorderhandler.class.php, но не нашёл способа, как можно удалить товар из заказа при событии, например msOnSubmitOrder или msOnBeforeCreateOrder. Может быть есть какой-то способ, используя который возможно это сделать, не прибегая к написанию класса, который будет перехватывать работу с заказом?
Нужно удалить товар из заказа в плагине. Ковырял исходники файла msorderhandler.class.php, но не нашёл способа, как можно удалить товар из заказа при событии, например msOnSubmitOrder или msOnBeforeCreateOrder. Может быть есть какой-то способ, используя который возможно это сделать, не прибегая к написанию класса, который будет перехватывать работу с заказом?
Поблагодарить автора
Отправить деньги
Комментарии: 6
Или решение есть только при событии msOnCreateOrder? То бишь удалять выбранные мной товары из заказа, когда он уже сохранён и объект создан.
В событии msOnSubmitOrder товар нужно удалять из корзины.
А, помоему там в объекте «order» передан класс для работы с корзиной. Спасибо!
Очистить то очистил корзину, когда товары приходится все удалить. А вот как дать пользователю понять, что корзина очистилась по причине того, что все товары, которые он выбрал, уже недоступны, да ещё и перезагрузить страницу, чтобы он не бился головой об стену, так сказать, думая, что корзина то у него полная.
Поясню немного иначе. Скрипт, проверяя определённые условия, удаляет товары из корзины перед оформлением заказа. Может получиться так, что товары придётся удалить все. Следовательно пользователю об этом стоит сообщить, что корзина его пуста в связи с неимением уже на складе товара. А вот как потом обновить страницу? У меня получается либо обновить страницу и оставить пользователя в непонимании, что вообще произошло, либо сообщить юзеру сообщение и оставить страницу «как есть», что тоже плохо. Вот так делема. :)
Поясню немного иначе. Скрипт, проверяя определённые условия, удаляет товары из корзины перед оформлением заказа. Может получиться так, что товары придётся удалить все. Следовательно пользователю об этом стоит сообщить, что корзина его пуста в связи с неимением уже на складе товара. А вот как потом обновить страницу? У меня получается либо обновить страницу и оставить пользователя в непонимании, что вообще произошло, либо сообщить юзеру сообщение и оставить страницу «как есть», что тоже плохо. Вот так делема. :)
Решение пока придумалось костыльное — при очистке корзины выставлять флаг в сессии, после чего принудительно перезагружать страницу. При формировании страницы корзины всегда проверять этот флаг и выводить сообщение, если он установлен. После вывода сообщения, естественно, флаг сбрасывать.
Тогда, если это решается так, то у меня другой вопрос. Вот у меня есть определённая проверка, после которой омжет оказаться так, что в оформленном заказе не останется товаров, следовательно такой заказ юзеру отдавать безсмысленно, как и оставлять его в системе. Я его удаляю. Возвращаю в msorderhandler.class.php сообщение о том, что товары, которые он выбрал уже недоступны для покупки, а как корзину его опустошить из плагина по событию msOnCreateOrder?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.