{"id":228651,"date":"2022-10-26T13:00:00","date_gmt":"2022-10-26T10:00:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228651"},"modified":"2022-11-09T03:38:01","modified_gmt":"2022-11-09T00:38:01","slug":"wordpressi-kasutajate-programmiline-loomine","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-kasutajate-programmiline-loomine\/","title":{"rendered":"WordPressi kasutajate programmiline loomine"},"content":{"rendered":"\n<p>See postitus on teine \u200b\u200bosa seeriast, mille l\u00e4bi t\u00f6\u00f6tan ja mis r\u00e4\u00e4gib WordPressi <a href=\"https:\/\/tommcfarlin.com\/tag\/metadata-association\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">metaandmete \u00fchendusest<\/a> ja selle esimene osa h\u00f5lmab WordPressi kasutajate <a href=\"https:\/\/tommcfarlin.com\/create-a-user-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">programmilise<\/a> loomise protsessi (aga sellest on m\u00f6\u00f6dunud viis aastat!).<\/p>\n<p>Olen selle tegemisest varem r\u00e4\u00e4kinud, kuid asjad muutuvad aja jooksul, kui me kogemusi juurde saame, eks? Ja sellise seeria l\u00e4bit\u00f6\u00f6tamisel on minu arvates abiks n\u00f5uete kogum, mida saame j\u00e4rgida, et simuleerida, mis tunne v\u00f5iks olla, kui see juhtuks reaalses projektis.<\/p>\n<p>Nii et selles konkreetses postituses vaatleme j\u00e4rgmist:<\/p>\n<ol>\n<li>kasutajateabe vastuv\u00f5tmine kindlas andmevormingus,<\/li>\n<li>Tuvastades, millist teavet on vaja kasutaja loomiseks,<\/li>\n<li>Kasutaja loomine,<\/li>\n<li>Veenduge, et meie kood vastaks kodeerimisstandarditele ja loetavusele.<\/li>\n<\/ol>\n<p>See k\u00f5lab palju, kuigi ma ei kavatse sellest pikka postitust teha. See t\u00e4hendab, et kui soovite \u00f5ppida, kuidas seda l\u00e4bi m\u00f5elda v\u00f5i kuidas sellega toime tulla, siis siin me l\u00e4heme.<\/p>\n<h2>WordPressi kasutajate loomine<\/h2>\n<p>Oletame, et keegi \u2013 v\u00f5ib-olla klient v\u00f5i v\u00f5ib-olla isegi lihtsalt sina \u2013 on teave, mida kasutatakse kasutaja loomiseks. See vajab v\u00e4hemalt j\u00e4rgmist teavet:<\/p>\n<ol>\n<li>kasutajanimi,<\/li>\n<li>parool,<\/li>\n<li>meiliaadress.<\/li>\n<\/ol>\n<p>Kasutajanime loomisel eelistan ka e-posti aadressi kasutamist kasutajanimena, sest see on miski, mis on unikaalne peaaegu k\u00f5igile, kes seda kontot kasutavad.<\/p>\n<p>Nii et selle \u00f5petuse jaoks ma kasutan just seda. Mis puutub parooli, siis ma r\u00e4\u00e4gin hetkeks paroolide genereerimisest.<\/p>\n<p>L\u00f5puks v\u00f5ite eeldada, et teie andmed on mis tahes kujul: v\u00f5ib-olla on need JSON-is, v\u00f5ib-olla CSV-vormingus, v\u00f5ib-olla XML-is. Igal juhul peate selle teabe PHP-sse s\u00f5eluma, et saaksite selle teabega h\u00f5lpsalt t\u00f6\u00f6tada.<\/p>\n<p>Selle postituse lihtsamaks muutmiseks eeldan, et meil on \u00fcks kirje ja teave on saadaval massiivina. See ei t\u00e4henda, et see algab massiivist, kuid see t\u00e4hendab, et me paigutame selle l\u00f5puks massiivi.<\/p>\n<h3>1 Teave kasutaja kohta<\/h3>\n<p>Oletame, et meil on isik nimega &quot;Meghan&quot;, kelle me s\u00fcsteemi lisame. Meil \u200b\u200bon meiliaadress ja k\u00f5ik.<\/p>\n<p>N\u00e4idispersoon (muidugi kunstniku renderdamine \ud83d\ude42<\/p>\n<p>Aga see on okei. See on paljaskond, mida me vajame. Nii et v\u00f5tame <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-00-user-information-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selle teabe<\/a> :<\/p>\n<pre><code>&lt;?php\n\n$user_info = array(\n  'email'      =&gt; 'meghan@emaildomain.com',\n  'first_name' =&gt; 'Meghan',\n  'last_name'  =&gt; 'McFarlin',\n);\n<\/code><\/pre>\n<p>Ja muutke see millekski, mida saame kasutada konto loomiseks.<\/p>\n<h3>2 Konto loomine<\/h3>\n<p>Esimene asi, mida peame tegema, on veenduda, et selle e-posti aadressi jaoks pole kasutajat juba olemas. Kui jah, siis tuleme lihtsalt tagasi. V\u00f5imalik, et soovite kuvada <a href=\"https:\/\/code.tutsplus.com\/series\/creating-a-custom-wordpress-messaging-system--cms-1105\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seadete s\u00f5numi<\/a> v\u00f5i muud t\u00fc\u00fcpi teavet, et anda l\u00f5ppkasutajale teada, et te ei loo seda kontot, kuna see on juba olemas.<\/p>\n<p>Kuid see ei kuulu selle postituse ulatusse.<\/p>\n<p>Selle asemel <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-01-user-already-exists-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">naaseme<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/\/ Read the email address - if it's - invalid or the user exists, then return.\n$email = $user_info['email'];\nif (! filter_var( $email, FILTER_VALIDATE_EMAIL) || username_exists( $email)) {\n  return;\n}\n<\/code><\/pre>\n<p>Seej\u00e4rel oletame, et kasutajat pole olemas. Kui ta seda ei tee \u2013 mida ta ei peaks (muidu pole sellel postitusel p\u00f5hjust \ud83d\ude0f) \u2013, siis teeme talle konto.<\/p>\n<p>Selleks vajame tema meiliaadressi ja parooli. \u00d5nneks <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-02-setting-a-password-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">on parooli genereerimine<\/a> lihtne:<\/p>\n<pre><code>&lt;?php\n\n$password = wp_generate_password( 16, false );\n<\/code><\/pre>\n<p>N\u00fc\u00fcd saame v\u00f5tta meiliaadressi ja parooli ning <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-03-creating-the-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">luua kasutajakonto<\/a>.<\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the email and create a password.\n$email    = $user_info['email'];\n$password = wp_generate_password( 12, false );\n\n\/\/ Create the user and set her role.\n$user_id = wp_create_user( $email, $password, $email );\n\n\/\/ Set the user's role (and remove the previous role).\n$user = new WP_User( $user_id );\n$user-&gt;set_role( 'author' );\n<\/code><\/pre>\n<p>Pange t\u00e4hele, et \u00fclalolevas koodis m\u00e4\u00e4rame ka rolli. Selleks tuleb esmalt haarata <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_user\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_User<\/a> eksemplar ja seej\u00e4rel meie $user_id abil m\u00e4\u00e4rata <a href=\"https:\/\/codex.wordpress.org\/Roles_and_Capabilities\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">roll<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167649-61e7a6824dc60.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167649-61e7a6824dc60.png\" alt=\"WordPressi kasutajate programmiline loomine\" ><\/a><\/p>\n<p>Otsustan kasutada <strong>autorit<\/strong>, kuid on ka teisi, mille hulgast saate valida (v\u00f5i kasutada mis tahes andmestruktuuris sisalduvat).<\/p>\n<h4>3 Kas pole enamat?<\/h4>\n<p>Ja sellega peaks teie kasutaja olema loodud. Osa sellest s\u00f5ltub suuresti teie kasutatud konksust, sellest, kuidas olete selle oma protsessis rakendanud, ja viisist, kuidas lubate administraatoril kontosid luua.<\/p>\n<p>See on keerukam teema, mida tahaksin l\u00f5puks \u00fches tulevases postituses k\u00e4sitleda. Et see seeria oleks v\u00f5imalikult vahetu ja lahja, p\u00fc\u00fcan j\u00e4\u00e4da v\u00f5imalikult keskendunud vajalikele p\u00f5hisammudele.<\/p>\n<p>K\u00f5ike muud saab projekti n\u00f5uete kohaselt rakendada v\u00f5i sisustada k\u00f5ige muuga.<\/p>\n<h2>See on lihtsalt konto loomine<\/h2>\n<p>See on siiski vaid WordPressi kasutajate programmiliselt loomise t\u00f6\u00f6tlemine. Tegelikult on see vaid \u00fche kasutaja loomine.<\/p>\n<p>Mitme kasutaja loomiseks eeldage, et teil on mitu massiivi teabega, mille kaudu saate itereerida ja seej\u00e4rel kasutajaid luua. Rakendus on sama, kuigi see erineb igal kontol.<\/p>\n<p>Seda arvestades hakkan homme tegelema postitussisu programmilise loomisega. Ja p\u00e4rast seda r\u00e4\u00e4gime antud kasutaja seostamisest antud postituse sisuga ja sellest, mida me sellega teha saame (ja ka sellest, miks see \u00fcldse oluline oleks).<\/p>\n<h2>Sarja postitused<\/h2>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/wordpress-metadata-association\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi metaandmete assotsiatsioon: kuidas seda teha<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/creating-wordpress-users\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi kasutajate programmiline loomine<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-postituste-tueuebid-abstraktsioon-ueksuste-jaoks\/\" title=\"WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks\">WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-metaandmete-assotsiatsioon-seotud-ueksused\/\" title=\"WordPressi metaandmete assotsiatsioon: seotud \u00fcksused\">WordPressi metaandmete assotsiatsioon: seotud \u00fcksused<\/a><\/li>\n<\/ol>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>See on siiski vaid WordPressi kasutajate programmiliselt loomise t\u00f6\u00f6tlemine. Tegelikult on see vaid \u00fche kasutaja loomine.<\/p>\n","protected":false},"author":1,"featured_media":220605,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,916,863],"tags":[1165],"class_list":["post-228651","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-muud","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=228651"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228651\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/220605"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}