Skapa WordPress-användare programmerat
Det här inlägget är den andra delen i en serie jag jobbar igenom som talar om WordPress Metadata Association, och den första delen av detta innebär att arbeta igenom processen att programmatiskt skapa WordPress-användare (men det har gått fem år!).
Jag har pratat om att göra det här förut, men saker och ting förändras med tiden när vi får mer erfarenhet, eller hur? Och när jag arbetar igenom en serie som denna tror jag att det hjälper att ha en uppsättning krav som vi åtminstone kan följa för att simulera hur det kan vara att få detta att hända i ett riktigt projekt.
Så i det här inlägget kommer vi att ta en titt på följande:
- ta emot användarinformation i ett visst dataformat,
- Identifiera vilken information som krävs för att skapa en användare,
- Skapa användaren,
- Se till att vår kod är i nivå med kodningsstandarder och läsbarhet.
Det låter som mycket, även om jag inte har för avsikt att göra detta till ett långt inlägg. Som sagt, om det här är något du vill lära dig att tänka igenom eller ta itu med, så är det här.
Skapa WordPress-användare
Antag att någon – kanske en kund eller kanske bara du själv – som information som kommer att användas för att skapa en användare. Den behöver åtminstone följande information:
- ett användarnamn,
- ett lösenord,
- en e-postadress.
När det kommer till att skapa ett användarnamn tenderar jag att använda e-postadressen som användarnamn också eftersom det är något som garanterat är unikt för nästan alla som använder kontot.
Så för den här handledningen är det precis vad jag ska använda. När det gäller lösenordet kommer jag att prata om lösenordsgenerering ett ögonblick.
Slutligen kan du anta att data du har kommer i vilken form som helst: Kanske är det i JSON, kanske är det i en CSV, kanske är det i en XML. Oavsett vilket är det upp till dig att analysera denna information till PHP så att du enkelt kan arbeta med informationen.
För att göra det enkelt för det här inlägget kommer jag att anta att vi har en enda post och att vi kommer att ha informationen tillgänglig i en array. Detta betyder inte att det börjar i en array, men det betyder att vi så småningom placerar det i en array.
1 Användarens information
Anta att vi har en person som heter "Meghan" som vi kommer att lägga till i systemet. Vi har en e-postadress, och det är allt.
Ett exempel på persona (artistens rendering, förstås 🙂
Men det är okej. Det är barbenet av vad vi behöver. Så låt oss ta denna information :
<?php
$user_info = array(
'email' => 'meghan@emaildomain.com',
'first_name' => 'Meghan',
'last_name' => 'McFarlin',
);
Och förvandla det till något vi kan använda för att skapa ett konto.
2 Skapa kontot
Det första vi behöver göra är att se till att en användare inte redan finns för den här e-postadressen. Om det gör det, så återkommer vi helt enkelt. Du kanske vill visa ett inställningsmeddelande eller någon annan typ av information för att låta slutanvändaren veta att du inte skapar det här kontot eftersom det redan finns.
Men det ligger utanför ramen för detta inlägg.
Istället kommer vi att återkomma :
<?php
// Read the email address - if it's - invalid or the user exists, then return.
$email = $user_info['email'];
if (! filter_var( $email, FILTER_VALIDATE_EMAIL) || username_exists( $email)) {
return;
}
Sedan igen, låt oss anta att användaren inte existerar. Om hon inte gör det – vilket hon inte borde (annars finns det ingen anledning till det här inlägget 😏) – så ska vi skapa ett konto åt henne.
För att göra detta behöver vi hennes e-postadress och ett lösenord. Lyckligtvis är det enkelt att skapa ett lösenord :
<?php
$password = wp_generate_password( 16, false );
Så nu kan vi ta e-postadressen och lösenordet och skapa användarkontot.
<?php
// Grab the email and create a password.
$email = $user_info['email'];
$password = wp_generate_password( 12, false );
// Create the user and set her role.
$user_id = wp_create_user( $email, $password, $email );
// Set the user's role (and remove the previous role).
$user = new WP_User( $user_id );
$user->set_role( 'author' );
Notera i koden ovan att vi också anger rollen. Sättet att göra detta är att först ta en instans av WP_User och sedan med vårt $user_id och sedan ställa in rollen.
Jag väljer att använda författare, men det finns en uppsättning andra som du kan välja mellan (eller använda vad som finns i din datastruktur).
3 Finns det inte mer i det?
Och med det bör din användare skapas. En del av detta beror till stor del på kroken du har använt, hur du har implementerat detta i din process och hur du tillåter en administratör att skapa konton.
Det här är ett mer avancerat ämne som jag så småningom skulle vilja ta upp i ett framtida inlägg. För att hålla den här serien så direkt och så smal som möjligt försöker jag hålla mig så fokuserad på de centrala stegen som krävs.
Allt annat kan implementeras eller kläs upp kring vad som helst som behövs enligt projektets krav.
Det är bara att skapa ett konto
Detta är dock bara bearbetningen av att programmatiskt skapa WordPress-användare. I själva verket är detta bara att skapa en användare.
För att skapa flera användare, anta att du har flera arrayer med information genom vilka du kan iterera och sedan skapa användarna. Implementeringen är densamma även om den kommer att variera från varje konto.
Med det sagt, imorgon ska jag ta mig an att programmatiskt skapa inläggsinnehåll programmatiskt. Och efter det kommer vi att prata om att relatera en given användare till det givna inläggets innehåll och vad vi kan göra med det (liksom varför detta ens skulle spela någon roll).
Serie inlägg
- WordPress Metadata Association: Hur man gör det
- Skapa WordPress-användare programmerat
- WordPress-inläggstyper: en abstraktion för enheter
- WordPress Metadata Association: Relaterande enheter
