Хорошо, я ищу лучший способ атаковать это.
Мне очень удобно работать с PHP и создавать собственные типы записей с настраиваемыми метаполями в WordPress.
Вот что я смотрю на это:
- Пользователь регистрируется и устанавливается на подписчика по умолчанию.
- Пользователь просит администратора получить разрешение на пользовательский тип записи.
- Администратор назначает пользователю другое имя разрешения, например «Владелец магазина».
- Пользователь теперь может видеть пользовательский тип сообщения и может сделать запись в этом типе сообщения.
- Пользователь может видеть и редактировать только свой пост.
Мне нужна помощь по следующим вопросам:
- Как создать новую «Роль» под названием «Владелец магазина»,
- Как дать правильное разрешение указанной роли, чтобы видеть и иметь доступ только к пользовательскому типу записи.
- Разрешить только пользователю просматривать и редактировать свои собственные сообщения для этого пользовательского типа сообщения.
В идеале я бы предпочел, чтобы все это было сделано с помощью wp-admin, но я предполагаю, что мне может понадобиться создать внешний интерфейс для этого, чтобы получить конечный контроль, который мне нужен.
Любой вклад с благодарностью.
С уважением
'map_meta_cap' => true
и'capability_type' => 'shopowner'
на мой пользовательский тип сообщения. Я создал новую роль с именемShopOwner
и дал ей возможности read, edit_shopowner, delete_shopowner. Установите пользователя на роль ShopOwner и войдите в систему с этим пользователем. Этот пользователь не может видеть пользовательский тип сообщения. Я что-то пропустил?edit_shopowners
иdelete_shopowners
.edit_shopowner
иdelete_shopowner
мета-возможности, которые никогда не проверяются. Они проверяются, когда кто-то пытается редактировать или удалять определенный элемент, и заканчивают проверкой таких вещей, как «Может ли этот пользователь удалять эти типы элементов? Может ли он удалять только свои или другие? Может ли он удалять опубликованные элементы?» и т. д.Тип записи в реестре имеет параметр, называемый «способности», так что вы можете иметь, например,
http://codex.wordpress.org/Function_Reference/register_post_type
Чтобы создать нового пользователя / роль / возможность, вы можете использовать add_role, add_cap, для простого примера, чтобы вы начали:
источник
Рассматривали ли вы использование Gravity Forms или TDO Mini Forms для обработки фактического представления контента? У каждого из них есть функциональность, которая поможет вам продвинуться вперед в разумной обработке пользовательского контента.
источник
Более простой и эффективный способ достижения этого путем установки плагина под названием «Advance Access Manager», вам не придется писать функциональные возможности, но при этом все еще иметь приличный уровень контроля над пользователями, ролями и тем, что они могут делать. Большинство вещей, которые вы хотите, могут быть достигнуты с помощью этого плагина.
источник