Всего 125 675 комментариев

Николай Савин
23 апреля 2021, 16:30
0
Посыл замечен и принят к рассмотрению. Спасибо.
Aleksandr Huz
23 апреля 2021, 16:24
0
Ну а если мы удалим пользователя — мы удалим и информацию об оставленной электронной почте.
Да, это подходит только если почта вообще не нужна.
Наумов Алексей
23 апреля 2021, 16:09
0
Ну да, вот как-то не очень логично, посыл скорее ребятам, кто активно занят с miniShop2 сейчас.
Каждый раз костыли лепить не нравится)))

Ну а если мы удалим пользователя — мы удалим и информацию об оставленной электронной почте.

На мой взгляд было в 10 раз логичнее сохранять и почту и телефон в заказе, а если уже выставлена соответствующая настройка — регистрировать пользователя по этим данным!
Aleksandr Huz
23 апреля 2021, 16:04
0
Согласен, не очень логично, но и не критично.
Ну попадает заказ к одному анониму, ничего страшного, в заказе адрес и номер будет разный. Врятли, менеджеры переходят к пользователю, чтобы посмотреть его контактные данные.

А если это сильно смущает то можно удалять этого же пользователя, если его имя совпадает с почтой
Вешаем плагин на событие: OnUserSave
if($mode == 'new' && $user->get('username') == $user->Profile->get('email')) {
   $user->remove();
}
Но, только если при регистрации почта не используется как логин.

Конечно, это все костыли, и более правильно будет не создавать пользователя, но дать возможность решать это через системную настройку.
Кирилл
23 апреля 2021, 14:57
0
Спс, вопрос решил.
Евгений Шеронов
23 апреля 2021, 14:46
0
Пожалуйста, только тут лучше (float), иначе уже бизнес логика может пострадать))
(int)$_POST['price']
Евгений Шеронов
23 апреля 2021, 13:05
+2
Вроде к каждой статье пишут про безопасность, не?)

$sql = 'SELECT COUNT(id) FROM modxwb_ms2_order_products WHERE product_id = '.$_POST['id'];
Ну это прям призыв, чтобы пришли люди и грохнули сайт без каких-либо сложностей))

$modx->getObject('modResource', $_POST['id']);
И даже так (и вроде когда используется массив) (обсуждали уже где-то здесь) что-угодно можно пропихнуть.

Всегда когда работаем с целыми числами всего лишь нужно добавить (int) перед чем-угодно и спать спокойно.

А это открывает доступ к другим типам инъекций.
<input type="hidden" id="orderid" value="{$.get.msorder}">
Возможно, Fenom что-то там и порежет, но надеяться не стоит.
Евгений Шеронов
23 апреля 2021, 12:54
0
Спасибо!
Теперь по замечаниям.
1) Абсолютный путь в целом там и не нужен, оставлю относительный.
Но ещё более не секьюрно давать кому-то доступ в админку))
Там и без этого никаких проблем получить все системные настройки через Fenom.

2) Поправил, в следующем обновлении уже не должно всплывать.
Наумов Алексей
23 апреля 2021, 12:26
0
Да и вообще, если посмотреть код метода getCustomerId, увидим что:

— если email пустой, то сделаем его в формате «Получатель_заказа@мой сайт.ру». Класс… т.е. первый купивший Алексей зарегистируется на сайте и создаст пользователя с такой почтой, а заказ от второго Алексея внезапно попадет к первому, т.к. почта-то одинаковая…
Ладно, если мы на фронте этого не выводим всего… но в админке то выглядит так, как-будто все эти заказы от одного пользователя!
Кирилл
23 апреля 2021, 12:24
0
Случилась аналогичная ситуация, можно более подробно как решить
Sergey
23 апреля 2021, 12:20
0
Спасибо большое ))
Николай Савин
23 апреля 2021, 12:19
+1
Нет, я тоже затупил. Неверно подсказал. У вас данные хранятся не в заказе, а в адресе, это другая таблица. Нужно добавить ссылку.
$extfld_delivery_shop = $msOrder->Address->get('extfld_delivery_shop');
Sergey
23 апреля 2021, 12:17
0
Спасибо огромное, чет затупил )))
Николай Савин
23 апреля 2021, 12:15
+1
Да нет же
$extfld_delivery_shop = $msOrder->get('extfld_delivery_shop');
Sergey
23 апреля 2021, 12:13
0
У меня в msOrder поле для самовывоза
select id=«delivery_shop» name=«extfld_delivery_shop» value="{$form['extfld_delivery_shop']}" class=«form-control»

Нужно вот так?
$properties = $msOrder->get('properties');
$delshop = $properties['extfld_delivery_shop'];


И просто вывод {$delshop} )?
Артур Шевченко
23 апреля 2021, 12:11
0
Нет.
Артур Шевченко
23 апреля 2021, 10:04
+1
Нет, я не приемлю принцип «сдал и меня нет», я поддерживаю свои проекты. И стараюсь заранее все нюансы у заказчика узнать, чтобы доработок было минимум. Понятно, что потом аппетиты могут у заказчика вырасти, тогда и переделаем. А за то, что опытом делитесь респект!
Алексей Шумаев
23 апреля 2021, 09:58
0
Опыт — сын ошибок трудных (©), делюсь, пока минута есть.
Подзаработать потом, это хорошо; главное, чтобы проект не возвращался на доработку неожиданно, как будет что-то всплывать. А то техдолг накопится и через пару лет работа будет ради работы делаться. Ну или работать по принципу «сдал проект — и меня нет», тоже так себе подход )))