Как изменить роли WooCommerce при входе в систему? - PullRequest
0 голосов
/ 19 сентября 2019

Я работаю на оптовом сайте и хочу, чтобы сайт автоматически менял роли пользователя на оптового клиента после входа в систему.Это позволит клиентам увидеть оптовые цены.Я настроил этот код (ниже) и добавил его в плагин Code Snippet, но, похоже, он не работает.Может ли кто-нибудь помочь мне увидеть, что мне не хватает?


    function uiwc_change_role()
    {
        // get WP_user object
        $user = wp_get_current_user();

        // if the this is a registered user and this user is not an admin
        if (false !== $user && !user_can($user, 'administrator')) {

            //set the new role to our customer
            $user->set_role('wholesale-customer');
        }
    }
    add_action('wp_login', 'uiwc_change_role', 100, 0);

Большое спасибо за любую помощь, которую вы можете оказать!

1 Ответ

0 голосов
/ 20 сентября 2019

Я не уверен, связана ли проблема с хуком, который вы использовали, но я изменил ваш код с помощью хука "wp_footer".Я предполагаю, что вы уже создали роль пользователя с именем "оптовый покупатель".

function uiwc_change_role()
{
    // get WP_user object
    $user = wp_get_current_user();
    $role = $user->roles;

    // if the this is a registered user and this user is not an admin
    if (is_user_logged_in() && !user_can($user, 'administrator') && !in_array('wholesale-customer', $role)) {

        //set the new role to our customer
        $user->set_role('wholesale-customer');
    }
}
add_action('wp_footer', 'uiwc_change_role');

Проверено и работает.Я надеюсь, что это поможет вам.Хорошего дня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...