Con jQuery e AJAX possiamo facilitare il nostro lavoro di registrazione degli utenti di WordPress nel frontend.
Creiamo la seguente action di verifica:
function my_check_user() {
$username = ( isset( $_POST['user'] ) ) ? trim( $_POST['user'] ) : '';
$email = ( isset( $_POST['email'] ) ) ? trim( $_POST['email'] ) : '';
$output = array();
$username_exists = ( $username !== '' ) ? username_exists( $username ) : false;
$email_exists = ( $email !== '' ) ? email_exists( $email ) : false;
$output['username'] = $username_exists;
$output['email'] = $email_exists;
header( 'Content-Type: application/json' );
echo json_encode( $output );
exit();
}
add_action( 'wp_ajax_nopriv_my_check_user', 'my_check_user' );
Quindi con jQuery effettuiamo la verifica:
var url = location.protocol + "//" + location.host + "/wp-admin/admin-ajax.php";
var data = {
action: "my_check_user",
};
$( "#username" ).on( "blur", function() {
var $input = $( this );
data.user = $input.val();
$.when( $.post( url, data ) ).done(function( resp ) {
if( resp.username ) {
// Errore
}
});
});
$( "#user-email" ).on( "blur", function() {
var $input = $( this );
data.email = $input.val();
$.when( $.post( url, data ) ).done(function( resp ) {
if( resp.email ) {
// Errore
}
});
});