Изменение цены в зависимости от группы польз.
Здравствуйте. Пытаюсь самостоятельно изучать modx для себя (ну и возможно в будущем применять свои знания). По большей части большую часть проблем решал методом гугления. Но возникла проблема, которую решить еще не смог.
Я подумал о реализации изменения цены в зависимости от группы в которой находится авторизованный пользователь. Условно, если пользователь в группе «group1», то окончательная стоимость заказа умножается на коэффициент (например, 0.9).
Собирая по крупицам информацию, я решил поменять некоторые функции класса «msCartHandler» (add и change). Т.е. умножив окончательную стоимость на переменную коэффициента. (да, наверняка это топорный способ, но я еще только начинаю).
И тут возник вопрос. Каким образом в этих функциях можно получить переменную коэффициента (которая зависит от группы пользователя).
Заранее благодарю за адекватные ответы.
Я подумал о реализации изменения цены в зависимости от группы в которой находится авторизованный пользователь. Условно, если пользователь в группе «group1», то окончательная стоимость заказа умножается на коэффициент (например, 0.9).
Собирая по крупицам информацию, я решил поменять некоторые функции класса «msCartHandler» (add и change). Т.е. умножив окончательную стоимость на переменную коэффициента. (да, наверняка это топорный способ, но я еще только начинаю).
И тут возник вопрос. Каким образом в этих функциях можно получить переменную коэффициента (которая зависит от группы пользователя).
Заранее благодарю за адекватные ответы.
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Примерно таким образом
Суть моего вопроса в том, чтоб узнать способ получения переменной $currentGroup(название группы в которой находится активный пользователь) в классе «msCartHandler».
Группу пользователя можно получить так:
Но на выходе будет массив, групп же может быть несколько.
В виде строки(через запятую, если несколько) можно вот так:
Добавив в начале:
И изменив подсчет таким образом:
Однако, это работает только при первой загрузке. Т.е. когда мы переходим в корзину то видим сразу новую цену, однако если прямо в корзине поменять что-то (например, удалить товар из корзины или изменить количество), то стоимость опять считается без коэффициента.
upd. думал нужно по товарам, оказывается по всей корзине, вообще у корзины похожее решение, смотрите плагины mscart и msorder.
Например, я положил товар в корзину -> перешел в корзину -> получил правильную стоимость -> поменял кол-во товара\удалил какой-то товар -> стоимость поменялась на стоимость без коэффициента.
Я думал о написании какого-то плагина, однако почти полностью не понимаю процесс подключения плагина (в частности — создание контроллера). Скорее всего из-за недостатка опыта, поскольку я еще учусь.