Form di registrazione personalizzato

caniegatti

Nuovo Utente
4 Nov 2013
27
0
1
Ciao a tutti,

ho, prendendo spunto da un tutorial, creato un form di registrazione personalizzato per Wordpress utilizzando questo codice:

Codice:
<?p  
/* 
Template Name: Login Page
*/
?>
<? get_header()?>

    <div class="wrapper">
	
	<?php
	$err = '';
	$success = '';

	global $wpdb, $PasswordHash, $current_user, $user_ID;

	if(isset($_POST['task']) && $_POST['task'] == 'register' ) {

		
		$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
		$pwd2 = $wpdb->escape(trim($_POST['pwd2']));
		$first_name = $wpdb->escape(trim($_POST['first_name']));
		$last_name = $wpdb->escape(trim($_POST['last_name']));
		$email = $wpdb->escape(trim($_POST['email']));
		$username = $wpdb->escape(trim($_POST['username']));
		
		if( $email == "" || $pwd1 == "" || $pwd2 == "" || $username == "" || $first_name == "" || $last_name == "") {
			$err = 'Devi compilare tutti i campi obbligatori';
		} else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
			$err = 'Indirizzo email non valido.';
		} else if(email_exists($email) ) {
			$err = 'Indirizzo email gi&agrave registrato.';
		} else if($pwd1 <> $pwd2 ){
			$err = 'Le password non corrispondono.';		
		} else {

			$user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $pwd1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => 'subscriber' ) );
			if( is_wp_error($user_id) ) {
				$err = 'Errore in fase di registrazione';
				
			} else {
				do_action('user_register', $user_id);
			
				$success = 'You\'re successfully register';
			}
			
		}
		
	}
	?>

        <!--display error/success message-->
	<div id="message">
		<?php 
			if(! empty($err) ) :
				echo '<p class="error">'.$err.'</p>';
			endif;
		?>
		
		<?php 
			if(! empty($success) ) :
				echo '<p class="error">'.$success.'</p>';
			endif;
		?>
	</div>

	<form method="post">
		<h3>Don't have an account?<br/> Create one now.</h3>
		<p><label>Cognome*</label></p>
		<p><input type="text" value="" name="last_name" id="last_name" /></p>
		<p><label>Nome*</label></p>
		<p><input type="text" value="" name="first_name" id="first_name" /></p>
		<p><label>Email*</label></p>
		<p><input type="text" value="" name="email" id="email" /></p>
		<p><label>Username*</label></p>
		<p><input type="text" value="" name="username" id="username" /></p>
		<p><label>Password*</label></p>
		<p><input type="password" value="" name="pwd1" id="pwd1" /></p>
		<p><label>Reinserisci Password*</label></p>
		<p><input type="password" value="" name="pwd2" id="pwd2" /></p>
		<div class="alignleft"><p><?php if($sucess != "") { echo $sucess; } ?> <?php if($err != "") { echo $err; } ?></p></div>
        <div>Compilando il seguente form di registrazione il cliente accetta quanto previsto nel disclaimer</div>
		<button type="submit" name="btnregister" class="button" >Registrati</button>
		<input type="hidden" name="task" value="register" />
	</form>

</div>
<div></div>
<?php get_footer() ?>

Ora ho due problemi:

1) Quando invio la richiesta di registrazione, se è tutto compilato questa va a buon fine e viene fuori il messaggio di registrazione effettuata ma sotto resta il form..come faccio, una volta che la registrazione è andata a buon fine, far sparire il form?

2) Ho provato ad aggiungere questa stringa di codice
Codice:
// e inviamo una mail con la riuscita registazione

email ($email, "Registrazione OK", "Complimenti registrazione effettuata con successo", "From: [email protected]");

alla riga 42, dopo
Codice:
} else {
				do_action('user_register', $user_id);

ma non funziona più il form dopo

Dove sbaglio?

Grazie a tutti
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, il form potresti racchiuderlo in una condizione
PHP:
if (!isset($_POST['task']) {
      // form
}
in questo modo quando il post è inviato non dovrebbe mostrarlo.

Per il secondo problema la funzione dovrebbe essere mail() non email();
 

caniegatti

Nuovo Utente
4 Nov 2013
27
0
1
Ciao, grazie mille della risposta. Ho due piccoli problemi.

Il form adesso funziona correttamente ma all'admin non arriva una mail quanto l'utente si registra (primo problema che non so come risolvere).

Vorrei poi che al cliente arrivasse una mail di conferma (che adesso arriva grazie a questa porzione di codice
Codice:
			// e inviamo una mail con la riuscita registazione

mail ($email, "Registrazione Sito Web", "Complimenti registrazione effettuata con successo", "From: [email protected]");
) con formattazione html per renderla più carina.

Come posso fare? Ho provato utilizzando questo script (modificato per quello che serve a me ma non funziona)
Codice:
add_filter( 'wp_mail_content_type', 'set_html_content_type' );
wp_mail ( '$email', 'Registrazione Sito Web', 'A <strong>HTML</strong> email' 'From: [email protected]' );
function set_html_content_type() 
{
  return 'text/html';
}

remove_filter ( ‘wp_mail_content_type’, ‘set_html_content_type’ );

Grazie e buona serata
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] Controllo nome utente form di registrazione PHP 4
X__WELBO__X [css] form registrazione utente HTML e CSS 9
P [PHP] come criptare una password in un form di registrazione PHP 4
F form registrazione PHP 3
F Codic e php visibile su form registrazione utenti PHP 2
L errore mysql per form di registrazione PHP 3
D Form Registrazione con conferma via email - problema PHP 10
L Form di registrazione e log in. PHP 2
S Problemi form registrazione newsletter PHP 0
C Form registrazione Bootstrap PHP 0
F script php form registrazione PHP 13
F Controlli form per Registrazione utenti PHP 9
S Memorizzare nome file allegato da form registrazione PHP 1
C Form login e registrazione aruba Hosting 7
A form registrazione + php + alert javascript Javascript 6
emanuelevt form per registrazione Javascript 2
C Cancellazione-Annulla Registrazione Dati appena Inseriti nel Form dall' Utente PHP 13
L Form Registrazione PHP 56
P Aiuto form registrazione utenti PHP 5
I Creare un form di registrazione PHP 7
B Form di registrazione Classic ASP 0
W Form di registrazione HTML e CSS 5
M problema form registrazione Classic ASP 1
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 8
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4

Discussioni simili