Modulo di registro front-end


13

Sto cercando un modo semplice per posizionare il modulo di registrazione dell'utente sul front-end di un sito WordPress. Ho già usato wp_login_form () per posizionare il modulo di accesso sul front-end, ma ora devo fare lo stesso con il modulo di iscrizione.

Qualche idea?


Siamo spiacenti, ma cosa intendi con "front-end". Penso di capire cosa significano front-end e back-end, ma non capisco come si possa posizionare un modulo altrove che sul front-end. Intendi la prima pagina?
Mads Skjern,

Risposte:


7

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

Ora hai due esempi su come codificarlo tu stesso e fidarti di me - vale sicuramente la pena farlo in questo modo (il tuo). Non è così difficile e ti dà la libertà , la flessibilità e la riusabilità che nessun plugin può offrire.


4

nel caso tu voglia gestirlo da solo, ecco cosa 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[] = 'provide a user and email';
    if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';

    $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[] = 'invalid e-mail';
    elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';

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

      if(!$user_id):
        $errors[] = 'registration failed...';
      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 dell'utente.

quindi aggiungi il modulo nel modello:

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errors here, if any

  elseif(defined('REGISTERED_A_USER'))
    echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    User:
    <input type="text" name="user" value=""/>
  </label>

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

  <label>
    Delete this text:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

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

puoi creare un widget con questo, un shortcode o solo il solito modello di pagina ...


Sembra fantastico, anche se non sembra funzionare. Ho trovato un plugin che funziona benissimo, quindi grazie per l'aiuto.
Pipino,

funziona per me, ma penso che devi cambiare home_url()con l'URL della pagina corrente perché il mio codice presume che il modulo sia nella homepage. Ho pubblicato una get_current_page_url()funzione qui su un'altra domanda, non ricordo quale però
onetrickpony,

2

Gravity Forms è il miglior plug-in per moduli di contatto per WordPress, IMO. La versione più recente, in beta, ha un componente aggiuntivo per la registrazione dell'utente. L'ho provato e funziona benissimo. Ti costerà però ... costa $ 199 per una licenza per sviluppatori.

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

Post di blog che parla del componente aggiuntivo per la registrazione dell'utente http://www.gravityhelp.com/

Consiglio vivamente questo plugin alla comunità di WordPress.

Specifiche dettagliate:

Ecco alcune delle funzionalità del componente aggiuntivo Registrazione utente:

  • Registrazione utente: imposta un modulo per registrare un utente mappando i campi del modulo sui campi di registrazione utente disponibili in WordPress.
  • Meta utente - Popola facilmente i metadati dell'utente come bio, ID di messaggistica istantanea, nome, cognome e meta utente personalizzata in base alle tue esigenze.
  • Integrazione BuddyPress: popolare i dati dei campi del profilo BuddyPress come parte del processo di registrazione dell'utente. Attualmente funziona con BuddyPress v1.2.6.
  • Integrazione del pagamento: è necessario un pagamento prima che si verifichi la registrazione dell'utente. Include il supporto per gli abbonamenti PayPal e la modifica del ruolo utente o l'eliminazione dell'utente se l'abbonamento viene annullato.
  • Campo password: il componente aggiuntivo Registrazione utente aggiunge un campo Password a Gravity Forms da utilizzare nei moduli. Il campo Password include un'opzione di conferma, nonché un'opzione di verifica della sicurezza della password integrata.
  • Autore post: integra il componente aggiuntivo Registrazione utente e la creazione post in un unico modulo in modo che l'autore del post creato sia l'utente registrato dal componente aggiuntivo.
  • Creazione del sito - Crea automaticamente un sito su un'installazione di rete WordPress (multi-sito) e assegna gli utenti appena creati come amministratore del sito.

1

Prova il plugin di accesso simplemodal. Permette la registrazione e il login (devi abilitare la registrazione dell'utente) e ha un aspetto molto gradevole.


Chiudi, ma non proprio quello di cui ho bisogno. Ho bisogno di qualcosa che posso inserire nel mio modello esistente.
Pipino,

Sì .. Io .. Come puoi non inserirlo nel tuo modello?
Lynne,

Ecco un sito che ho appena finito di progettare usando il log in simplemodal .. purevapes.com annota il registro e i link di accesso in alto. L'utente non viene mai rimosso dal front-end del blog. Puoi incorporarli utilizzando un semplice codice HTML nel tuo modello e reindirizzano l'utente alla prima pagina anziché al pannello di amministrazione. Quindi non sono sicuro di come questo non possa essere "inserito" in nessun modello.
Lynne,

Intendevo "rilasciato" come incluso nella pagina attuale, non come una finestra modale. Ecco il plugin che ho appena trovato per farlo: wordpress.org/extend/plugins/simplr-registration-form
Pipino

Ah, capisco. Non mi è neppure passato per la testa che la finestra modale avrebbe presentato un problema, ma ora posso vedere dove c'è posto per esso e non. Grazie per il link del plugin, che ho inserito nel mio arsenale. Sono contento che tu abbia trovato la tua risposta :)
Lynne, il

0

È possibile utilizzare il plug-in Theme My Login


Sembra che il tuo plugin potrebbe funzionare alla grande, tranne per il fatto che non riesco a far funzionare il modulo di registrazione. Il modulo di accesso viene visualizzato correttamente, ma quando provo ad accedere al modulo di registrazione, mi porta solo al wordpress predefinito. C'è un modo per visualizzare semplicemente il modulo di registrazione nella pagina?
Pipino,

Non è il mio plugin che ho scritto: P
Tareq,

0

Ecco un modo semplice e piacevole che ho fatto questo:

Copia i nomi dei campi e qualsiasi altra informazione dal modulo di registrazione di Wordpress corrente. Assicurati che il tuo modulo personalizzato abbia gli stessi campi dei nomi, compresi quelli nascosti, quindi punta semplicemente l'azione del modulo sull'URL di registrazione corretto: http://www.yourblog.com/wp-login.php?action=register - Potresti quindi voler per modificare il modo in cui il modulo reindirizza anche 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 fare quello che vuoi che faccia.


0

Nel caso in cui siano necessari più campi nel modulo di registrazione, è possibile utilizzare il plug-in Profile Builder

Ti consente di personalizzare il tuo sito Web aggiungendo moduli front-end per l'accesso, la registrazione e la modifica del profilo mediante l'uso di codici brevi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.