Suporte » Plugins » Redirecionamento de usuários no registro

  • Resolvido BrunoCassoni

    (@brunocassoni)


    Olá pessoal.

    Estou utilizando o buddypress como cadastro de usuários, no código abaixo (bp-custom.php) tem duas opções de registro, autor e editor,(empresa e profissional) quando isso é selecionado ele divide os usuários Autor e Editor, até ai tudo ok, agora preciso redirecionar ao completar o registro, o autor para uma página e o editor para outra, como posso fazer isso?

    add_action('bp_core_activated_user', 'bp_custom_registration_role',10 , 3);
    function bp_custom_registration_role($user_id, $key, $user) {
       $userdata = array();
       $userdata['ID'] = $user_id;
       $userdata['role'] = xprofile_get_field_data('Tipo de Serviço', $user_id);
    
       if ($userdata['role'] == 'Empresa')
          $userdata['role'] = 'autor';
    
       if ($userdata['role'] == 'Profissional')
          $userdata['role'] = 'editor';
    
       //only allow if user role is my_role
       if (($userdata['role'] == "author") or ($userdata['role'] == "editor"))
          wp_update_user($userdata);
    
      }
Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Moderador Leo Baiano

    (@leobaiano)

    Bruno, eu acho que essa action que você está usando bp_core_activated_user age quando o usuário ativa a conta e não quando ele faz o registro.

    Lendo sua função o que acho que está acontecendo é o seguinte. O usuário faz o registro normalmente no WordPress e provavelmente recebe um link, por e-mail, para ativar a conta, ao clicar neste link ele é levado para a página que faz a ativação da conta e chama o filtro. A função recebe o ID do usuário e com isso verifica o grupo do usuário e edita ele.

    Acredito que você pode reescrever a função para adicionar um wp_redirect e redirecionar o usuário de acordo com o grupo que ele faz aprte, ficaria algo assim:

    add_action('bp_core_activated_user', 'bp_custom_registration_role',10 , 3);
    function bp_custom_registration_role($user_id, $key, $user) {
       $userdata = array();
       $userdata['ID'] = $user_id;
       $userdata['role'] = xprofile_get_field_data('Tipo de Serviço', $user_id);
    
       if ($userdata['role'] == 'Empresa') {
          $userdata['role'] = 'autor';
          $redirect_url = 'http://www.......';
    }
    
       if ($userdata['role'] == 'Profissional') {
          $userdata['role'] = 'editor';
    $redirect_url = 'http://www.......';
       }
    
       //only allow if user role is my_role
       if (($userdata['role'] == "author") or ($userdata['role'] == "editor"))
          wp_update_user($userdata);
          wp_redirect( $redirect_url );
      }
    Criador do tópico BrunoCassoni

    (@brunocassoni)

    Leo, agradeço muita tua ajuda cara….realmente é isso, é que eu estava utilizando um plugin “””BP Disable Activation Reloaded”””” para desativar a confirmação por e-mail, e estava utilizando o código abaixo para redirecionar

    if ($_POST['field_44'] == 'Empresa') { bp_core_redirect( site_url( 'plano-para-empresas' ));}

    mas o $redirect_url = acima funcionou perfeitamente!

    muito obrigado!

    Moderador Leo Baiano

    (@leobaiano)

    Opa, que perfeito cara, bom que pude ajudar. Abração e qualquer coisa volta por aqui.

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • O tópico ‘Redirecionamento de usuários no registro’ está fechado para novas respostas.