Решение проблемы "User Group not found with key:" в MiniShop2

Добрый день! Столкнулся на днях с проблемой регистрации пользователя в группу, которая указывается в настройках minishop2 в параметре ms2_order_user_groups. При заказе пользователь создавался, но не добавлялся в нужную группу, а в логи сыпалась ошибка "/core/model/modx/moduser.class.php: 675) User Group not found with key: 4", хотя группа с таким id была создана.
Мне помогло следующее решение:
В файле /core/components/minishop2/model/minishop2/minishop2.class.php в строчке 604 добавил приведение типа к integer.
if ($groups = $this->modx->getOption('ms2_order_user_groups', null, false)) {
	$groups = array_map('trim', explode(',', $groups));
	foreach ($groups as $group) {
		$user->joinGroup((integer) $group);
	}
}
Андрей Шевченко
03 апреля 2018, 07:46
modx.pro
986
0

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

Антон Тарасов
12 августа 2018, 12:49
0
Аналогичная история — заметил это после обновления minishop до 2.4.14 — пользователь в группу не назначается, писем не приходит о заказе(все работало до обновления).
[2018-08-12 12:45:05] (ERROR @ /path/to/core/model/modx/moduser.class.php : 675) User Group not found with key: 3
Исправляется явным приведением типа вот здесь(в вашем решении это есть, в оригинальном коде нет):
foreach ($groups as $group) {
		$user->joinGroup((integer) $group);
	}
Занятно, но работает. В группу добавляет, правда, писем все еще не вернулись, разбираюсь дальше.
    Владимир Петрович
    26 августа 2020, 13:24
    0
    Нужно не id группы, а её название.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2