Статьи

Создание простого CRM в WordPress: ограничение / скрытие пунктов меню

Мы искали, как создать простую систему CRM в WordPress. В последней части этой серии мы добавили код в наш плагин, который позволял нам искать наши контакты на основе данных, хранящихся в расширенных настраиваемых полях.

Сегодня мы расскажем, как ограничить доступ к пунктам меню администрирования WordPress.

WordPress использует концепцию ролей, где роль может быть назначена пользователю WordPress. Эта роль определяет, что пользователь может и не может делать.

По умолчанию WordPress имеет шесть ролей:

  • Супер Админ
  • администратор
  • редактор
  • автор
  • участник
  • подписчик

update_themes , которые имеет Роль, называются Возможностями, а WordPress предоставляет множество различных возможностей (например, install_plugins , update_themes , edit_pages и т. Д.). Если вы заинтересованы в том, чтобы увидеть полный список возможностей на основе ролей, см. Эту страницу кодекса WordPress .

Когда мы зарегистрировали наш пользовательский тип публикации контактов в части 1 этой серии, мы определили capability_type для post . Это означает, что возможности чтения, редактирования и удаления для контактов такие же, как и для сообщений. В зависимости от роли пользователя это дает пользователю следующий доступ к нашему типу пользовательской записи контактов:

возможность Супер Админ администратор редактор автор участник подписчик
edit_others_posts да да да
delete_others_posts да да да
delete_private_posts да да да
edit_private_posts да да да
read_private_posts да да да
edit_published_posts да да да да
publish_posts да да да да
delete_published_posts да да да да
edit_posts да да да да да
delete_posts да да да да да

Исходя из вышеперечисленных возможностей, если мы хотим, чтобы пользователи могли добавлять, редактировать и удалять все контакты (включая контакты, созданные другими пользователями), нам необходимо использовать роль редактора. Давайте продолжим и создадим нового пользователя WordPress с этой ролью:

  1. Перейдите к « Пользователи»> «Добавить новый» в меню администрирования WordPress.
  2. Заполните поля имени пользователя, электронной почты и пароля.
  3. Установите роль пользователя для редактора .
  4. Нажмите Добавить нового пользователя .

Снимок экрана 2014-12-30 в 124335

Теперь давайте выйдем из WordPress и войдем как наш новый редактор. Вы увидите, что в меню администрирования WordPress меньше опций, и он включает в себя наш пользовательский тип публикации контактов:

Администратор сравнения меню слева и редактор справа

Однако вы можете только захотеть, чтобы пользователи могли просматривать контакты других пользователей, не имея возможности редактировать или удалять их. Мы можем добиться этого, используя роль Author, поскольку у этой роли нет edit_others_posts или delete_others_posts (см. Таблицу выше).

Создайте своего пользователя WordPress таким же образом, как мы это делали для редактора, на этот раз выбрав роль автора.

Если вы войдете в систему как Автор, снова появится меньше пунктов меню администрирования WordPress:

Когда мы просматриваем наши контакты, вы увидите все другие контакты, созданные другими пользователями WordPress, однако мы не можем их редактировать или удалять:

Пользовательский тип записи контактов при просмотре в качестве автора

Идите вперед и добавьте новый контакт. После этого нажмите « Все контакты» в меню администрирования WordPress. Вместо просмотра всех контактов, созданных другими пользователями WordPress, теперь вы увидите созданные вами контакты, которые вы можете редактировать и удалять:

Просмотр собственных контактов авторов в WordPress

Мы по-прежнему можем просматривать контакты других пользователей, щелкнув « Все» над таблицей WordPress:

Как получить доступ ко всем контактам в WordPress

В следующей статье мы собираемся дополнительно ограничить функциональность администрирования WordPress для выбранных пользователей, предоставив им доступ только к контактам CRM.