{"id":233035,"date":"2023-02-03T09:29:00","date_gmt":"2023-02-03T06:29:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233035"},"modified":"2023-02-03T09:29:26","modified_gmt":"2023-02-03T06:29:26","slug":"jak-sprawdzic-czy-jeden-lub-wiecej-uzytkownikow-jest-zalogowanych-przy-uzyciu-plikow-cookie-w-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-sprawdzic-czy-jeden-lub-wiecej-uzytkownikow-jest-zalogowanych-przy-uzyciu-plikow-cookie-w-wordpress\/","title":{"rendered":"Jak sprawdzi\u0107, czy jeden lub wi\u0119cej u\u017cytkownik\u00f3w jest zalogowanych przy u\u017cyciu plik\u00f3w cookie w WordPress?"},"content":{"rendered":"<p><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/samouczek-dotyczacy-wtyczki-wordpress-jak-napisac-pierwsza-wtyczke\/\" title=\"WordPress\">WordPress<\/a> udost\u0119pnia interfejs API <strong>is_user_logged_in()<\/strong> do sprawdzania, czy kt\u00f3rykolwiek u\u017cytkownik si\u0119 loguje, ale niestety nie jest on bezpo\u015brednio dost\u0119pny podczas pisania <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\">wtyczek<\/a>, np. Wtyczki s\u0105 \u0142adowane przed <strong>pluggable.php<\/strong>, gdzie <strong>zdefiniowano is_user_logged_in()<\/strong>.<\/p>\n<p>Z implementacji <strong>is_user_logged_in()<\/strong> wida\u0107, \u017ce jest to:<\/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>Mo\u017cemy wi\u0119c zmieni\u0107 funkcj\u0119, aby sprawdzi\u0107, czy zalogowa\u0142 si\u0119 okre\u015blony u\u017cytkownik.<\/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>Jednak podstawowa funkcja <strong>wp_get_current_user<\/strong> jest nadal zdefiniowana w pliku <strong>pluggable.php<\/strong>. Poni\u017cej zaimplementowano funkcj\u0119, kt\u00f3ra pobiera tablic\u0119 dozwolonych nazw u\u017cytkownik\u00f3w i zwraca warto\u015b\u0107 true, je\u015bli zalogowa\u0142a si\u0119 dowolna nazwa u\u017cytkownika.<\/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>Mo\u017cesz bezpiecznie korzysta\u0107 z tej funkcji w dowolnym miejscu, nawet bez \u015brodowiska WP. Przyk\u0142adowe zastosowanie to:<\/p>\n<pre><code>if (allowedUsersLoggedIn(array(\"helloacm\", \"steakovercooked\")) {\n\u00a0 \/\/ code that only allowed users run\n}<\/code><\/pre>\n<p>Zasad\u0105 tej funkcji jest sprawdzanie COOKIE pod k\u0105tem okre\u015blonego ci\u0105gu, gdy zalogowani s\u0105 uprawnieni u\u017cytkownicy.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak sprawdzi\u0107, czy jeden lub wi\u0119cej u\u017cytkownik\u00f3w jest zalogowanych przy u\u017cyciu plik\u00f3w cookie w 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":[721,897,805,836,845,866],"tags":[1169],"class_list":["post-233035","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-php-7","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=233035"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233035\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224779"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233035"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233035"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}