Как сделать необязательным поле email в miniShop2?
Всем привет!
Я уже несколько раз использовал miniShop2 в своих сайтах, но сейчас первый раз использую корзину и оформление заказа.
Столкнулся с тем, что заказ привязывается к пользователю MODx, привязывание идет по email (это делает метод getCustomerId в основном классе miniShop).
А у меня магазин специфичный, заказы редкие, у половины клиентов нет email, это вообще не обязательное поле.
Я сейчас сижу и думаю, в принципе меня наверное устроило бы изменить механизм работы метода getCustomerId, что бы он пользователя генерил не по email, а каждый раз просто нового, в качестве логина используя к примеру текущее время.
Как красиво сделать email необязательным полем? Без правки исходников.
Я уже несколько раз использовал miniShop2 в своих сайтах, но сейчас первый раз использую корзину и оформление заказа.
Столкнулся с тем, что заказ привязывается к пользователю MODx, привязывание идет по email (это делает метод getCustomerId в основном классе miniShop).
А у меня магазин специфичный, заказы редкие, у половины клиентов нет email, это вообще не обязательное поле.
Я сейчас сижу и думаю, в принципе меня наверное устроило бы изменить механизм работы метода getCustomerId, что бы он пользователя генерил не по email, а каждый раз просто нового, в качестве логина используя к примеру текущее время.
Как красиво сделать email необязательным полем? Без правки исходников.
Комментарии: 23
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Ну и учти, что сегодня-завтра выйдет личный кабинет для покупателей MS2 — там тоже все через email. Можно будет установить на любой существующий магазин, и любой покупатель сможет войти и посмотреть свои старые заказы.
Юзеры со случайными email такой возможности иметь не будут.
В целом я уже решил вопрос. Я отнаследовался от msOrderHandler, скопировал в мой класс метод submit, убрал в нем из обязательных полей email, и перенес модернизированную функцию getCustomerId в него же.
НУ а магазины бывают разные, товары специфические. У меня например 1 пользователь с вероятностью 99,99% совершит только 1 покупку.
Василий, очень прошу, помоги отключить обязательную проверку почту. Я посмотрел и minishop2.class.php, и msorderhandler.class.php, но для меня это все пока очень сложно.
1. В системной настройке ms2_order_handler_class указываем myOrderHandler
2. Создаем файл core/components/minishop2/custom/order/myOrderHandler.class.php
3. В него код:
Это один из вариантов. Мы просто при отправке заказа, если пользователь не указал почту, генерируем случайный email.
Можешь посмотреть исходный msOrderHandler и переопределить в нем другой метод, например, где идет проверка email.
То, что нужно.
ПашокА сейчас да, насколько я понял, этот вариант, под которым вы отписались — не актуален.
Пашоккак-то оставить поле email незаполненным при оформлении заказа?