web-dev-qa-db-fra.com

Comment pré-remplir les champs nom d'utilisateur/mot de passe sur la page de connexion

Pour un environnement de démonstration, je souhaite pré-renseigner les champs nom d'utilisateur et mot de passe du formulaire wp-login avec respectivement "démo" et chaîne "démo".

Il suffit donc aux utilisateurs de cliquer sur le bouton "Connexion" pour se connecter à la zone d'administration.

Il y a une façon de faire cela ? Peut-être avec un crochet?

Merci pour vos conseils

8
Gilles Vauvarin

Le résultat

enter image description here

Username

Vous pouvez déclarer la valeur du champ de formulaire global et la pré-remplir.

Cela annulera tout réglage effectué via la case à cocher "Mémoriser mes informations".

/**
 * Changes the default user name to "DEMO"
 * 
 * @return string $user_login
 */
function login_form_username()
{
    global $user_login;
    return $user_login = 'DEMO';
}
add_action( 'login_head', 'login_form_username' );

Mot de passe

Je n'ai rien trouvé que vous puissiez utiliser pour le préremplir, alors j'ajouterais une note. Heureusement/tristement, il existe tout un ensemble de feuilles de style pour l'interface utilisateur d'administration disponible. Donc, .wrap en relation avec h2 donne un style agréable. La fonction est reliée au raccord des champs supplémentaires pour le raccordement de l'administrateur. La priorité est 0 pour le définir au-dessus des champs supplémentaires.

/**
 * Adds a note beyond the user login name & password field
 * 
 * @return string
 */
function login_form_note()
{
    print '<div class="wrap"><h2 style="text-align: center;">The Password is "DEMO"</h2></div>';
}
add_action( 'login_form', 'login_form_note', 0 );

Sécurité: masquer les erreurs

Comme quelqu'un obtiendrait une preuve visuelle qu'il avait entré un nom d'utilisateur existant par défaut, j'ajouterais ce qui suit dans votre fichier functions.php, pour éviter de dire si le nom d'utilisateur a été deviné correctement:

/**
 * Hide wrong login names
 * 
 * @return string
 */
function no_login_error() 
{
    return __( 'Wrong Credentials.' );
}
add_filter( 'login_errors', 'no_login_error' );

Autres filtres

Notes:

  • Si vous souhaitez remplacer d'autres éléments tels que les styles, vous pouvez utiliser le login_enqueue_scripts hook.
  • Vous pouvez également remplacer le lien situé derrière le logo en utilisant le filtre login_headerurl qui filtre l’url. Le lien title peut être remplacé à l'aide de login_headertitle. Les deux déclencheurs pour multisite ainsi que les configurations d’un site unique.
  • Le message de connexion peut être modifié à l'aide du filtre login_message.
6
kaiser

vous pouvez utiliser ce code pour vous connecter automatiquement à l'utilisateur:

add_action('init', 'auto_login');
add_action('admin_init', 'auto_login');
function auto_login() {
    if (!is_user_logged_in()) {
      //by user name
      $user = get_user_by( 'login', 'demo' );
      //Or by user id, 2 being the ID of the demo user
      //$user = get_userdata(2);
      wp_set_current_user($user->ID, $user->user_login);
      wp_set_auth_cookie($user->ID);
      do_action('wp_login', $user->user_login);
    }
}
6
Bainternet

Voici 3 façons de le faire:

La première consiste à utiliser le crochet wp_signon

$creds = array();    
$creds['user_login'] = 'example';   
$creds['user_password'] = 'plaintextpw';   
$creds['remember'] = true;   
$user = wp_signon( $creds, false );  
if ( is_wp_error($user) ) {  
   echo $user->get_error_message();
}

La deuxième façon consiste à utiliser jQuery .val() et à l'ajouter à votre page de connexion.

$("#user_login").val('username');    
$("#user_pass").val('password');

La dernière méthode consiste à éditer votre fichier wp-login.php (Notez que cela n’est pas recommandé bien que cela fonctionne).

3
Brooke.