{"id":233036,"date":"2023-02-03T09:14:00","date_gmt":"2023-02-03T06:14:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233036"},"modified":"2023-02-03T09:14:31","modified_gmt":"2023-02-03T06:14:31","slug":"como-verificar-se-um-ou-mais-usuarios-estao-logados-usando-cookie-no-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/como-verificar-se-um-ou-mais-usuarios-estao-logados-usando-cookie-no-wordpress\/","title":{"rendered":"Como verificar se um ou mais usu\u00e1rios est\u00e3o logados usando Cookie no WordPress?"},"content":{"rendered":"<p><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/tutorial-do-plugin-wordpress-como-escrever-o-primeiro-plugin\/\" title=\"O WordPress\">O WordPress<\/a> fornece uma API <strong>is_user_logged_in()<\/strong> para verificar se algum usu\u00e1rio est\u00e1 logado, mas infelizmente, ela n\u00e3o est\u00e1 dispon\u00edvel diretamente quando voc\u00ea escreve <a href=\"https:\/\/helloacm.com\/how-to-disable-ftp-login-details-in-wordpress-when-upgrading-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">plugins<\/a>, por exemplo, os plugins s\u00e3o carregados antes do <strong>pluggable.php<\/strong> que \u00e9 onde <strong>is_user_logged_in()<\/strong> \u00e9 definido.<\/p>\n<p>Da implementa\u00e7\u00e3o de <strong>is_user_logged_in()<\/strong> voc\u00ea pode ver que \u00e9:<\/p>\n<pre><code>function is_user_logged_in() {\n\u00a0 \u00a0 $user = wp_get_current_user(); \n\u00a0 \u00a0 return $user-&gt;exists();\n}<\/code><\/pre>\n<p>Assim, podemos alterar a fun\u00e7\u00e3o para verificar se um usu\u00e1rio especificado fez login.<\/p>\n<pre><code>function is_username_logged_in($username) {\n\u00a0 \u00a0 $user = wp_get_current_user(); \n\u00a0 \u00a0 return $user-&gt;user_login == $username; \u00a0\n}<\/code><\/pre>\n<p>No entanto, a fun\u00e7\u00e3o principal <strong>wp_get_current_user<\/strong> ainda est\u00e1 definida em <strong>pluggable.php<\/strong>. O seguinte implementa uma fun\u00e7\u00e3o que recebe uma matriz de nomes de usu\u00e1rio permitidos e retorna true se algum nome de usu\u00e1rio de permiss\u00e3o estiver conectado.<\/p>\n<pre><code>function allowedUsersLoggedIn($allowd_users) {\n\u00a0 \u00a0 if (count($_COOKIE)) {\n\u00a0 \u00a0 \u00a0 \u00a0 foreach ($_COOKIE as $key =&gt; $val) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (substr($key, 0, 19) === \"wordpress_logged_in\") {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (preg_match('\/^('. implode('|', $allowed_users). ')\/', $val, $matches)) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return true;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 }\n\u00a0 \u00a0 return false;\n}<\/code><\/pre>\n<p>Voc\u00ea pode usar esta fun\u00e7\u00e3o com seguran\u00e7a em qualquer lugar, mesmo sem o ambiente WP. O uso da amostra seria:<\/p>\n<pre><code>if (allowedUsersLoggedIn(array(\"helloacm\", \"steakovercooked\")) {\n\u00a0 \/\/ code that only allowed users run\n}<\/code><\/pre>\n<p>O princ\u00edpio desta fun\u00e7\u00e3o \u00e9 verificar o COOKIE para a string especificada quando os usu\u00e1rios permitidos estiverem logados.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como verificar se um ou mais usu\u00e1rios est\u00e3o logados usando Cookie no WordPress?<\/p>\n","protected":false},"author":1,"featured_media":224779,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,837,806,846,867],"tags":[1170],"class_list":["post-233036","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-guia-para-iniciantes","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\/233036","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=233036"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233036\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224779"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=233036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=233036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=233036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}