Creazione di un plugin per modulo di registrazione WordPress personalizzato

WordPress fornisce un modulo di registrazione personalizzato che può essere utilizzato per configurare un nuovo utente o per aggiungere un nuovo utente quando lo si aggiunge a un'installazione WordPress esistente. Ma cosa succede se si desidera implementare un modulo di registrazione personalizzato che non esegue il rendering delle opzioni nel dashboard di WordPress?

In questo tutorial, impareremo come creare un modulo di registrazione personalizzato in WordPress utilizzando una combinazione di tag modello e codici brevi.

Il modulo di registrazione predefinito comprende solo due campi modulo: nome utente ed e-mail.

La presenza solo del campo del nome utente e del modulo email rendono il processo di registrazione incredibilmente facile. Innanzitutto, inserisci il nome utente e l'e-mail dopo di che ti verrà inviata una password. Successivamente, accedi al sito con la password e poi completa il tuo profilo e cambia la password in qualcosa di memorabile.

Invece di fare in modo che l'utente superi lo stress sopra indicato per registrarsi nel tuo sito, perché non fornire un modulo di iscrizione dritto al punto con alcuni importanti campi extra oltre al nome utente e all'email predefiniti come password, un URL al loro sito web, una biografia, un soprannome e il loro nome e cognome.

Ciò è particolarmente utile in un sito Web con più autori come Tut+.

In questo articolo, creeremo un plug-in di modulo di registrazione personalizzato con i seguenti campi del modulo: 

  • nome utente
  • parola d'ordine
  • e-mail
  • URL del sito
  • nome di battesimo
  • cognome
  • soprannome
  • biografia (o una sezione su)

Il modulo di registrazione personalizzato può quindi essere integrato in WordPress utilizzando lo shortcode del plugin e il tag del modello associato.

Con lo shortcode, puoi creare una pagina e renderla la pagina di registrazione ufficiale del tuo sito. Puoi anche utilizzare lo shortcode all'interno di un post in modo che l'utente possa registrarsi al tuo sito dopo aver letto uno dei tuoi articoli.

Se desideri aggiungere il modulo di registrazione alla barra laterale o una posizione specifica nel tuo sito web, puoi modificare il tema di WordPress posizionando il tag del modello nella posizione desiderata. 

Prima di iniziare a costruire il plug-in per la registrazione, vale la pena notare che sono richiesti nome utente, password e campo email.

Applicheremo questa regola quando scriviamo la nostra funzione di validazione.

Opzione Premium

Questo tutorial ti insegnerà a creare il plug-in da zero, ma se stai cercando una soluzione rapida plug-and-play, prova il plug-in Modulo di registrazione di WordPress su Envato Market. È possibile impostare una vasta gamma di campi di registrazione con controllo di convalida. Una volta completata la registrazione, un'e-mail viene inviata al nuovo membro con i dettagli di accesso. I modelli di email possono essere modificati per la registrazione, il cambio della password, ecc.

Plugin per la registrazione di WordPress su Envato Market

Un'altra opzione è semplicemente quella di effettuare un ordine su Envato Studio. Puoi scegliere la persona giusta da una vasta gamma di esperti sviluppatori di plugin per WordPress. Quindi invii il tuo brief e lascia che lo sviluppatore crei il tuo plug-in entro i tempi concordati.

Ad esempio, Alisaleem252 svilupperà un plugin WordPress personalizzato che sarà compatibile con l'ultima versione di WordPress e altri plug-in nel repository WordPress in base alle tue esigenze. 

Otterrai: 

  • widget personalizzato se necessario 
  • shortcode personalizzato se necessario 
  • tipo di messaggio personalizzato se necessario 
  • servizio affidabile 
Sviluppo di plugin WordPress personalizzati

Il servizio completo costa solo $ 300 e il tuo plug-in sarà pronto in 10 giorni. Alisaleem252 ha una valutazione di approvazione del 98% da precedenti clienti. Quindi, perché non provare il suo famoso servizio Custom Plugin per lo sviluppo di WordPress!

Costruire il plugin

Detto questo, iniziamo con la codifica del plugin. Innanzitutto, includi l'intestazione del plugin.

Successivamente, creiamo una funzione PHP che contiene il codice HTML del modulo di registrazione.

function registration_form ($ username, $ password, $ email, $ sito Web, $ first_name, $ last_name, $ nickname, $ bio) echo '  '; eco ' 
';

Si noti che il campo di registrazione viene passato alla funzione sopra indicata come variabile? Nel codice funzione, vedrai istanze del seguente codice, ad esempio:

(isset ($ _POST ['lname'])? $ last_name: null) 

L'operatore ternario sta controllando il contenuto del globale $ _POST array per vedere se il modulo contiene un valore. Se contiene un valore, popola i campi modulo con il valore per salvare l'utente dal reinserimento nel campo di input.

Un modulo di registrazione non è mai completo finché non si convalida e si sanifica l'input dell'utente. Di conseguenza, creeremo una funzione di convalida con il nome registration_validation.

Per facilitare il dolore della convalida, utilizzeremo la classe WP_Error di WordPress. Seguimi mentre codifichiamo la funzione di convalida:

  1. Crea la funzione e passa il campo di registrazione come argomento della funzione.
    function registration_validation ($ username, $ password, $ email, $ sito Web, $ first_name, $ last_name, $ nickname, $ bio) 
  2. Istanziare il WP_Error class e rendere globale la variabile di istanza in modo che possa essere accessibile al di fuori dell'ambito della funzione.
    $ reg_errors globali; $ reg_errors = new WP_Error;
  3. Ricorda: abbiamo detto che il nome utente, la password e l'e-mail sono obbligatori e non devono essere lasciati fuori. Per applicare la regola, dobbiamo verificare se uno qualsiasi dei campi è vuoto. Se vuoto, aggiungiamo il messaggio di errore al globale WP_Error classe.
    if (vuoto ($ username) || vuoto ($ password) || vuoto ($ email)) $ reg_errors-> add ('campo', 'Campo modulo richiesto mancante'); 
  4.  Controlliamo inoltre che il numero di caratteri del nome utente non sia inferiore a 4.
    if (4> strlen ($ username)) $ reg_errors-> add ('username_length', 'Username too short. Sono richiesti almeno 4 caratteri'); 
  5. Controlla se il nome utente è già registrato.
    if (username_exists ($ username)) $ reg_errors-> add ('user_name', 'Mi dispiace, quel nome utente esiste già!');
  6. Impiega i servizi della funzione validate_username di WordPress per assicurarti che il nome utente sia valido.
    if (! validate_username ($ username)) $ reg_errors-> aggiungi ('username_invalid', 'Spiacente, il nome utente che hai inserito non è valido'); 
  7. Assicurarsi che la password immessa dagli utenti non sia inferiore a 5 caratteri.
    if (5> strlen ($ password)) $ reg_errors-> add ('password', 'La lunghezza della password deve essere maggiore di 5'); 
  8. Controlla se l'email è valida.
    if (! is_email ($ email)) $ reg_errors-> add ('email_invalid', 'Email non è valida'); 
  9. Controlla se l'email è già registrata.
    if (email_exists ($ email)) $ reg_errors-> add ('email', 'Email già in uso'); 
  10. Se il campo del sito web è pieno, controlla se è valido.
    if (! empty ($ website)) if (! filter_var ($ website, FILTER_VALIDATE_URL)) $ reg_errors-> add ('sito web', 'Sito Web non è un URL valido'); 
  11. Infine, passiamo in rassegna gli errori nel nostro WP_Error istanza e visualizza l'errore individuale.
    if (is_wp_error ($ reg_errors)) foreach ($ reg_errors-> get_error_messages () come $ error) echo '
    '; eco 'ERRORE: '; echo $ errore. '
    '; eco '
    ';
    Abbiamo terminato la codifica della funzione di convalida.

Il prossimo è il plugin completa la registrazione() funzione che gestisce la registrazione dell'utente.
La registrazione dell'utente è in realtà eseguita da wp_insert_user funzione che accetta una serie di dati utente.

function complete_registration () global $ reg_errors, $ username, $ password, $ email, $ sito Web, $ first_name, $ last_name, $ nickname, $ bio; if (1> count ($ reg_errors-> get_error_messages ())) $ userdata = array ('user_login' => $ username, 'user_email' => $ email, 'user_pass' => $ password, 'user_url' => $ website, 'first_name' => $ first_name, 'last_name' => $ last_name, 'nickname' => $ nickname, 'description' => $ bio,); $ user = wp_insert_user ($ userdata); echo 'Registrazione completata. Vai alla pagina di accesso. '; 

Nel completa la registrazione() funzione sopra, abbiamo fatto il $ reg_errors WP_Error istanza e la variabile dei campi del modulo globale in modo che possiamo accedere alla variabile nell'ambito globale.

Quindi controlliamo se il $ reg_errors l'istanza di gestione degli errori contiene errori. Se non viene rilevato alcun errore, procedere con il popolamento del file $ userdata array e inserire i dettagli di registrazione dell'utente nel database di WordPress e visualizzare a Registrazione completa messaggio con un collegamento alla pagina di accesso.

Il prossimo è il super custom_registration_function () funzione che mette in uso tutte le funzioni che abbiamo creato in precedenza.

function custom_registration_function () if (isset ($ _ POST ['submit'])) registration_validation ($ _POST ['username'], $ _POST ['password'], $ _POST ['email'], $ _POST ['sito web '], $ _POST [' fname '], $ _POST [' lname '], $ _POST [' nickname '], $ _POST [' bio ']); // sanitize modulo utente input global $ username, $ password, $ email, $ sito Web, $ first_name, $ last_name, $ nickname, $ bio; $ username = sanitize_user ($ _POST ['username']); $ password = esc_attr ($ _POST ['password']); $ email = sanitize_email ($ _POST ['email']); $ website = esc_url ($ _POST ['sito web']); $ first_name = sanitize_text_field ($ _POST ['fname']); $ last_name = sanitize_text_field ($ _POST ['lname']); $ nickname = sanitize_text_field ($ _POST ['nickname']); $ bio = esc_textarea ($ _POST ['bio']); // chiama @function complete_registration per creare l'utente // solo quando non viene trovato WP_error complete_registration ($ username, $ password, $ email, $ sito Web, $ first_name, $ last_name, $ nickname, $ bio);  registration_form ($ username, $ password, $ email, $ sito Web, $ first_name, $ last_name, $ nickname, $ bio); 

Lascia che ti spieghi qual è il codice in custom_registration_function () funzione.

Per prima cosa, determiniamo se il modulo è stato presentato controllando se il $ _POST [ 'submit'] è impostato. Se il modulo è stato inviato, chiamiamo il registration_validation funzione per convalidare il modulo inviato dall'utente.

Quindi disinfettiamo i dati del modulo e impostiamo i dati di sanitizzazione su una variabile denominata dopo il campo modulo. Infine, chiamiamo il completa la registrazione per registrare l'utente.

Dobbiamo chiamare il formulario di registrazione funzione per visualizzare il modulo di registrazione.

Ricorda che ho detto che forniremo il supporto per il codice corto per il plugin di registrazione? Di seguito è riportato il codice di supporto shortcode.

// Registra un nuovo shortcode: [cr_custom_registration] add_shortcode ('cr_custom_registration', 'custom_registration_shortcode'); // La funzione di callback che sostituirà la funzione [book] custom_registration_shortcode () ob_start (); custom_registration_function (); return ob_get_clean (); 

A questo punto, abbiamo finito di scrivere il plugin. Di seguito un'immagine che mostra come appare il modulo di registrazione.

Nota che potresti non ottenere lo stesso identico aspetto sul tuo sito WordPress a causa del diverso stile CSS.

Utilizzo del plugin

Per implementare il plugin in un post o una pagina WordPress, utilizzare lo shortcode [Cr_custom_registration].

Per implementare il modulo di registrazione in un aspetto specifico del tema, aggiungi il seguente tag modello - .
Puoi ottenere il file del plugin dall'allegato in questo articolo.

Sommario

In questo articolo, abbiamo analizzato il processo di creazione di un plug-in che aggiunge un modulo di registrazione personalizzato a WordPress. È possibile estendere ulteriormente il modulo di registrazione per includere campi aggiuntivi come ruolo utente, account IM AOL, ma assicurarsi che il campo modulo sia un metadato valido per wp_insert_user.

Se hai domande o suggerimenti, fammelo sapere nei commenti!

Ricorda che se hai faticato a seguire questo tutorial e vuoi una soluzione semplice, prova il plugin del modulo di registrazione di WordPress su Envato Market.