Уважаемые коллеги,
подскажите кто может пожалуйста.
На сайте должен быть реализован следующий функционал: Некий контент, где часть информации доступна всем, а часть доступна только после покупки доступа (причем доступ к нодам есть у всех, а некоторые куски нод только тем у кого есть доступ).
На сайте используется Drupal 8 Commerce 2. Дополнительно установлены модули Permissions by Term Rules.
Для покупки доступа созданы 2 продукта.
- Продукт 1: после покупки продукта пользователю должна присваиваться роль Premium.
- Продукт 2: после покупки продукта пользователю должен предоставляться доступ к термину (см. на изображении PERMISSIONS - Allowed users ).
Подскажите пожалуйста, как настроить правила описанные для продуктов 1 и 2.
Или может у кого то есть опыт как реализовать требуемую функциональность другим путем.
Вложение | Размер |
---|---|
permissions_by_term.png | 29.5 КБ |
Комментарии
"а некоторые куски нод только тем у кого есть доступ" - поподробнее пожалуйста
Т.е. не только цена купить а еще что-то? Или цена другая для премиум пользователя?
Речь идет об обучающих курсах. Есть два типа контента. Один это описание курса, а второй это уроки прикрепленные к описанию курса. Каждый урок состоит из описания, embed video и pdf файла.
Описание курса и описание всех уроков курса доступны всем, а вот видео и файл доступны только тем купит доступ к этому курсу (купит доступ к термину) или купит премиум доступ и получит доступ ко всем курсам.
Я не могу понять как с помощью правил, добавить действие, чтобы после покупки товара "X", для термина "X" в поле "Allowed users" добавить покупателя (в примере там уже добавлен пользователь Tinnka) и нужно добавлять всех кто купит доступ к термину.
Rules'ы предоставляют возможность установки роли юзеру.
Просто присваивайте роль после изменения статуса заказа на какой-нибудь, означающий подтверждение оплаты, и согласно настроек термина со скрина - он (юзер) получит доступ к термину.
Это решение для покупки продукта 1, где пользователю после покупки достаточно присвоить роль Premium и он получит доступ к термину, а вот как после покупки товара "X", для термина "X" в поле "Allowed users" добавить покупателя?
А правила не предоставляют доступ к этому полю?
Может и предоставляют, да я никак не могу их найти.. Поэтому и спрашиваю тут..
Печалька, Comerce 2 не работает с правилами..
https://www.chapterthree.com/blog/how-to-register-event-subscriber-drupal8
Готова заплатить за помощь в настройке требуемого функционала.
Эм...
Коммерц не не работает с правилами, а просто в 8ке все сущности "равны", а правила работают с сущностями, и не требуется доп. интеграция..
Но я не могу найти как настроить действие чтобы для термина добавить Allowed users. Вы можете помочь, пожалуйста?
А Вы думали там будет действие из разряда "Добавить Allowed users термину"?
Нет, конечно. Нужно по логике рулзов - загружать сущности, проверять наличие полей у сущности (тем самым давая доступ к этим полям), и только потом уже работать с данными.
И это при условии, что нужное поле будет должным образом правилами поддерживаться.
В данный момент, к сожалению, я не располагаю временем чтоб вычитать все модули и оттестировать на практике.
Если не сильно горит - распишите все подробности, я гляну как выпадет минутка.