Quando creiamo un form di registrazione in WordPress non sappiamo mai quale password potrebbero scegliere gli utenti. Possiamo aiutare gli utenti fornendo loro un suggerimento sulla password da utilizzare.
In functions.php
creiamo una funzione che genererĂ una password casuale ed una action AJAX pubblica (gli utenti non iscritti non possono aver effettuato il login) che restituirĂ la stringa generata.
function my_create_password( $length = 16 ) {
$valid_characters = 'abcdefghijklmnopqrstuxyvwzABCDEFGHIJKLMNOPQRSTUXYVWZ+-*#&@!?';
$valid_char_number = strlen( $valid_characters );
$result = '';
for ( $i = 0; $i < $length; $i++ ) {
$index = mt_rand( 0, $valid_char_number - 1 );
$result .= $valid_characters[$index];
}
return $result;
}
function my_suggest_password() {
$suggest = $_GET['suggest'];
$output = '';
if( $suggest == "1" ) {
$pwd = my_create_password();
$output = $pwd;
}
echo $output;
exit();
}
add_action( 'wp_ajax_nopriv_my_suggest_pwd', 'my_suggest_password' );
Quindi definiamo questa struttura nel nostro template di registrazione:
<input type="password" name="user-pwd" id="user-pwd" />
<div>
<a href="#user-pwd" id="suggest">
<?php _e( 'Genera password', 'nometema' ); ?>
</a>
<span id="suggestion"></span>
</div>
Infine usiamo jQuery per effettuare la richiesta AJAX:
var $suggestBtn = $( "#suggest" ),
$suggestion = $( "#suggestion" ),
ajaxURL = "http://" + location.host + "/wp-admin/admin-ajax.php";
$suggestBtn.click(function( e ) {
e.preventDefault();
var data = {
action: "my_suggest_pwd",
suggest: "1"
};
$.get( ajaxURL, data, function( text ) {
$suggestion.text( text );
});
});