web-dev-qa-db-de.com

Front-End-Registrierungsformular

Ich suche nach einer einfachen Möglichkeit, das Benutzerregistrierungsformular im Front-End einer WordPress-Site zu platzieren. Ich habe bereits wp_login_form () verwendet, um das Anmeldeformular im Front-End zu platzieren, aber jetzt muss ich dasselbe mit dem Anmeldeformular tun.

Irgendwelche Ideen?

12
Pippin

Jeff Starr hat ein großartiges Tutorial über Front-End-Registrierung, Login und Passwortwiederherstellung geschrieben
ähnlich vorgehen wie vorgeschlagen von onetrickpony . Nehmen Sie dies als Folgemaßnahme zu seiner Antwort und als eine weitere Ressource, die Ihnen bei der Erledigung helfen könnte:
http://digwp.com/2010/12/login-register-password-code/

Jetzt haben Sie zwei Beispiele, wie Sie dies selbst codieren und mir vertrauen können - es lohnt sich definitiv, es auf diese (Ihre eigene) Weise zu tun. Es ist nicht so schwer und gibt dir Freiheit , Flexibilität und Wiederverwendbarkeit , die kein Plugin bieten kann.

6
Michal Mau

für den Fall, dass Sie dies selbst erledigen möchten, verwende ich Folgendes:

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;
}

der Code ist fast identisch mit dem auf der Benutzeranmeldeseite.

dann fügen Sie Ihr Formular in Ihre Vorlage ein:

<?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>

sie können entweder ein Widget mit diesem, einem Shortcode oder nur der üblichen Seitenvorlage erstellen ...

4
onetrickpony

Gravity Forms ist das beste Kontaktformular-Plugin für WordPress, IMO. Die neueste Beta-Version enthält ein Add-On für die Benutzerregistrierung. Ich habe es versucht und es funktioniert großartig. Es kostet Sie aber ... es ist 199 $ für eine Entwicklerlizenz.

Preisliste http://www.gravityforms.com/purchase-gravity-forms/

Blogbeitrag über das Benutzerregistrierungs-Add-on http://www.gravityhelp.com/

Ich kann dieses Plugin der WordPress-Community nur empfehlen.

Detaillierte Spezifikationen:

Hier sind einige der Funktionen des Benutzerregistrierungs-Add-Ons:

  • Benutzerregistrierung - Richten Sie ein Formular ein, um einen Benutzer zu registrieren, indem Sie Ihre Formularfelder verfügbaren Benutzerregistrierungsfeldern in WordPress zuordnen.
  • Benutzermetadaten - Füllen Sie Benutzermetadaten wie Bio, Instant Messaging-ID, Vorname, Nachname sowie benutzerdefinierte Benutzermetadaten ganz einfach nach Ihren Wünschen aus.
  • BuddyPress-Integration - Füllen Sie BuddyPress-Profilfelddaten als Teil des Benutzerregistrierungsprozesses aus. Funktioniert derzeit mit BuddyPress v1.2.6.
  • Zahlungsintegration - Fordern Sie eine Zahlung an, bevor die Benutzerregistrierung erfolgt. Umfasst die Unterstützung für Paypal-Abonnements und das Ändern der Benutzerrolle oder das Löschen des Benutzers, wenn das Abonnement gekündigt wird.
  • Kennwortfeld - Das Benutzerregistrierungs-Add-On fügt Gravity Forms ein Kennwortfeld zur Verwendung in Ihren Formularen hinzu. Das Feld Kennwort enthält eine Bestätigungsoption sowie eine integrierte Option zur Überprüfung der Kennwortstärke.
  • Beitragsautor - Integrieren Sie das Benutzerregistrierungs-Add-On und die Beitragserstellung in ein einziges Formular, sodass der Autor des erstellten Beitrags der vom Add-On registrierte Benutzer ist.
  • Site-Erstellung - Erstellen Sie automatisch eine Site in einem WordPress-Netzwerk (mit mehreren Sites) und weisen Sie die neu erstellten Benutzer als Administrator für die Site zu.
2
Carson

Probieren Sie das simplemodal Login Plugin aus. Es ermöglicht die Registrierung und Anmeldung (Sie müssen die Benutzerregistrierung aktivieren) und es sieht sehr gut aus.

1
Lynne

Falls Sie mehr Felder in Ihrem Registrierungsformular benötigen, können Sie das Profile Builder Plugin verwenden.

Sie können Ihre Website anpassen, indem Sie Front-End-Formulare zum Anmelden, Registrieren und Bearbeiten von Profilen mithilfe von Shortcodes hinzufügen.

Sie können Theme My Login Plugin verwenden

0
Tareq

Hier ist eine nette und einfache Art, wie ich das gemacht habe:

Kopieren Sie die Feldnamen und andere Informationen aus dem aktuellen Wordpress-Registrierungsformular. Stellen Sie sicher, dass Ihr benutzerdefiniertes Formular die gleichen Namensfelder enthält, einschließlich der ausgeblendeten, und verweisen Sie die Formularaktion lediglich auf die richtige Registrierungs-URL: http://www.yourblog.com/wp-login.php?action=register - Sie können dann auch ändern, wie das Formular nach der Registrierung weitergeleitet wird, wenn Sie nicht möchten, wie es behandelt wird.

Es gibt auch dieses Plugin mit dem Namen Insite Login, mit dem Sie das Registrierungsformular, das Anmeldeformular und andere auf Seiten Ihrer Website einfügen können: http://wordpress.org/extend/plugins/insitelogin/

Die erste Lösung sollte jedoch das tun, was Sie möchten.

0