Мы искали, как создать простую систему 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 с этой ролью:
- Перейдите к « Пользователи»> «Добавить новый» в меню администрирования WordPress.
- Заполните поля имени пользователя, электронной почты и пароля.
- Установите роль пользователя для редактора .
- Нажмите Добавить нового пользователя .
Теперь давайте выйдем из WordPress и войдем как наш новый редактор. Вы увидите, что в меню администрирования WordPress меньше опций, и он включает в себя наш пользовательский тип публикации контактов:

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

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

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

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

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