{"id":233018,"date":"2023-02-03T09:59:00","date_gmt":"2023-02-03T06:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233018"},"modified":"2023-02-03T09:59:27","modified_gmt":"2023-02-03T06:59:27","slug":"como-verificar-si-uno-o-mas-usuarios-han-iniciado-sesion-usando-una-cookie-en-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/como-verificar-si-uno-o-mas-usuarios-han-iniciado-sesion-usando-una-cookie-en-wordpress\/","title":{"rendered":"\u00bfC\u00f3mo verificar si uno o m\u00e1s usuarios han iniciado sesi\u00f3n usando una cookie en WordPress?"},"content":{"rendered":"<p><a href=\"https:\/\/wordpress.mediadoma.com\/es\/tutorial-del-complemento-de-wordpress-como-escribir-el-primer-complemento\/\" title=\"WordPress\">WordPress<\/a> proporciona una API <strong>is_user_logged_in()<\/strong> para verificar si alg\u00fan usuario est\u00e1 iniciando sesi\u00f3n, pero desafortunadamente, no est\u00e1 disponible directamente cuando escribe <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\">complementos<\/a>, por ejemplo, los complementos se cargan antes de <strong>pluggable.php<\/strong>, que es donde se define <strong>is_user_logged_in()<\/strong>.<\/p>\n<p>De la implementaci\u00f3n de <strong>is_user_logged_in()<\/strong> puede ver que es:<\/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>Entonces, podemos modificar la funci\u00f3n para verificar si un usuario espec\u00edfico ha iniciado sesi\u00f3n.<\/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>Sin embargo, la funci\u00f3n central <strong>wp_get_current_user<\/strong> todav\u00eda est\u00e1 definida en <strong>pluggable.php<\/strong>. Lo siguiente implementa una funci\u00f3n que toma una matriz de nombres de usuario permitidos y devuelve verdadero si alg\u00fan nombre de usuario permitido ha iniciado sesi\u00f3n.<\/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>Puede utilizar esta funci\u00f3n de forma segura en cualquier lugar, incluso sin el entorno WP. El uso de la muestra ser\u00eda:<\/p>\n<pre><code>if (allowedUsersLoggedIn(array(\"helloacm\", \"steakovercooked\")) {\n\u00a0 \/\/ code that only allowed users run\n}<\/code><\/pre>\n<p>El principio de esta funci\u00f3n es verificar la COOKIE para la cadena especificada cuando los usuarios autorizados inician sesi\u00f3n.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo verificar si uno o m\u00e1s usuarios han iniciado sesi\u00f3n usando una cookie en 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":[892,716,831,800,840,861],"tags":[1172],"class_list":["post-233018","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-guia-para-principiantes","category-php-2","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=233018"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233018\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/224779"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}