Creare un modulo di registrazione senza plugin in WordPress
Come posso creare un modulo di registrazione senza utilizzare un plugin nello sviluppo di temi WordPress e come i dati del form possono essere salvati nel database? Sono nuovo nello sviluppo di temi e non ho idea di come fare... aiutami!!! Ho questo semplice modulo di registrazione e non so come implementarlo in WordPress senza usare un plugin nel mio tema. Voglio capire come funziona il meccanismo di registrazione utente in WordPress.
<div class="col-md-6 login-do">
<!-- Campo nascosto per azione personalizzata -->
<input type="hidden" name="action" value="add_foobar">
<!-- Campo nascosto per dati aggiuntivi -->
<input type="hidden" name="data" value="foobarid">
<div class="login-mail">
<!-- Campo per il nome utente -->
<input type="text" placeholder="Nome" name='user_name' required="">
<i class="glyphicon glyphicon-user"></i>
</div>
<div class="login-mail">
<!-- Campo per il numero di telefono -->
<input type="text" placeholder="Numero di telefono" name='user_number' required="">
<i class="glyphicon glyphicon-phone"></i>
</div>
<div class="login-mail">
<!-- Campo per l'email -->
<input type="text" placeholder="Email" name='user_email' required="">
<i class="glyphicon glyphicon-envelope"></i>
</div>
<div class="login-mail">
<!-- Campo per la password -->
<input type="password" placeholder="Password" name='user_password' required="">
<i class="glyphicon glyphicon-lock"></i>
</div>
<a class="news-letter " href="#">
<!-- Checkbox per recupero password -->
<label class="checkbox1"><input type="checkbox" name="checkbox" ><i> </i>Password dimenticata</label>
</a>
<label class="hvr-skew-backward">
<!-- Pulsante di invio -->
<input type="submit" value="Invia" name="submit">
</label>
</div>

Nel tuo codice PHP, utilizza wp_create_user()
.
Con questa funzione, puoi passare username
, email
e `password'.
Successivamente, usa wp_update_user()
per assegnare all'utente le altre informazioni.
Collegherei la mia funzione di creazione utente all'hook init
.
Inoltre, dovresti inserire un campo nonce nel tuo form, ad esempio questo, tra i tag <form>
:
<?php wp_nonce_field( 'create_user_form_submit', 'djie3duhb3edub3u' ); ?>
Esempio:
add_action('init', 'my_theme_create_new_user');
function my_theme_create_new_user(){
if (
! isset( $_POST['djie3duhb3edub3u'] )
|| ! wp_verify_nonce( $_POST['djie3duhb3edub3u'], 'create_user_form_submit')
){
// non fare nulla
}else{
$username = sanitize_text_field($_POST['user_name']);
$email = sanitize_text_field($_POST['user_email']);
$password = $_POST['user_password'];
$user_id = username_exists( $username );
if ( !$user_id and email_exists($email) === false ) {
// aggiungi qui il codice per validare la password come preferisci
$user_id = wp_create_user( $username, $password, $email );
$stuff = array('ID'=>$user_id,'another_user_field'=>'something');
wp_update_user($stuff) // nome, cognome ecc.
} else {
return false; // username già esistente
}
}
}
