2016-10-08 2 views
1

Возможно, кто-то знает, как связать регистрацию WooCommerce и регистрацию wordpress?Отображение бэкэнда WordPress роли пользователя пользователя WooCommerce

Например, пользователь должен иметь возможность публиковать сообщения и т. Д. Проблема в том, что стандартная панель администратора скрывается при входе пользователя в систему.

ответ

4

Это для 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

3

Вы можете изменить роль по умолчанию для новых пользователей в разделе Настройки> Общие> Новые роли пользователя по умолчанию или, вы можете установить его программно с помощью этого фрагмента (это переопределяет параметр, установленный в настройках WP):

add_filter('pre_option_default_role', function($default_role){ 
    return 'subscriber'; //Change this to fit your needs 
}); 
+1

NB: Абонент не может публиковать сообщения. – helgatheviking

Смежные вопросы