Qual è un modo semplice per visualizzare un modulo di registrazione utente nel front-end?

17 gen 2011, 22:48:18
Visualizzazioni: 33.3K
Voti: 13

Sto cercando un modo semplice per posizionare il modulo di registrazione utente nel front-end di un sito WordPress. Ho già utilizzato wp_login_form() per inserire il modulo di login nel front-end, ma ora ho bisogno di fare lo stesso con il modulo di registrazione.

Qualche idea?

1
Commenti

Scusa, ma cosa intendi con "front-end". Credo di capire cosa significhino front-end e back-end, ma non capisco come si possa posizionare un modulo in qualsiasi altro posto che non sia il front-end. Intendi forse la pagina principale?

Mads Skjern Mads Skjern
22 ott 2014 15:01:07
Tutte le risposte alla domanda 7
0

Jeff Starr ha scritto un ottimo tutorial sulla registrazione front-end, login e recupero password
adottando un approccio simile a quello suggerito da onetrickpony. Considera questo come un seguito alla sua risposta e come un'altra risorsa che potrebbe aiutarti a realizzarlo:
http://digwp.com/2010/12/login-register-password-code/

Ora hai due esempi su come codificarlo da solo e credimi - vale decisamente la pena farlo in questo modo (il tuo). Non è così difficile e ti offre libertà, flessibilità e riutilizzabilità che nessun plugin può garantire.

18 gen 2011 22:11:01
2

Se vuoi gestirlo da solo, ecco quello che uso:

add_action('template_redirect', 'register_a_user');
function register_a_user(){
  if(isset($_GET['do']) && $_GET['do'] == 'register'):
    $errors = array();
    if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'fornire un utente e una email';
    if(!empty($_POST['spam'])) $errors[] = 'spammer vai via';

    $user_login = esc_attr($_POST['user']);
    $user_email = esc_attr($_POST['email']);
    require_once(ABSPATH.WPINC.'/registration.php');

    $sanitized_user_login = sanitize_user($user_login);
    $user_email = apply_filters('user_registration_email', $user_email);

    if(!is_email($user_email)) $errors[] = 'email non valida';
    elseif(email_exists($user_email)) $errors[] = 'questa email è già registrata, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'nome utente non valido';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'nome utente già esistente';

    if(empty($errors)):
      $user_pass = wp_generate_password();
      $user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);

      if(!$user_id):
        $errors[] = 'registrazione fallita...';
      else:
        update_user_option($user_id, 'default_password_nag', true, true);
        wp_new_user_notification($user_id, $user_pass);
      endif;
    endif;

    if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
    else define('REGISTERED_A_USER', $user_email);
  endif;
}

il codice è quasi identico a quello della pagina di registrazione utente.

poi aggiungi il tuo form nel tuo template:

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errori qui, se presenti

  elseif(defined('REGISTERED_A_USER'))
    echo 'è stata inviata una email a '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    Utente:
    <input type="text" name="user" value=""/>
  </label>

  <label>
    Email:
   <input type="text" name="email" value="" />
  </label>

  <label>
    Cancella questo testo:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

  <input type="submit" value="registrati" />
</form>

puoi creare un widget con questo, uno shortcode o semplicemente il solito page template...

18 gen 2011 05:02:01
Commenti

Sembra ottimo, anche se non sembra funzionare. Ho trovato un plugin che funziona alla grande però, quindi grazie per l'aiuto.

Pippin Pippin
18 gen 2011 05:13:51

per me funziona, ma penso che tu debba cambiare home_url() con l'URL della pagina corrente perché il mio codice presuppone che il form sia nella homepage. Ho postato una funzione get_current_page_url() qui in un'altra domanda, non ricordo quale però

onetrickpony onetrickpony
18 gen 2011 05:21:42
5

Prova il plugin simplemodal login. Permette la registrazione e il login (devi abilitare la registrazione degli utenti) e ha un aspetto molto gradevole.

17 gen 2011 23:41:24
Commenti

Ci sei quasi, ma non è esattamente quello che mi serve. Ho bisogno di qualcosa che possa essere integrato nel mio template esistente.

Pippin Pippin
18 gen 2011 01:07:44

Sì... Io... Come fai a non integrarlo nel tuo template?

Lynne Lynne
18 gen 2011 01:19:54

Ecco un sito che ho appena finito di progettare usando il login con simplemodal... http://www.purevapes.com/ nota i link di registrazione e login in alto. L'utente non viene mai portato via dal front-end del blog. Puoi incorporarli usando un semplice codice HTML nel tuo template, e reindirizzano l'utente alla pagina principale invece che al pannello di amministrazione. Quindi non sono sicuro di come questo non possa essere 'integrato' in qualsiasi template.

Lynne Lynne
18 gen 2011 01:22:37

Intendevo "inserito" direttamente nella pagina, non come finestra modale.

Ecco il plugin che ho appena trovato per farlo: http://wordpress.org/extend/plugins/simplr-registration-form/

Pippin Pippin
18 gen 2011 05:02:37

Ah, capisco. Non mi era nemmeno passato per la mente che la finestra modale potesse essere un problema, ma ora capisco dove può essere utile e dove no. Grazie per il link del plugin, lo aggiungo al mio arsenale. Sono contento che tu abbia trovato la risposta :)

Lynne Lynne
18 gen 2011 05:05:15
0

Gravity Forms è il miglior plugin per moduli di contatto per WordPress, secondo me. La loro ultima versione, in beta, include un add-on per la registrazione utenti. L'ho provato e funziona alla grande. Tuttavia, ha un costo... la licenza per sviluppatori è di 199$.

Pagina dei prezzi http://www.gravityforms.com/purchase-gravity-forms/

Articolo del blog che parla dell'add-on per la registrazione utenti http://www.gravityhelp.com/

Consiglio vivamente questo plugin alla comunità WordPress.

Specifiche dettagliate:

Ecco alcune delle funzionalità dell'Add-On per la Registrazione Utenti:

  • Registrazione Utente – Configura un modulo per registrare un utente mappando i campi del modulo ai campi di registrazione disponibili in WordPress.
  • Meta Utente – Popola facilmente i meta dati dell'utente come biografia, ID di messaggistica istantanea, nome, cognome e anche meta utente personalizzati per adattarli alle tue esigenze.
  • Integrazione BuddyPress – Popola i dati del profilo BuddyPress come parte del processo di registrazione utente. Attualmente compatibile con BuddyPress v1.2.6.
  • Integrazione Pagamenti – Richiedi un pagamento prima della registrazione utente. Include supporto per abbonamenti PayPal e la possibilità di cambiare il ruolo dell'utente o eliminarlo se l'abbonamento viene annullato.
  • Campo Password – L'Add-On per la Registrazione Utenti aggiunge un campo Password a Gravity Forms per l'uso nei tuoi moduli. Il campo Password include un'opzione di conferma e un controllo integrato della robustezza della password.
  • Autore Post – Integra l'Add-On per la Registrazione Utenti e la Creazione di Post in un unico modulo, in modo che l'autore del post creato sia l'utente registrato tramite l'add-on.
  • Creazione Sito – Crea automaticamente un sito su un'installazione WordPress in rete (multi-site) e assegna i nuovi utenti creati come Amministratori del sito.
18 gen 2011 04:16:50
2

Puoi utilizzare il plugin Theme My Login

17 gen 2011 23:52:06
Commenti

Sembra che il tuo plugin possa funzionare alla grande, tranne per il fatto che non riesco a far funzionare il modulo di registrazione. Il modulo di login viene visualizzato correttamente, ma quando tento di accedere al modulo di registrazione, mi porta semplicemente a quello predefinito di WordPress. C'è un modo per visualizzare solo il modulo di registrazione nella pagina?

Pippin Pippin
18 gen 2011 01:14:09

Non è il plugin che ho scritto io :P

Tareq Tareq
19 gen 2011 12:34:36
0

Ecco un modo semplice e carino in cui ho risolto questo problema:

Copia i nomi dei campi e qualsiasi altro elemento dal modulo di registrazione attuale di WordPress. Assicurati che il tuo modulo personalizzato abbia gli stessi campi nome inclusi quelli nascosti e poi punta semplicemente l'azione del modulo all'URL di registrazione corretto: http://www.yourblog.com/wp-login.php?action=register - Potresti anche voler modificare il reindirizzamento del modulo dopo la registrazione se non ti piace come viene gestito.

C'è anche questo plugin chiamato Insite Login che ti permette di inserire il modulo di registrazione, il modulo di login e altri nelle pagine del tuo sito: http://wordpress.org/extend/plugins/insitelogin/

La prima soluzione dovrebbe comunque fare quello che vuoi ottenere.

18 gen 2011 04:52:32
0

Se hai bisogno di più campi nel tuo modulo di registrazione, puoi utilizzare il plugin Profile Builder

Ti permette di personalizzare il tuo sito web aggiungendo moduli front-end per il login, la registrazione e la modifica del profilo attraverso l'uso di shortcode.

13 apr 2011 14:24:40