Продажа доступа к материалам в Drupal Commerce

В этой статье мы разберемся как организовать платный доступ к определенным разделам сайта на базе Drupal + Commerce

Не давно мене нужно было сделать сайт с платным контентом, доступ к к которому пользователь мог бы получить только после оплаты. Опыта у меня по созданию такого функционала на тот момент не было хотя в теории я понимал, что мне нужно создать в Drupal определенный тип материала к которому нужно запретить доступ для всех ролей (встроенная функция Drupal), а затем создать свою роль которая и будет иметь доступ к данному типу материалов, причем эта новая роль должна быть товаром в интернет магазине. Покопавшись в интернете подробных статей на русском языке я не нашел, но позже я наткнулся на видео от разработчика Drupal Commerce, в котором он рассказывает, как можно продавать доступ к контенту(ролик опубликован в конце статьи), правда видео на английском языке по тому для не знающих языка и для себя в качестве шпаргалки выкладываю подробную инструкцию со скриншотами.

Прежде чем приступить у вас должен быть установлен Drupal и настроенный Commerce, а также нам понадобится следующие модули:

  • Content Access
  • Rules.

если они у вас не установлены скачайте и установите

  1. Создаём тип материала «Premium content» : Структура » Типы содержимого » Добавить тип содержимого (admin/structure/types/add)
Сервера, Web и не только
  1. создаётся роль «premium» : Пользователи » Разрешения » Роли (admin/people/permissions/roles)
Сервера, Web и не только
  1. Вернемся к типу материала «Premium content» и даём роли premium разрешение на просмотр материалов Premium content, после установки модуля Content Access у вас на странице редактирования типа материала (admin/structure/types/manage/premium_content) появиться новая вкладка Контроль доступа отметь на ней галочками пункты как на скриншоте ниже:
Сервера, Web и не только
  1. Создаём товар «Premium role»
Сервера, Web и не только

На этом подготовительные работы закончены переходим к настройке правила Rules

Переходим на страницу Rules: Конфигурация » Процесс » Правила (admin/config/workflow/rules) и нажимаем кнопку Добавить новое правило на открывшейся странице вводим название для правила в поле Реакция на событие выбирете Commerce Order » После обновления существующей commerce order и сохраняем правило

Сервера, Web и не только
После добавления правила приходим к его настройке, в разделе Условия нажмите на кнопку Добавить Условие (condition)
В открывшемся окне из списка выбираем опцию: Order contains a particular product
Сервера, Web и не только
Далее в поле Значение вводим артикул нашего товара(см. пункт 4 этой статьи) и сохраняем Условие
Переходим к настройке действия: нажмите на кнопку Добавить действие(action)
Сервера, Web и не только
В открывшемся окне из списка выбираем опцию: Добавить роль пользователя
Далее в поле Селектор данных выбираем по очередно : commerce-order:owener, в поле Роли выбираем нужную нам роль в данном примере: premium и сохраняем действие(action)
Сервера, Web и не только
После всех настроек должен получиться следующий результат:
Сервера, Web и не только

если у вас такой же результат сохраните изменения и попробуйте заказать товар

Теперь после покупки товара «Premium role», юзеру будет назначена роль premium и он получит доступ к Premium content.

Если нужно ограничить роль по времени скачайте модуль role expire, ставьте бета версию модуля и накатите на него патч

Обещанный в начале статьи видео-ролик от разработчика Drupal Commerce

Во втором видео рассказывается как продавать доступ к определённым нодам, а не к типу материала.

Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Команда RENAME

RENAME что это? Команда RENAME позволяет переименовать файл или каталог.

Команда MD

Команда md позволяет создавать каталог или промежуточные каталоги в указанном

Разработка сайтов
help2site
Алгоритм шифрования base64

Кодировка Base64 используется для преобразования двоичных данных в текстовый формат, который позволяет транспортировать их в средах, которые могут безопасно обрабатывать только текст. Варианты использования —

Серверы и администрирование
help2site
Что такое веб-сервер / базовая теория

Основные понятия. Что такое веб-сервер. На этом занятии мы познакомимся с таким понятием как веб-сервер (web server). Посмотрим, что пишет по этому поводу Wikipedia: Веб-сервер

Серверы и администрирование
help2site
Как установить Apache на Windows

Apache HTTP Server можно запустить на Windows как локальный веб-сервер для разработки и тестирования сайтов. После установки вы сможете открывать сайты через — http://localhost/ а

Windows и Windows Server
help2site
Чистим автозагрузку стандартными средствами

Термин автозагрузка говорит сам за себя, то есть при загрузки системы вместе с ней запускаются и различные программы, установленные на вашем компьютере. Но, например, если

SEO и диагностика сайтов
help2site
Правильно составленное семантическое ядро – это успешный старт для сайта

Семантическое ядро сайта… Это словосочетание, безусловно, знакомо любому, более-менее, опытному вэб-мастеру, любому блоггеру, ведущего свой блог, которые прекрасно знают, что один из наиважнейших этапов при

Разработка сайтов
help2site
Разделы документа в HTML 5.1

Это перевод статьи «Document Outlines in HTML 5.1», опубликованной на bitsofco.de. Оригинальную статью можно прочитать здесь. В стандарте HTML 5.1. есть определённое количество изменений, два из которых

Серверы и администрирование
help2site
Основные команды Linux

Оглавление Системная информация отобразить архитектуру компьютера — arch отобразить используемую версию ядра uname -r показать аппаратные системные компоненты — (SMBIOS / DMI) dmidecode -q вывести