{"id":4341,"date":"2016-09-12T00:00:00","date_gmt":"2016-09-12T03:00:00","guid":{"rendered":"https:\/\/www.mxcursos.com\/blog\/?p=4341"},"modified":"2019-03-16T03:00:53","modified_gmt":"2019-03-16T06:00:53","slug":"redirecionar-usuario-no-wordpress","status":"publish","type":"post","link":"https:\/\/www.mxcursos.com\/blog\/redirecionar-usuario-no-wordpress\/","title":{"rendered":"WordPress &#8211; Redirecionando usu\u00e1rios para uma p\u00e1gina espec\u00edfica"},"content":{"rendered":"<p>No\u00a0WordPress existem <a href=\"https:\/\/www.mxcursos.com\/blog\/wordpress-entenda-os-privilegios-de-cada-funcao-de-usuarios\/\">n\u00edveis ou privil\u00e9gios de usu\u00e1rios<\/a>, como Administrador, Editor, Autor, etc. Isso \u00e9 muito \u00fatil para definir responsabilidades e permiss\u00f5es distintas ao usu\u00e1rio.<\/p>\n<p>Ao\u00a0utilizamos os n\u00edveis de acesso do WordPress, muitas vezes queremos criar algo personalizado para cada n\u00edvel e redirecionar para essas p\u00e1ginas espec\u00edficas quando for logar no WordPress.<\/p>\n<p>Podemos realizar essa tarefa de uma forma bem simples.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-4629 size-medium\" src=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress-600x338.jpg\" alt=\"WordPress\" width=\"600\" height=\"338\" srcset=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress-600x338.jpg 600w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress-768x432.jpg 768w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress-1500x844.jpg 1500w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress-740x416.jpg 740w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress-24x14.jpg 24w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/09\/WordPress.jpg 1920w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>Suponhamos\u00a0que voc\u00ea tenha criado\u00a0uma p\u00e1gina para os tipos de usu\u00e1rios inscritos e autores.<\/p>\n<p>No arquivo <em>functions.php<\/em>\u00a0do tema vamos adicionar o nosso c\u00f3digo que ser\u00e1 uma fun\u00e7\u00e3o.\u00a0Vamos adicion\u00e1-lo\u00a0no\u00a0<em>add_filter<\/em><strong>\u00a0<\/strong>para substituir o valor padr\u00e3o dele, que ser\u00e1 para onde ser\u00e1 redirecionado quando o usu\u00e1rio realizar o login.<\/p>\n<p><strong>Update &#8211; 02\/10\/2017<\/strong><\/p>\n<p><del>Para realizar a verifica\u00e7\u00e3o, utilizaremos a fun\u00e7\u00e3o\u00a0<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/current_user_can\" target=\"_blank\" rel=\"noopener noreferrer\"><em>current_user_can<\/em> <\/a>do WordPress, com o qual\u00a0testaremos se ele pertence a algum n\u00edvel de acesso ou n\u00e3o.<\/del><\/p>\n<pre class=\"lang:php decode:true\">\/**\r\nfunction custom_redirect_level_user() {\r\n    if (current_user_can('subscriber')) {\r\n        return home_url('\/inscrito');\r\n    }\r\n    if (current_user_can('author')) {\r\n       return home_url('\/autor');\r\n    }\r\n}\r\nadd_filter('login_redirect', 'custom_redirect_level_user');\r\n**\/<\/pre>\n<p><del>Explica\u00e7\u00e3o do c\u00f3digo acima.<\/del><\/p>\n<ol class=\"list-tutorial\">\n<li><del>Definimos uma fun\u00e7\u00e3o com nome de <em>custom_redirect_level_user;<\/em><\/del><\/li>\n<li><del>Com if, utilizamos a fun\u00e7\u00e3o <em>current_user_can<\/em>\u00a0e passamos o\u00a0n\u00edvel de usu\u00e1rio, que no caso \u00e9 do assinante (subscriber);<\/del><\/li>\n<li><del>Se for verdade\u00a0(o usu\u00e1rio \u00e9 do n\u00edvel assinante), ele retorna a url para uma p\u00e1gina criada no exemplo a p\u00e1gina inscrito;<\/del><\/li>\n<li><del>Fecha o primeiro if;<\/del><\/li>\n<li><del>Abre um novo if para realizar o mesmo teste apenas passando um outro n\u00edvel, no caso do autor (author);<\/del><\/li>\n<li><del>Retorna a url para p\u00e1gina autor do nosso exemplo;<\/del><\/li>\n<li><del>Fecha o segundo if;<\/del><\/li>\n<li><del>Fecha\u00a0a fun\u00e7\u00e3o\u00a0<em>custom_redirect_level_user;<\/em><\/del><\/li>\n<li><del>Adiciona fun\u00e7\u00e3o que criamos no filtro <em>login_redirect;<\/em><\/del><\/li>\n<\/ol>\n<pre class=\"lang:php decode:true\">function custom_redirect_level_user( $redirect_to, $requested_redirect_to, $user) {\r\n\tif ( isset( $user-&gt;roles ) &amp;&amp; is_array( $user-&gt;roles ) ) {\r\n\t\tif ( in_array( 'subscriber', $user-&gt;roles ) ) {\r\n\t\t\t$redirect_to = home_url('\/inscrito');\r\n\t\t}\r\n\t\tif ( in_array( 'author', $user-&gt;roles ) ) {\r\n\t\t\t$redirect_to = home_url('\/autor');\r\n\t\t}\r\n\t}\r\n   return  $redirect_to;\r\n}\r\nadd_filter('login_redirect', 'custom_redirect_level_user', 10,3);<\/pre>\n<ol>\n<li>Define a fun\u00e7\u00e3o\u00a0<strong>custom_redirect_level_user<\/strong>, que recebe 3 par\u00e2metros: o primeiro do redirecionamento, segundo o redirecionamento passado por par\u00e2metro, e terceiro o objeto <strong>WP_User<\/strong> ou <strong>WP_Error<\/strong><\/li>\n<li>Verifica se existe as permiss\u00f5es desse usu\u00e1rio, porque pode retornar o <strong>WP_Error<\/strong>;<\/li>\n<li>Verifica se tem permiss\u00e3o <strong>subscriber<\/strong>;<\/li>\n<li>Se tiver, define a vari\u00e1vel <strong>$redirect_to<\/strong> para redirecionar para uma \u00e1rea especifica;<\/li>\n<li>Fecha o <strong>if<\/strong> da condi\u00e7\u00e3o da permiss\u00e3o <strong>subscriber<\/strong>;<\/li>\n<li>Verifica se tem permiss\u00e3o de <strong>author<\/strong>;<\/li>\n<li>Se tiver, define a vari\u00e1vel <strong>$redirect_to<\/strong> para redirecionar para uma \u00e1rea especifica;<\/li>\n<li>Fecha o <strong>if<\/strong> da condi\u00e7\u00e3o da permiss\u00e3o author;<\/li>\n<li>Fechar o <strong>if<\/strong> para verificar se existem permiss\u00f5es;<\/li>\n<li>Retorna a vari\u00e1vel\u00a0<strong>$redirect_to;<\/strong><\/li>\n<li>Fecha if da fun\u00e7\u00e3o\u00a0<strong>custom_redirect_level_user;<\/strong><\/li>\n<li>Adicione ao <strong>add_filter<\/strong>, o gancho <strong>login_redirect<\/strong>, a fun\u00e7\u00e3o que criamos, o n\u00edvel de prioridade de execu\u00e7\u00e3o, e quantidade de par\u00e2metros que a fun\u00e7\u00e3o que criarmos ir\u00e1 receber.<\/li>\n<\/ol>\n<p>Dessa forma, quando o usu\u00e1rio logar em nossa p\u00e1gina, ser\u00e1 redirecionado para a p\u00e1gina que informamos de acordo com o n\u00edvel do usu\u00e1rio.<\/p>\n<p>Gostou do artigo? Deixe seu coment\u00e1rio e compartilhe.<\/p>\n<p>Um abra\u00e7o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No\u00a0WordPress existem n\u00edveis ou privil\u00e9gios de usu\u00e1rios, como Administrador, Editor, Autor, etc. Isso \u00e9 muito \u00fatil para definir responsabilidades e permiss\u00f5es distintas ao usu\u00e1rio. Ao\u00a0utilizamos os n\u00edveis de acesso do WordPress, muitas vezes queremos criar algo personalizado para cada n\u00edvel e redirecionar para essas p\u00e1ginas espec\u00edficas quando for logar no WordPress. Podemos realizar essa tarefa [&hellip;]<\/p>\n","protected":false},"author":67,"featured_media":4628,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[291],"tags":[],"class_list":["post-4341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"_links":{"self":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/4341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/comments?post=4341"}],"version-history":[{"count":0,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/4341\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media\/4628"}],"wp:attachment":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media?parent=4341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/categories?post=4341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/tags?post=4341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}