Connexion administrateur WordPress automatique en PHP

La publication d’aujourd’hui ne sera qu’une courte dans laquelle je vais vous montrer comment installer une petite fonctionnalité intéressante sur votre site WordPress. Ceci, s’il est utilisé en toute sécurité, peut être très pratique. Il est conçu pour être utilisé sur les sites WordPress qui offrent un compte générique auquel les utilisateurs peuvent se connecter. Par exemple, sur de nombreuses démos WordPress back-end, l’auteur créera un compte “démo” pour que les clients potentiels puissent se connecter et jouer avec son produit. Le plus souvent, l’auteur affichera simplement un avis disant;


NOM D’UTILISATEUR: démo
MOT DE PASSE: démo

C’est un peu piéton. Nous pouvons sûrement rendre la démo un peu plus rationalisée et professionnelle? Je vais vous donner un extrait rapide pour vous connecter automatiquement à l’administrateur WordPress avec ces informations d’identification. Celui-ci peut être déposé dans le fichier de fonctions de votre thème, ou peut être placé dans son propre fichier de plug-in et activé.

Cela pourrait être utile si;

  • Votre site dispose d’un compte générique auquel les utilisateurs anonymes peuvent se connecter.
  • Vous voulez un lien de connexion “en un clic”.
  • Vous souhaitez maximiser la conversion de la démonstration du produit en fournissant un chemin rapide et efficace vers la démonstration, en minimisant les étapes requises.
  • Vous souhaitez diriger les visiteurs directement vers l’emplacement concerné (par exemple, la page Paramètres).

IMPORTANT: Ne l’utilisez jamais pour vous connecter à des comptes disposant d’un pouvoir réel; par exemple. Comptes administrateur / éditeur, etc..
Utilisez cet extrait avec soin.

Ok, donc comme je l’ai fait dans mes autres tutoriels, je vais d’abord vous donner le code complet et annoté pour que ceux d’entre vous qui ne sont pas fans de lecture puissent commencer à l’expérimenter. L’extrait suivant a été conçu sous la forme d’un plugin autonome (ma préférence personnelle).

Harri Bell-Thomas sur Github

/ *
Nom du plugin: Connexion automatique
URI du plugin: http://hbt.io/
Version: 1.0.0
Auteur: Harri Bell-Thomas
URI de l'auteur: http://hbt.io/
* /

fonction autologin () {
// PARAMÈTRE À VÉRIFIER
if ($ _GET ['autologin'] == 'demo') {

// COMPTE NOM D'UTILISATEUR POUR SE CONNECTER
$ creds ['user_login'] = 'demo';

// MOT DE PASSE DE COMPTE À UTILISER
$ creds ['user_password'] = 'démo';

$ creds ['Remember'] = true;
$ autologin_user = wp_signon ($ creds, false);

if (! is_wp_error ($ autologin_user))
en-tête («Emplacement: wp-admin»); // LIEU À REDIRIGER VERS
}
}
// AJOUTEZ LE CODE JUSTE AVANT QUE LES EN-TÊTES ET LES COOKIES SONT ENVOYÉS
add_action ('after_setup_theme', 'autologin');

USAGE

C’est très simple à utiliser. Le nom d’utilisateur et le mot de passe du compte sont spécifiés dans le fichier du plugin (code ci-dessus), et pour vous connecter, il vous suffit de visiter; http://example.com/wp-login.php?autologin=demo

Vous devez immédiatement être redirigé vers wp-admin, connecté au compte spécifié. Si les informations d’identification sont fausses, vous devriez simplement voir le formulaire de connexion comme d’habitude.

PERSONNALISER

Cet extrait est très facile à personnaliser. Il n’y a essentiellement que 3 choses que vous devrez modifier, et toutes ces modifications doivent être apportées dans le bloc de code suivant (lignes 11 à 17 du code complet)

if ($ _GET ['login'] == 'dummy_account') {

// COMPTE NOM D'UTILISATEUR POUR SE CONNECTER
$ creds ['user_login'] = 'factice';

// MOT DE PASSE DE COMPTE À UTILISER
$ creds ['user_password'] = 'pa55word';

Sur la première ligne, vous verrez la vérification conditionnelle du paramètre URL. Le bloc de code ci-dessus vérifiera; wp-login.php? login = dummy_account

Ces valeurs peuvent être celles que vous voulez, mais faites attention à éviter les paramètres WordPress originaux tels que «déconnecté», «action» et «redirect_to». La ligne 4 est l’endroit où vous spécifiez le nom d’utilisateur pour vous connecter; l’extrait de code personnalisé essaiera de se connecter au compte “factice”. Comme vous pouvez probablement le deviner, la ligne 7 est l’endroit où vous spécifiez le mot de passe. Le mot de passe ci-dessus est «pa55word». Remplissez ces valeurs et vous devriez être prêt à partir!

EXTENSIONS

Pour le moment, notre extrait de code n’est configuré que pour la connexion automatique à un seul compte. Et si nous voulons des liens de connexion différents pour différents comptes? C’est assez rapide et facile à faire et ne vous oblige pas à répéter l’extrait entier encore et encore. Jetez un œil ci-dessous à ma solution.

/ *
Nom du plugin: Connexion automatique
URI du plugin: http://hbt.io/
Description: créez des liens de connexion automatique pratiques pour vous connecter rapidement à des comptes génériques. Configurer le code source pour apporter des modifications.
Version: 1.0.0
Auteur: Harri Bell-Thomas
URI de l'auteur: http://hbt.io/
* /

// Déclarer les var globales
global $ login_parameter, $ accounts;

// LE PARAMÈTRE À VÉRIFIER
// par exemple. http://exmaple.com/wp-login.php?param_name=account
$ login_parameter = "autologin";

// BLOC DE CODE DE COMPTE
$ accounts [] = tableau (
"utilisateur" => "démo",
"pass" => "demo",
"location" => "wp-admin",
);
// FIN DU BLOC DE CODE DE COMPTE

// MODIFIER ET RÉPÉTER LE BLOC DE CODE POUR LE PLUS DE COMPTES NÉCESSAIRES

// Un autre exemple d'itération
$ accounts [] = tableau (
"user" => "tcwp",
"pass" => "demo",
"location" => "wp-admin /? tcwp-sent-me",
);


// VOIR EXEMPLE PRÉCÉDENT POUR PLUS DE DÉTAILS SUR CETTE FONCTION
fonction autologin () {
global $ login_parameter, $ accounts;
foreach ($ comptes en tant que compte $) {
if ($ _GET [$ login_parameter] == $ account ['user']) {
$ creds ['user_login'] = $ account ['user'];
$ creds ['user_password'] = $ account ['pass'];
$ creds ['Remember'] = true;
$ autologin_user = wp_signon ($ creds, false);
if (! is_wp_error ($ autologin_user))
en-tête ('Location:'. $ account ['location']);
}
}
}
add_action ('after_setup_theme', 'autologin');

À la base, c’est essentiellement la même chose, mais avec une boucle foreach effrontée et un tableau de comptes également. L’anatomie de la fonction autologin () est identique, à l’exception du fait que son code est répété (en utilisant la boucle foreach) pour chaque compte. Tous les détails pertinents sont désormais stockés dans le tableau global. L’exemple ci-dessus est configuré pour 2 comptes, mais notre extrait de code peut en accueillir autant que nous en avons besoin. Pour ajouter des comptes supplémentaires, il suffit de personnaliser et d’ajouter autant de blocs de code suivants que nécessaire.

// BLOC DE CODE DE COMPTE
$ accounts [] = tableau (
"user" => "anotheraccount",
"pass" => "public_password",
"location" => "http://YouCanPutURLsHereToo.com/",
);
// FIN DU BLOC DE CODE DE COMPTE

Vous remarquerez également que j’ai également déplacé le nom du paramètre vers une variable globale: ce n’est pas nécessaire, mais je l’ai fait simplement pour supprimer toutes les valeurs codées en dur de la fonction autologin ().

CONCLUSION

Cet extrait de code n’est qu’une simple fonction conçue pour une utilisation légère, comme sur un site de démonstration de produit, mais peut être utilisé pour des scénarios de connexion beaucoup plus complexes. Le reste du code devrait être assez explicite, mais si vous avez des questions sur ce que j’ai fait, ou pourquoi je l’ai fait, laissez simplement un commentaire ci-dessous ou tweetez-moi. Si vous avez des commentaires / suggestions / idées, laissez un commentaire dans la section des commentaires ci-dessous!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map