Care este o modalitate ușoară de a afișa un formular de înregistrare pentru utilizatori în frontend?
Caut o modalitate simplă de a plasa formularul de înregistrare utilizatori în frontend-ul unui site WordPress. Am folosit deja wp_login_form() pentru a plasa formularul de autentificare în frontend, dar acum am nevoie să fac același lucru cu formularul de înregistrare.
Aveți vreo sugestie?

Jeff Starr a scris un tutorial excelent despre înregistrarea, autentificarea și recuperarea parolei în front-end
adoptând o abordare similară cu cea sugerată de onetrickpony.
Priviți acest articol ca o continuare a răspunsului său și ca o altă resursă care vă poate ajuta să realizați acest lucru:
http://digwp.com/2010/12/login-register-password-code/
Acum aveți două exemple despre cum să implementați această funcționalitate singur și credeți-mă - merită cu siguranță să o faceți în acest fel (în mod propriu). Nu este atât de dificil și vă oferă libertate, flexibilitate și reutilizare pe care niciun plugin nu le poate oferi.

în cazul în care vrei să te ocupi tu de asta, iată ce folosesc eu:
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[] = 'introduceți un utilizator și un email';
if(!empty($_POST['spam'])) $errors[] = 'pleacă spammerule';
$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 invalid';
elseif(email_exists($user_email)) $errors[] = 'acest email este deja înregistrat, bla bla...';
if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'nume de utilizator invalid';
elseif(username_exists($sanitized_user_login)) $errors[] = 'numele de utilizator există deja';
if(empty($errors)):
$user_pass = wp_generate_password();
$user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);
if(!$user_id):
$errors[] = 'înregistrarea a eșuat...';
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;
}
codul este aproape identic cu cel de la pagina de înregistrare a utilizatorilor.
apoi adaugă formularul în șablonul tău:
<?php
if(defined('REGISTRATION_ERROR'))
foreach(unserialize(REGISTRATION_ERROR) as $error)
echo "<div class=\"error\">{$error}</div>";
// erori aici, dacă există
elseif(defined('REGISTERED_A_USER'))
echo 'un email a fost trimis către '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
<label>
Utilizator:
<input type="text" name="user" value=""/>
</label>
<label>
Email:
<input type="text" name="email" value="" />
</label>
<label>
Șterge acest text:
<input type="text" name="spam" value="some_crappy_spam_protection" />
</label>
<input type="submit" value="înregistrează-te" />
</form>
poți crea fie un widget cu asta, un shortcode sau pur și simplu folosește șablonul obișnuit de pagină...

Arată grozav, dar nu pare să funcționeze. Am găsit însă un plugin care funcționează perfect, așa că mulțumesc pentru ajutor.

funcționează pentru mine, dar cred că trebuie să înlocuiești home_url()
cu URL-ul paginii curente pentru că codul meu presupune că formularul este pe pagina principală. Am postat o funcție get_current_page_url()
aici la altă întrebare, dar nu-mi amintesc care anume

Aproape, dar nu exact ce am nevoie. Am nevoie de ceva care poate fi integrat direct în template-ul meu existent.

Iată un site pe care tocmai l-am finalizat folosind simplemodal log in.. http://www.purevapes.com/ observă link-urile de înregistrare și autentificare din partea de sus. Utilizatorul nu este redirecționat niciodată departe de front-end-ul blogului. Le poți incorpora folosind cod HTML simplu în template-ul tău, iar acestea redirecționează utilizatorul către pagina principală în loc de panoul de administrare. Deci nu sunt sigur cum acest lucru nu poate fi 'integrat' în orice template.

Mă refeream la "adăugat" direct în pagină, nu ca o fereastră modală.
Iată plugin-ul pe care tocmai l-am găsit pentru asta: http://wordpress.org/extend/plugins/simplr-registration-form/

Gravity Forms este cel mai bun plugin pentru formulare de contact în WordPress, după părerea mea. Cea mai recentă versiune, în beta, are un add-on pentru înregistrarea utilizatorilor. L-am testat și funcționează excelent. Totuși, are un cost... licența pentru dezvoltatori este de 199$.
Pagina de prețuri http://www.gravityforms.com/purchase-gravity-forms/
Postare pe blog despre add-on-ul pentru înregistrarea utilizatorilor http://www.gravityhelp.com/
Recomand cu mare încredere acest plugin comunității WordPress.
Specificații Detaliate:
Iată câteva dintre caracteristicile Add-On-ului pentru Înregistrarea Utilizatorilor:
- Înregistrare Utilizatori – Configurați un formular pentru a înregistra un utilizator prin maparea câmpurilor formularului la câmpurile disponibile pentru înregistrare în WordPress.
- Metadate Utilizator – Populați cu ușurință metadatele utilizatorului, cum ar fi biografia, ID-ul de mesagerie instantă, prenumele, numele de familie, precum și metadate personalizate pentru a se potrivi nevoilor dumneavoastră.
- Integrare BuddyPress – Populați datele câmpurilor de profil BuddyPress ca parte a procesului de înregistrare a utilizatorilor. Funcționează în prezent cu BuddyPress v1.2.6.
- Integrare Plată – Cereți o plată înainte de înregistrarea utilizatorului. Include suport pentru abonamente PayPal și modificarea rolului utilizatorului sau ștergerea acestuia dacă abonamentul este anulat.
- Câmp Parolă – Add-On-ul pentru Înregistrarea Utilizatorilor adaugă un câmp Parolă în Gravity Forms pentru utilizare în formulare. Câmpul Parolă include o opțiune de confirmare, precum și o verificare integrată a puterii parolei.
- Autor Postare – Integrați Add-On-ul pentru Înregistrarea Utilizatorilor și Crearea Postărilor într-un singur formular, astfel încât autorul postării create să fie utilizatorul înregistrat de add-on.
- Creare Site – Creați automat un site pe o instalare WordPress în rețea (multi-site) și atribuiți utilizatorii nou-creați ca Administratori pentru site.

Puteți utiliza plugin-ul Theme My Login

Se pare că plugin-ul tău ar putea funcționa excelent, dar nu reușesc să fac formularul de înregistrare să funcționeze. Formularul de autentificare se afișează corect, dar când încerc să accesez formularul de înregistrare, sunt redirecționat către cel implicit din WordPress. Există o modalitate de a afișa doar formularul de înregistrare pe pagină?

Iată o modalitate frumoasă și simplă prin care am realizat acest lucru:
Copiați numele câmpurilor și orice alte informații din formularul actual de înregistrare Wordpress. Asigurați-vă că formularul personalizat are aceleași nume de câmpuri, inclusiv cele ascunse, apoi direcționați acțiunea formularului către URL-ul corect de înregistrare: http://www.yourblog.com/wp-login.php?action=register - Apoi, ați putea dori să modificați modul în care formularul redirecționează după înregistrare, dacă nu vă place cum este gestionat.
Există și acest plugin numit Insite Login care vă permite să adăugați formularul de înregistrare, formularul de autentificare și altele în paginile site-ului dvs.: http://wordpress.org/extend/plugins/insitelogin/
Prima soluție ar trebui să facă exact ceea ce doriți.

Dacă aveți nevoie de mai multe câmpuri în formularul de înregistrare, puteți utiliza plugin-ul Profile Builder
Acesta vă permite să personalizați site-ul web prin adăugarea de formulare front-end pentru autentificare, înregistrare și editare profil, folosind shortcode-uri.
