{"id":229479,"date":"2022-11-03T15:19:00","date_gmt":"2022-11-03T12:19:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229479"},"modified":"2022-11-09T07:16:47","modified_gmt":"2022-11-09T04:16:47","slug":"o-que-sao-caches-de-usuario-do-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/o-que-sao-caches-de-usuario-do-wordpress\/","title":{"rendered":"O que s\u00e3o caches de usu\u00e1rio do WordPress?"},"content":{"rendered":"<p>Se voc\u00ea j\u00e1 trabalhou em um projeto quando precisa trabalhar com cookies de autentica\u00e7\u00e3o do WordPress, provavelmente j\u00e1 se deparou com a fun\u00e7\u00e3o <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_auth_cookie<\/a>. Em resumo, <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">esta fun\u00e7\u00e3o<\/a> :<\/p>\n<blockquote>\n<p>Define o ID de usu\u00e1rio baseado em cookies de autentica\u00e7\u00e3o.<\/p>\n<\/blockquote>\n<p>E quando voc\u00ea usa essa fun\u00e7\u00e3o, est\u00e1 essencialmente criando um cookie que \u00e9 usado para autenticar o usu\u00e1rio para fazer login no WordPress.<\/p>\n<p>Mas se voc\u00ea deseja autenticar um usu\u00e1rio com o WordPress programaticamente, h\u00e1 algumas etapas extras necess\u00e1rias para faz\u00ea-lo corretamente, especialmente se voc\u00ea estiver trabalhando com plugins de cache.<\/p>\n<p>E \u00e9 a\u00ed que os caches de usu\u00e1rio do WordPress entram em a\u00e7\u00e3o.<\/p>\n<h2>Caches de usu\u00e1rio do WordPress<\/h2>\n<p>Al\u00e9m de simplesmente criar um cookie de autentica\u00e7\u00e3o, \u00e9 importante certificar-se de que voc\u00ea est\u00e1 fazendo o seguinte:<\/p>\n<ul>\n<li>limpar os caches do usu\u00e1rio,<\/li>\n<li>livrar-se dos cookies de autentica\u00e7\u00e3o,<\/li>\n<li>definir um usu\u00e1rio atual,<\/li>\n<li>defina o cookie de autentica\u00e7\u00e3o,<\/li>\n<li>atualizar os caches do usu\u00e1rio.<\/li>\n<\/ul>\n<p>Parece uma solu\u00e7\u00e3o complicada, certo? O bom \u00e9 que h\u00e1 um punhado de fun\u00e7\u00f5es (link acima) que tornam isso realmente f\u00e1cil.<\/p>\n<p>O importante a lembrar \u00e9 que voc\u00ea precisa de uma inst\u00e2ncia de WP_User para fazer tudo isso. Como voc\u00ea recupera uma inst\u00e2ncia do usu\u00e1rio depender\u00e1 da funcionalidade do seu plugin.<\/p>\n<p>Ou seja, talvez voc\u00ea consiga recuperar uma refer\u00eancia para um usu\u00e1rio com <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-00-get-user-login-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">um nome de usu\u00e1rio<\/a> :<\/p>\n<pre><code>&lt;?php\n$user = get_user_by( 'login', $username );<\/code><\/pre>\n<p>Ou talvez voc\u00ea tenha um endere\u00e7o de e-mail que <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-01-get-user-email-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">possa usar<\/a> :<\/p>\n<pre><code>&lt;?php\n$user = get_user_by( 'email', $email );<\/code><\/pre>\n<p>Seja qual for o caso, as etapas a seguir devem ter um usu\u00e1rio se voc\u00ea quiser fazer isso corretamente. Dito isso, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-02-authenticate-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">veja como o c\u00f3digo pode ficar<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/\/ Clean out any cookies and cookies for an existing user.\nclean_user_cache( $user-&gt;ID );\nwp_clear_auth_cookie();\n\n\/\/ Set the current user and update the caches.\nwp_set_current_user( $user-&gt;ID );\nwp_set_auth_cookie( $user-&gt;ID, true, false );\nupdate_user_caches( $user );\n<\/code><\/pre>\n<p>E \u00e9 isso! Ent\u00e3o aqui est\u00e1 a descri\u00e7\u00e3o do que cada fun\u00e7\u00e3o faz:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/clean_user_cache\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">clean_user_cache<\/a>. Isso remover\u00e1 todas as informa\u00e7\u00f5es dos usu\u00e1rios em cache.<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_clear_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_clear_auth_cookie<\/a>. Quando um usu\u00e1rio \u00e9 autenticado com o WordPress, h\u00e1 um cookie armazenado. Isso limpar\u00e1 esse cookie de autentica\u00e7\u00e3o.<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_current_user\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_current_user<\/a>. Dada uma inst\u00e2ncia de WP_User, diga ao WordPress para marcar este usu\u00e1rio (permitindo que ele exista no banco de dados)<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_auth_cookie<\/a>. Isso criar\u00e1 o cookie usado para autentica\u00e7\u00e3o do usu\u00e1rio que acabou de ser definido na fun\u00e7\u00e3o anterior.<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/update_user_caches\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">update_user_caches<\/a>. Por fim, isso atualizar\u00e1 os caches do usu\u00e1rio com as informa\u00e7\u00f5es com os novos anos.<\/li>\n<\/ul>\n<p>Quando se trata de trabalhar com o cache de usu\u00e1rios do WordPress, autentica\u00e7\u00e3o e avan\u00e7ar com usu\u00e1rios autenticados programaticamente, essas s\u00e3o as fun\u00e7\u00f5es que devem ser usadas.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se voc\u00ea deseja autenticar um usu\u00e1rio programaticamente, \u00e9 importante entender os caches de usu\u00e1rio do WordPress ao avan\u00e7ar.<\/p>\n","protected":false},"author":1,"featured_media":223663,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,806,846,867],"tags":[1170],"class_list":["post-229479","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-php-8","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=229479"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229479\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/223663"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=229479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=229479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=229479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}