{"id":229422,"date":"2022-10-26T12:45:00","date_gmt":"2022-10-26T09:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229422"},"modified":"2022-11-09T07:03:11","modified_gmt":"2022-11-09T04:03:11","slug":"creazione-programmatica-di-utenti-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/creazione-programmatica-di-utenti-wordpress\/","title":{"rendered":"Creazione programmatica di utenti WordPress"},"content":{"rendered":"\n<p>Questo post \u00e8 la seconda parte di una serie su cui sto lavorando che parla <a href=\"https:\/\/tommcfarlin.com\/tag\/metadata-association\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dell&#8217;Associazione dei metadati<\/a> di WordPress e la prima parte riguarda il processo di creazione <a href=\"https:\/\/tommcfarlin.com\/create-a-user-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">programmatica<\/a> degli \u00a0utenti di WordPress (ma sono passati cinque anni!).<\/p>\n<p>Ho gi\u00e0 parlato di farlo prima, ma le cose cambiano nel tempo man mano che acquisiamo pi\u00f9 esperienza, giusto? E lavorando su una serie come questa, penso che aiuti avere una serie di requisiti che possiamo seguire, per lo meno, per simulare come potrebbe essere che ci\u00f2 accada in un progetto reale.<\/p>\n<p>Quindi, in questo particolare post, daremo un&#8217;occhiata a quanto segue:<\/p>\n<ol>\n<li>Ricezione di informazioni sull&#8217;utente in un particolare formato di dati,<\/li>\n<li>Identificare quali informazioni sono necessarie per creare un utente,<\/li>\n<li>Creazione dell&#8217;utente,<\/li>\n<li>Assicurarsi che il nostro codice sia all&#8217;altezza degli standard di codifica e della leggibilit\u00e0.<\/li>\n<\/ol>\n<p>Sembra molto, anche se non ho intenzione di rendere questo post lungo. Detto questo, se questo \u00e8 qualcosa che stai cercando di imparare a pensare o come affrontare, allora eccoci qui.<\/p>\n<h2>Creazione di utenti WordPress<\/h2>\n<p>Assumiamo che qualcuno \u2013 forse un cliente o forse anche solo te stesso \u2013 come informazioni che verranno utilizzate per creare un utente. Ha bisogno almeno delle seguenti informazioni:<\/p>\n<ol>\n<li>un nome utente,<\/li>\n<li>una password,<\/li>\n<li>un indirizzo email.<\/li>\n<\/ol>\n<p>Quando si tratta di creare un nome utente, tendo a preferire l&#8217;utilizzo dell&#8217;indirizzo e-mail anche come nome utente perch\u00e9 \u00e8 qualcosa che \u00e8 garantito per essere unico per quasi chiunque utilizzi l&#8217;account.<\/p>\n<p>Quindi per questo tutorial, \u00e8 esattamente quello che user\u00f2. Per quanto riguarda la password, parler\u00f2 momentaneamente della generazione della password.<\/p>\n<p>Infine, puoi presumere che i dati che hai siano disponibili in qualsiasi forma: forse \u00e8 in JSON, forse \u00e8 in un CSV, forse \u00e8 in un XML. In ogni caso, sta a te analizzare queste informazioni in PHP in modo da poter lavorare facilmente con le informazioni.<\/p>\n<p>Per semplificare le cose per questo post, presumo che abbiamo un singolo record e avremo le informazioni disponibili in un array. Questo non significa che inizi in un array, ma significa che alla fine lo posizioniamo in un array.<\/p>\n<h3>1 Le informazioni dell&#8217;utente<\/h3>\n<p>Supponiamo di avere una persona di nome &quot;Meghan&quot; che aggiungeremo al sistema. Abbiamo un indirizzo e-mail e basta.<\/p>\n<p>Un esempio di persona (rendering dell&#8217;artista, ovviamente \ud83d\ude42<\/p>\n<p>Ma va bene. Sono le ossa nude di ci\u00f2 di cui abbiamo bisogno. Quindi prendiamo <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-00-user-information-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">queste informazioni<\/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>E trasformalo in qualcosa che possiamo usare per creare un account.<\/p>\n<h3>2 Creazione dell&#8217;account<\/h3>\n<p>La prima cosa che dobbiamo fare \u00e8 assicurarci che non esista gi\u00e0 un utente per questo indirizzo email. Se lo fa, torneremo semplicemente. Potresti voler visualizzare un <a href=\"https:\/\/code.tutsplus.com\/series\/creating-a-custom-wordpress-messaging-system--cms-1105\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">messaggio di impostazione<\/a> o qualche altro tipo di informazione per far sapere all&#8217;utente finale che non stai creando questo account perch\u00e9 esiste gi\u00e0.<\/p>\n<p>Ma questo va oltre lo scopo di questo post.<\/p>\n<p>Invece, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-01-user-already-exists-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">torneremo<\/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>Quindi di nuovo, supponiamo che l&#8217;utente non esista. Se non lo fa \u2013 cosa che non dovrebbe (altrimenti, non c&#8217;\u00e8 motivo per questo post \ud83d\ude0f) \u2013 allora creeremo un account per lei.<\/p>\n<p>Per fare ci\u00f2, abbiamo bisogno del suo indirizzo email e di una password. Fortunatamente, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-02-setting-a-password-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">generare una password<\/a> \u00e8 semplice:<\/p>\n<pre><code>&lt;?php\n\n$password = wp_generate_password( 16, false );\n<\/code><\/pre>\n<p>Quindi ora possiamo prendere l&#8217;indirizzo email e la password e <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d0b38a220778882f23f9de7a69c420e6#file-03-creating-the-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">creare l&#8217;account utente<\/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>Nota nel codice sopra stiamo anche impostando il ruolo. Il modo per farlo \u00e8 prima prendere un&#8217;istanza di <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_user\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_User<\/a> e poi con il nostro $user_id quindi impostare il <a href=\"https:\/\/codex.wordpress.org\/Roles_and_Capabilities\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ruolo<\/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=\"Creazione programmatica di utenti WordPress\" ><\/a><\/p>\n<p>Sto optando per utilizzare <strong>author<\/strong>, ma c&#8217;\u00e8 un insieme di altri da cui puoi scegliere (o utilizzare qualsiasi cosa sia nella tua struttura dati).<\/p>\n<h4>3 Non c&#8217;\u00e8 di pi\u00f9?<\/h4>\n<p>E con questo, il tuo utente dovrebbe essere creato. Parte di questo dipende in gran parte dall&#8217;hook che hai utilizzato, da come lo hai implementato nel tuo processo e dal modo in cui stai consentendo a un amministratore di creare account.<\/p>\n<p>Questo \u00e8 un argomento pi\u00f9 avanzato che alla fine vorrei trattare in un prossimo post. Per mantenere questa serie il pi\u00f9 diretta e snella possibile, sto cercando di rimanere il pi\u00f9 concentrato sui passaggi fondamentali richiesti.<\/p>\n<p>Tutto il resto pu\u00f2 essere implementato o addobbato attorno a tutto ci\u00f2 che \u00e8 necessario secondo i requisiti del progetto.<\/p>\n<h2>Questa \u00e8 solo la creazione di un account<\/h2>\n<p>Tuttavia, questa \u00e8 solo l&#8217;elaborazione della creazione programmatica di utenti WordPress. In realt\u00e0, si tratta solo di creare un utente.<\/p>\n<p>Per creare pi\u00f9 utenti, si supponga di disporre di pi\u00f9 array con informazioni attraverso le quali \u00e8 possibile eseguire l&#8217;iterazione e quindi creare gli utenti. L&#8217;implementazione \u00e8 la stessa anche se varia da ogni account.<\/p>\n<p>Detto questo, domani mi occuper\u00f2 di creare in modo programmatico i contenuti dei post in modo programmatico. E dopo, parleremo di mettere in relazione un determinato utente con il contenuto del post specificato e di cosa possiamo fare con quello (oltre al motivo per cui sarebbe importante).<\/p>\n<h2>Messaggi di serie<\/h2>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/wordpress-metadata-association\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Associazione di metadati di WordPress: come farlo<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/creating-wordpress-users\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Creazione programmatica di utenti WordPress<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/it\/tipi-di-post-di-wordpress-unastrazione-per-le-entita\/\" title=\"Tipi di post di WordPress: un&#039;astrazione per le entit\u00e0\">Tipi di post di WordPress: un&#8217;astrazione per le entit\u00e0<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/it\/associazione-di-metadati-di-wordpress-entita-correlate\/\" title=\"Associazione di metadati di WordPress: entit\u00e0 correlate\">Associazione di metadati di WordPress: entit\u00e0 correlate<\/a><\/li>\n<\/ol>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tuttavia, questa \u00e8 solo l&#8217;elaborazione della creazione programmatica di utenti WordPress. In realt\u00e0, si tratta solo di creare un utente.<\/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":[918,896,720,865],"tags":[1168],"class_list":["post-229422","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-sviluppatore","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=229422"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229422\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/220605"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=229422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=229422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=229422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}