Это для WooCommerce Customer
роли пользователя только:
Здесь у вас есть реквизиты перехватов функций, чтобы сделать то, что вы смотрите. Это позволит пользователю получить доступ к серверу wordpress и публиковать/редактировать сообщения (с этой последней функцией вы должны позаботиться о том, чтобы пользовательская роль имела возможность добавлять/редактировать/публиковать сообщения, поэтому резервное копирование базы данных до).
Вот код:
add_filter('woocommerce_disable_admin_bar', '_wc_disable_admin_bar', 10, 1);
add_filter('woocommerce_prevent_admin_access', '_wc_prevent_admin_access', 10, 1);
function _wc_prevent_admin_access($prevent_admin_access) {
$user_data = get_userdata(get_current_user_id());
$user_roles = $user_data->roles;
$customer_role = get_role('customer');
// For "customer" WooCommerce user role only
if (in_array('customer', $user_roles)) {
// Warning! with this (This will be definitive, so make a database backup)
// Adding 'add_post', 'publish_posts' and 'edit_post' capabilities to customer user role
if (!user_can(get_current_user_id(), 'publish_posts')){
$customer_role->add_cap('create_posts');
$customer_role->add_cap('publish_posts');
$customer_role->add_cap('edit_posts');
}
// Giving access to wordpress backend
return false;
}
}
Кодекс идет в function.php файле Вашего активного ребенка темы (или темы), или же в любом файле плагина.
Этот код протестирован annd works
NB: Абонент не может публиковать сообщения. – helgatheviking