WordPress: creare una pagina di registrazione personalizzata

WordPress: creare una pagina di registrazione personalizzata

Creare una pagina di registrazione personalizzata in WordPress significa di fatto creare un nuovo utente all'interno del CMS. La procedura è relativamente semplice.

Creiamo un nuovo template di pagina con un form contenente un campo nascosto. Tale campo ha lo scopo di segnalarci che il form è stato inviato:


<?php
  // Routine di registrazione
?>
<?php
/**
 Template Name: Registrazione
 */

get_header(); ?>

<div id="primary" class="site-content">
		<div id="content" role="main">

			<?php while ( have_posts() ) : the_post(); ?>
				<?php get_template_part( 'content', 'page' ); ?>
			<?php endwhile; // fine del loop. ?>
			
			
			
			<form action="<?php global $post; echo get_permalink($post->ID); ?>" method="post">
				<div>
					<label for="username">Username</label>
					<input type="text" name="username" id="username" />
				</div>
				<div>
					<label for="email">E-mail</label>
					<input type="text" name="email" id="email" />
				</div>
				<div>
					<label for="password">Password</label>
					<input type="password" name="password" id="password" />
				</div>
				
				<input type="hidden" name="sent" value="true" />
				
				<p><input type="submit" name="submit" id="submit" value="Iscriviti" /></p>
			
			</form>

		</div><!-- #content -->
	</div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

La routine di registrazione creerà un utente di tipo subscriber e lo reindirizzerà alla pagina di login:


<?php
  // Routine di registrazione
  
  if(isset($_POST['sent']) && $_POST['sent'] == 'true') { // il form è stato inviato ?
    
    // Qui potete eseguire la validazione dei dati
    			
  	$password = $_POST['password'];
  	$username = $_POST['username'];
  	$email = $_POST['email'];			
	
  	// Crea un nuovo utente WordPress
  	
	wp_insert_user(array(
		    	'user_pass' => $password,
		    	'user_login'=> $username,
		    	'user_email' => $email,
		    	'role' => 'subscriber')
    );
		    	
    $login = wp_login_url(); // URL della pagina di login
    wp_redirect($login);  // Reindirizza l'utente
    exit();


}
?>

Il cuore del codice è costituito dalla funzione wp_insert_user(). Come si noterà dalla documentazione, questa funzione accetta molti parametri ma quelli obbligatori sono la password, lo username, l'e-mail ed il ruolo utente. La password non deve essere in alcun modo criptata perché a questo penserà WordPress. Inoltre la password non deve contenere alcuni caratteri speciali, come ad esempio il backslash (\).

Torna su