WordPress: validazione inline del nome utente nei form di registrazione

WordPress: validazione inline del nome utente nei form di registrazione

Usando jQuery, AJAX ed una funzione specifica di WordPress possiamo verificare se il nome utente scelto in un form di registrazione è già in uso.

Definiamo subito la nostra action AJAX:


function my_check_username() {
	$user = trim( $_GET['utente'] );
	$output = '0';
	if( username_exists( $user ) ) {
		$output = '1';
	}
	echo $output;
	exit();
}

add_action( 'wp_ajax_nopriv_my_check_username', 'my_check_username' );

L'action AJAX è solo pubblica perché stiamo gestendo un form di registrazione. Quindi creiamo il codice jQuery:


function checkUsername( element, value ) {
	var ajaxURL = "http://" + location.host + "/wp-admin/admin-ajax.php",
	    data = {
			action: "my_check_username",
			utente: value   
	    },
	    $messageElement = element.next();
	    
	    if( $messageElement.is( ".error" ) ) {
		    $messageElement.remove();
	    }
	    
	    $.get( ajaxURL, data, function( output ) {
		   if( output == "1" ) {
			   element.after( "<div class='error'>Nome utente già in uso</div>" );
		   } 
	    });
}

$( "input[name=nome-utente]" ).blur(function() {
	var $element = $( this ),
		value = $element.val();
		checkUsername( $element, value );
});

Torna su