Automatisk WordPress Admin Login i PHP

Dagens indlæg bliver kun et kort, hvor jeg vil vise dig, hvordan du installerer en pæn lille funktion på dit WordPress-sted. Dette kan, hvis det bruges sikkert, være meget praktisk. Dette er designet til at blive brugt på WordPress-websteder, der tilbyder en generisk konto, som brugerne kan logge på. For eksempel vil forfatteren på mange backend WordPress-demoer oprette en ‘demo’-konto for potentielle kunder til at logge ind som og lege med hans / hendes produkt. Oftere end ikke viser forfatteren simpelthen en meddelelse, der siger;


BRUGERNAVN: demo
ADGANGSKODE: demo

Dette er en smule fodgængere. Vi kan helt sikkert få demoen til at se lidt mere strømlinede og professionelle ud? Jeg giver dig et hurtigt uddrag for automatisk at logge ind på WordPress-administratoren med disse legitimationsoplysninger. Dette kan enten slettes i dit temas funktionsfil, eller det kan sættes i sin egen plugin-fil og aktiveres.

Dette kan være nyttigt, hvis;

  • Dit websted har en generisk konto for anonyme brugere at logge ind på.
  • Du vil have et “et klik” login-link.
  • Du vil maksimere produktdemokonvertering ved at tilvejebringe en hurtig og effektiv sti til demoen, hvilket minimerer de nødvendige trin.
  • Du ønsker at dirigere besøgende direkte til det relevante sted (f.eks. Siden med indstillinger).

VIGTIG: Brug aldrig dette til at logge ind på konti med reel magt; f.eks. Administrator / Editor konti osv.
Brug dette uddrag omhyggeligt.

Okay, så som jeg har gjort i mine andre tutorials, giver jeg dig den komplette, annoterede kode først, så de af jer, der ikke er fans af læsning, kan komme direkte til at eksperimentere med den. Følgende uddrag er stylet i form af et enkeltstående plugin (min personlige præference).

Harri Bell-Thomas på Github

/ *
Plugin Navn: Auto-login
Plugin URI: http://hbt.io/
Version: 1.0.0
Forfatter: Harri Bell-Thomas
Forfatter URI: http://hbt.io/
* /

funktion autologin () {
// PARAMETER TIL TJEKNING FOR
if ($ _GET ['autologin'] == 'demo') {

// KONTROLLER USERNAME TO LOGIN TO
$ creds ['user_login'] = 'demo';

// KONTOPASSORD TIL BRUG
$ creds ['user_password'] = 'demo';

$ creds ['remember'] = sandt;
$ autologin_user = wp_signon ($ creds, false);

if (! is_wp_error ($ autologin_user))
header ('Location: wp-admin'); // BELIGGENHED TIL OMDIREKTION TIL
}
}
// TILFØJ KODE BARE FØR HEADERS OG COOKIES sendes
add_action ('after_setup_theme', 'autologin');

ANVENDELSE

Dette er meget enkelt at bruge. Konto-brugernavnet og adgangskoden specificeres i plugin-filen (kode ovenfor), og for at logge ind skal du blot besøge; http://example.com/wp-login.php?autologin=demo

Du skal straks omdirigeres til wp-admin, logget ind på den specificerede konto. Hvis legitimationsoplysningerne dog er forkerte, skal du bare se login-formularen som normalt.

CUSTOMIZE

Dette uddrag er meget let at tilpasse. Der er stort set kun 3 ting, du skal bruge til at redigere, og alle disse ændringer skal foretages i den følgende kodeblok (linjer 11 til 17 i den komplette kode)

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

// KONTROLLER USERNAME TO LOGIN TO
$ creds ['user_login'] = 'dummy';

// KONTOPASSORD TIL BRUG
$ creds ['user_password'] = 'pa55word';

På den første linje ser du betinget kontrol af URL-parameteren. Ovenstående kodeblok kontrollerer for; wp-login.php? login = dummy_account

Disse værdier kan være hvad du vil, men vær forsigtig med at undgå originale WordPress-parametre som ‘logget ud’, ‘handling’ og ‘omdirigere_til’. Linie 4 er det sted, hvor du specificerer det brugernavn, du skal logge ind med; det tilpassede kodenavn forsøger at logge ind på ‘dummy’-kontoen. Som du sandsynligvis kan gætte, er linje 7, hvor du specificerer adgangskoden. Ovenstående adgangskode er ‘pa55word’. Udfyld disse værdier, og du skal være god til at gå!

EXTENSIONS

I øjeblikket er vores uddrag kun indstillet til automatisk logning på en konto. Hvad hvis vi ønsker forskellige login-links til forskellige konti? Dette er ret hurtigt og nemt at gøre og kræver ikke, at du gentager hele uddraget igen og igen. Se nedenfor på min løsning.

/ *
Plugin Navn: Auto-login
Plugin URI: http://hbt.io/
Beskrivelse: Opret praktiske link til automatisk login til hurtigt at logge ind på generiske konti. Konfigurer kildekoden til at foretage ændringer.
Version: 1.0.0
Forfatter: Harri Bell-Thomas
Forfatter URI: http://hbt.io/
* /

// Erklær global var
globale $ login_parameter, $ konti;

// PARAMETERET TIL TJEK FOR
// f.eks. http://exmaple.com/wp-login.php?param_name=account
$ login_parameter = "autologin";

// REGNSKODE BLOCK
$ konti [] = matrix (
"user" => "demo",
"pass" => "demo",
"location" => "wp-admin",
);
// SLUT KONTOKODE BLOCK

// REDIGER OG REPEAT KODE BLOCK FOR SÅ MANGE REGNSKABER SOM NØDVENDIGT

// Et andet eksempel på iteration
$ konti [] = matrix (
"user" => "tcwp",
"pass" => "demo",
"location" => "wp-admin /? tcwp-sent-me",
);


// SE TIDLIGERE EKSEMPEL TIL DETALJER OM DENNE FUNKTION
funktion autologin () {
globale $ login_parameter, $ konti;
foreach ($ konti som $ konto) {
if ($ _GET [$ login_parameter] == $ konto ['bruger']) {
$ creds ['user_login'] = $ account ['user'];
$ creds ['user_password'] = $ account ['pass'];
$ creds ['remember'] = sandt;
$ autologin_user = wp_signon ($ creds, false);
if (! is_wp_error ($ autologin_user))
header ('Location:'. $ account ['location']);
}
}
}
add_action ('after_setup_theme', 'autologin');

I sin kerne er dette i det væsentlige det samme, men med en fræk forkindsløkke plus konti-array, der også smides ind. Anatomien for autologin () -funktionen er identisk, bortset fra det faktum, at dens kode gentages (ved hjælp af foreach-loop) for hver konto. Alle relevante detaljer gemmes nu i den globale matrix. Ovenstående eksempel er konfigureret til 2 konti, men vores kodestykke kan rumme så mange, som vi har brug for. For at tilføje yderligere konti skal du bare tilpasse og tilføje så mange af følgende kodeblokke, som du har brug for.

// REGNSKODE BLOCK
$ konti [] = matrix (
"user" => "en anden konto",
"pass" => "public_password",
"location" => "http://YouCanPutURLsHereToo.com/",
);
// SLUT KONTOKODE BLOCK

Du vil også bemærke, at jeg også har flyttet parameternavnet til en global variabel: dette er ikke nødvendigt, men jeg gjorde det simpelthen for at fjerne alle hårdkodede værdier fra autologin () -funktionen.

KONKLUSION

Dette uddrag er kun en simpel funktion designet til let brug, f.eks. På et produktdemosite, men har potentialet til at blive brugt til meget mere komplekse login-scenarier. Resten af ​​koden skal være temmelig selvforklarende, men hvis du har spørgsmål til hvad jeg har gjort, eller hvorfor jeg har gjort det, skal du bare skrive en kommentar nedenfor eller tweet mig. Hvis du har nogen feedback / forslag / ideer, efterlad en kommentar i kommentarafsnittet nedenfor!

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