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 );
});