Роль пользователя Wordpress разрешает доступ только к контактной форме 7 - PullRequest
0 голосов
/ 24 октября 2018

У меня есть пользовательская роль, которая называется form_editor.Я хочу, чтобы этот пользователь мог редактировать только контактную форму 7.

Это то, что я имею до сих пор

$form_editor_role = add_role(
    'form_editor',
    __( 'Form Editor' ),
    array(
        'read'         => true,  // true allows this capability
        'edit_posts'   => true,
        'delete_posts' => false, // Use false to explicitly deny
    )
);

$role = get_role( 'form_editor' );
if(!$role->has_cap('cfdb7_access')){
    $role->add_cap( 'cfdb7_access' );
}

Право, нет доступа к сообщениям.У него есть доступ к контактным формам, но нет прав на редактирование.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Взгляните на эту ссылку .Контактная форма 7 использует встроенные пользовательские возможности

wpcf7_edit_contact_form => publish_pages
wpcf7_edit_contact_forms => publish_pages
wpcf7_read_contact_forms => edit_posts
wpcf7_delete_contact_form => publish_pages
wpcf7_manage_integration => manage_options

для разрешения на редактирование, вам следует предоставить возможность publish_pages для вашей новой роли, например:

$role = get_role( 'form_editor' );
$role->add_cap( 'publish_pages' );
0 голосов
/ 19 ноября 2018

попробуйте добавить publish_pages и добавить remove_role('form_editor');, чтобы обновить текущую роль

remove_role('form_editor');
add_role('form_editor', __('Form Editor'), array(
    'read' => true, // true allows this capability
    'edit_posts' => true,
    'delete_posts' => false, // Use false to explicitly deny
    'publish_pages' => true
));

$role = get_role('form_editor');
if (!$role->has_cap('cfdb7_access')) {
    role->add_cap('cfdb7_access');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...