{"id":234159,"date":"2023-02-03T10:04:00","date_gmt":"2023-02-03T07:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234159"},"modified":"2023-02-03T10:04:26","modified_gmt":"2023-02-03T07:04:26","slug":"comment-verifier-si-un-ou-plusieurs-utilisateurs-sont-connectes-a-laide-dun-cookie-dans-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/comment-verifier-si-un-ou-plusieurs-utilisateurs-sont-connectes-a-laide-dun-cookie-dans-wordpress\/","title":{"rendered":"Comment v\u00e9rifier si un ou plusieurs utilisateurs sont connect\u00e9s \u00e0 l&rsquo;aide d&rsquo;un cookie dans WordPress\u00a0?"},"content":{"rendered":"<p><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/tutoriel-plugin-wordpress-comment-ecrire-le-premier-plugin\/\" title=\"WordPress\">WordPress<\/a> fournit une API <strong>is_user_logged_in()<\/strong> pour v\u00e9rifier si un utilisateur est connect\u00e9, mais malheureusement, elle n&rsquo;est pas directement disponible lorsque vous \u00e9crivez des <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>, par exemple les plugins sont charg\u00e9s avant <strong>pluggable.php<\/strong>, o\u00f9 <strong>is_user_logged_in()<\/strong> est d\u00e9fini.<\/p>\n<p>\u00c0 partir de l&rsquo;impl\u00e9mentation de <strong>is_user_logged_in()<\/strong>, vous pouvez voir que c&rsquo;est\u00a0:<\/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>Ainsi, nous pouvons modifier la fonction pour v\u00e9rifier si un utilisateur sp\u00e9cifi\u00e9 s&rsquo;est connect\u00e9.<\/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>Cependant, la fonction principale <strong>wp_get_current_user<\/strong> est toujours d\u00e9finie dans <strong>pluggable.php<\/strong>. Ce qui suit impl\u00e9mente une fonction qui prend un tableau de noms d&rsquo;utilisateur autoris\u00e9s et renvoie true si un nom d&rsquo;utilisateur autoris\u00e9 s&rsquo;est connect\u00e9.<\/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>Vous pouvez utiliser cette fonction en toute s\u00e9curit\u00e9 n&rsquo;importe o\u00f9, m\u00eame sans l&rsquo;environnement WP. L&rsquo;exemple d&rsquo;utilisation serait\u00a0:<\/p>\n<pre><code>if (allowedUsersLoggedIn(array(\"helloacm\", \"steakovercooked\")) {\n\u00a0 \/\/ code that only allowed users run\n}<\/code><\/pre>\n<p>Le principe de cette fonction est de v\u00e9rifier le COOKIE pour la cha\u00eene sp\u00e9cifi\u00e9e lorsque les utilisateurs autoris\u00e9s se sont connect\u00e9s.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comment v\u00e9rifier si un ou plusieurs utilisateurs sont connect\u00e9s \u00e0 l&rsquo;aide d&rsquo;un cookie dans 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":[893,717,832,801,841,862],"tags":[1167],"class_list":["post-234159","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=234159"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234159\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/224779"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}