Suporte » Outros assuntos » Ajuda com o objeto $user->roles; não consigo verificar a condição lógica

  • Resolvido Jorge Luiz

    (@smithexe)


    Boa noite a todos, se puderem me ajudar serei muito grato.

    Utilizo o WordPress e o Woocommerce, estou tentando adicionar conteúdo exclusivo para o nível de usuário ‘revendedor’, mas aparentemente o array está retornando erro.

    Este é o código que estou inserindo no function.php

    // Get the user object.
    $user = get_userdata( $user_id );

    // Get all the user roles as an array.
    $user_roles = $user->roles;

    // Check if the role you’re interested in, is present in the array.
    if ( in_array( ‘revendedor’, $user_roles, true ) ) {
    echo ‘Sou um revendedor’;
    }else{
    echo ‘não encontrou foi nada novamente’;
    }
    }

    O código de erro é:

    Warning: in_array() expects parameter 2 to be array, null given in /home/thermonorte/inforcell/wp-content/themes/storefront-child/functions.php on line 1587

    Alguém poderia me dar uma dica?

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • Moderador Felipe Elia

    (@felipeelia)

    Olá,

    Como você está criando esta variável $user_id que você está passando em get_userdata( $user_id );?

    Criador do tópico Jorge Luiz

    (@smithexe)

    Boa tarde @felipeelia, obrigado por entrar em contato.

    Consegui fazer desta forma:

    global $user_login, $current_user;

    if (is_user_logged_in()) {
    get_currentuserinfo();
    $user_info = get_userdata($current_user->ID);
    if (in_array(‘revendedor’, $user_info->roles)) {
    $items[‘premium-support’] = ‘Premium Support’;
    }
    return $items;
    }

    Mas tem um problema, ele não está localizando o “revendedor” no array, quando insiro ‘administrator’ ele consegue encontrar. Não sei porque o array não consegui identificar.

    A role Revendedor eu criei utilizando o plugin User Role based

    • Esta resposta foi modificada 4 anos, 8 meses atrás por Ralden Souza.
    Criador do tópico Jorge Luiz

    (@smithexe)

    Vou jogar esse array em uma variável e dar um var_dump vamos ver o que ele vai retornar.

    Moderador Felipe Elia

    (@felipeelia)

    Oi,

    Eu assinei para receber o tópico por e-mail, não precisa pingar meu usuário 🙂

    Quando você faz um
    print_r( $user_info->roles );
    o que vem no array?

    E já tentou com outros usuários que só tenham essa função de revendedor?

    Criador do tópico Jorge Luiz

    (@smithexe)

    Felipe conseguimos solucionar o problema, o array está retornando o valor ‘revendar’ kkkk quando fui criar a user role acabei cometendo um erro de digitação.

    Muito Obrigado pela ajuda.

    Moderador Felipe Elia

    (@felipeelia)

    Acontece com todo mundo! haha obrigado por marcar o tópico como resolvido. Precisando é só abrir mais um. Abraços

    Criador do tópico Jorge Luiz

    (@smithexe)

    Vou dedicar um pouco de tempo em ajudar os membros do fórum também, assim todos aprendem.
    Grato!

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • O tópico ‘Ajuda com o objeto $user->roles; não consigo verificar a condição lógica’ está fechado para novas respostas.