În primul tutorial din această serie despre personalizarea experienței de conectare WordPress, am creat un plugin care vă permite să înlocuiți ecranul de conectare WordPress cu o pagină personalizată. Astăzi, vom merge un pas mai departe și vom înlocui noul flux de înregistrare a utilizatorilor în același mod.
Motivele pentru personalizarea paginii de conectare pe care am subliniat-o în Partea 1 (potrivirea paginii de înregistrare cu tema site-ului dvs. pentru a ascunde WordPress și pentru a îmbunătăți experiența utilizatorului) se aplică și în cazul înregistrării utilizatorilor noi, dar există și câteva motive mai specifice pentru motivul pentru care ați putea doriți să vă creați propria pagină de înregistrare:
Deci, echipat cu acest set de motive, să începem.
În acest tutorial, veți învăța cum să înlocuiți ecranul de înregistrare WordPress cu o pagină particularizată și să implementați înregistrarea cu propriul cod, fără a încălca principiile de proiectare ale WordPress.
Funcționalitatea va fi construită pe partea de sus a pluginului pe care l-am construit în Partea 1 a seriei tutorial, deci dacă nu l-ați citit încă, este o idee bună să începeți prin a verifica acest tutorial. Puteți scrie singur codul în timp ce urmați tutorialul sau descărcați codul exemplu din proiectul Github al tutorialului.
Pagina implicită pentru înregistrarea utilizatorilor WordPress la wp-login.php? action = registru
arata asa:
Nu este rău, dar dacă nu executați WordPress.org, este cel mai probabil că nu este în concordanță cu design-ul dvs. de blog sau de site-uri web.
Notă: Dacă nu puteți accesa pagina de înregistrare pe site-ul dvs. WordPress, aceasta se datorează faptului că, în mod implicit, WordPress nu permite utilizatorilor noi să se înregistreze. Pentru a schimba acest lucru, mergeți la setari generale în tabloul de bord al adminului și bifați caseta de validare înainte de "Oricine se poate înregistra"Apoi salvați setările și reveniți la pagina de înregistrare.
În prima parte a seriei, am creat o pagină personalizată pentru afișarea formularului de autentificare și a unui scurt cod care a fost folosit pentru a plasa formularul de autentificare pe acea pagină. Acum, vom face același lucru pentru înregistrare: mai întâi vom crea un scurtcod pentru afișarea formularului de înregistrare și apoi o pagină pe care va fi plasat acest cod scurt.
De asemenea, este posibil să plasați codul scurt pe o altă pagină sau să aveți formularele de înregistrare și înregistrare pe o singură pagină.
Bazându-se pe partea de sus a plugin-ului creat în partea 1 a seriei, să începem prin adăugarea unui scurtcod pentru pagina de înregistrare.
La sfârșitul clasei plugin-ului (Personalize_Login_Plugin
) Constructor, adăugați următoarea definiție a codului scurt:
add_shortcode ('custom-register-form', array ($ this, 'render_register_form'));
Apoi, creați funcția responsabilă de redarea noului formular de înregistrare a utilizatorului:
/ ** * Un scurtcod pentru redarea noului formular de înregistrare a utilizatorului. * * @param array $ attributes Atribute shortcode. * @ param string $ content Conținutul de text pentru scurtcode. Nefolosit. * * @ string retur Output shortcode * / functie publica render_register_form ($ attributes, $ content = null) // Parse atribute shortcode $ default_attributes = array ('show_title' => false); $ attributes = shortcode_atts ($ default_attributes, $ atribute); if (is_user_logged_in ()) returnați __ ('Sunteți deja conectat (ă)', 'personalize-login'); elseif (! get_option ('users_can_register')) return __ ("Înregistrarea utilizatorilor noi nu este permisă în prezent", "personalize-login"); altceva return $ this-> get_template_html ('register_form', $ attributes);
Dacă ați citit deja Partea 1 din serie, veți observa o mulțime de asemănări între această funcție și funcția de redare a formularului de autentificare din acel tutorial.
Mai întâi, pe liniile 10-12, veți observa că codul scurt are un atribut Arata titlul
, utilizat pentru a defini dacă un titlu ar trebui să fie redat de codul scurt sau nu.
În al doilea rând, formularul de înregistrare nu este afișat utilizatorilor care sunt deja conectați (linii 14-15). Mesajul returnat în locul formularului este destul de simplu, așa că, în funcție de nevoile dvs., vă recomandăm să înlocuiți acest cod cu ceva mai detaliat - de exemplu un link înapoi spre tabloul de bord.
Un element nou este verificarea opțiunii WordPress users_can_register
pe linia 16. Această opțiune este controlată de WordPress setari generale camp Oricine se poate înregistra menționat mai sus. Pentru a ne asigura că respectăm setările pe care le definește utilizatorul în WordPress, nu ar trebui să afișăm formularul de înregistrare dacă setarea este setată la fals
. În schimb, după cum vedeți linia 17, funcția va returna o notificare privind închiderea înregistrării.
Efectuarea efectivă a formularului de înregistrare se face la data de linia 19 folosind un șablon PHP, register_form.php
, localizat în template-uri
directorul pe care l-am creat în tutorialul anterior. Consultați Partea 1 pentru o explicație mai lungă despre modul în care funcționează acest lucru, precum și codul funcției utilizate, get_template_html
.
Acum, să adăugăm șablonul pentru formularul de înregistrare.
În template-uri
director, adăugați un nou fișier PHP și denumiți-l register_form.php
. Apoi, continuați adăugând un formular de înregistrare cu câmpurile pe care doriți să le completeze noul dvs. utilizator.
Iată versiunea pe care am creat-o pentru acest tutorial; un formular de înregistrare mai degrabă standard cu câmpuri pentru e-mail, prenume și nume de familie. Formularul nu conține un câmp separat pentru un nume de utilizator, deoarece adresa de e-mail se va dubla ca una.
La fel ca și înregistrarea implicită a utilizatorilor WordPress, versiunea noastră va genera parola și va trimite un e-mail către noul utilizator. Acest lucru servește ca un simplu e-mail de verificare (utilizatorul nu va putea să vă conectați fără a introduce o adresă de e-mail validă) și impune un anumit nivel de securitate a parolei.
Desigur, această abordare are propriul risc de securitate sub formă de parole e-mail, așadar este o idee bună să întrebați (sau chiar să solicitați) ca utilizatorul să schimbe parola după ce sa logat.