Accesso amministratore automatico di WordPress in PHP

Il post di oggi sarà solo breve in cui ti mostrerò come installare una piccola funzionalità ordinata sul tuo sito WordPress. Questo, se usato in sicurezza, può essere molto conveniente. Questo è progettato per essere utilizzato su siti WordPress che offrono agli utenti un account generico al quale accedere. Ad esempio, in molte demo WordPress back-end l’autore creerà un account “demo” per consentire ai potenziali clienti di accedere e giocare con il proprio prodotto. Più spesso, l’autore mostrerà semplicemente un avviso dicendo;


NOME UTENTE: dimostrazione
PAROLA D’ORDINE: dimostrazione

Questo è un po ‘pedonale. Sicuramente possiamo rendere la demo un po ‘più snella e professionale? Ti darò un breve frammento per accedere automaticamente all’amministratore di WordPress con queste credenziali. Questo può essere rilasciato nel file delle funzioni del tuo tema oppure può essere inserito nel suo file plugin e attivato.

Questo potrebbe essere utile se;

  • Il tuo sito ha un account generico per gli utenti anonimi a cui accedere.
  • Desideri un link di accesso “one click”.
  • Desideri massimizzare la conversione della demo del prodotto fornendo un percorso rapido ed efficiente alla demo, riducendo al minimo i passaggi richiesti.
  • Desideri indirizzare i visitatori direttamente alla posizione pertinente (ad es. Pagina Impostazioni).

IMPORTANTE: Non utilizzarlo mai per accedere ad account con potere reale; per esempio. Account amministratore / editore ecc.
Usa questo frammento con attenzione.

Ok, così come ho fatto nei miei altri tutorial, ti darò prima il codice completo e annotato in modo che quelli di voi che non sono fan della lettura possano iniziare subito a sperimentarlo. Il seguente frammento è stato disegnato sotto forma di un plugin autonomo (la mia preferenza personale).

Harri Bell-Thomas su Github

/ *
Nome plug-in: Accesso automatico
URI del plug-in: http://hbt.io/
Versione: 1.0.0
Autore: Harri Bell-Thomas
URI dell'autore: http://hbt.io/
* /

funzione autologin () {
// PARAMETRO DA CONTROLLARE
if ($ _GET ['autologin'] == 'demo') {

// ACCOUNT NOME UTENTE PER ACCEDERE
$ creds ['user_login'] = 'demo';

// PASSWORD ACCOUNT DA UTILIZZARE
$ creds ['user_password'] = 'demo';

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

if (! is_wp_error ($ autologin_user))
header ('Posizione: wp-admin'); // POSIZIONE DA RIDURRE A
}
}
// AGGIUNGI CODICE SOLO PRIMA DI INVIARE INTESTATORI E COOKIE
add_action ('after_setup_theme', 'autologin');

USO

Questo è molto semplice da usare. Il nome utente e la password dell’account sono specificati nel file del plug-in (codice sopra) e per accedere è sufficiente visitare; http://example.com/wp-login.php?autologin=demo

Dovresti essere immediatamente reindirizzato a wp-admin, effettuato l’accesso all’account specificato. Se le credenziali sono errate, dovresti vedere il modulo di accesso come di consueto.

PERSONALIZZARE

Questo frammento è molto facile da personalizzare. Ci sono essenzialmente solo 3 cose che dovrai modificare, e tutte queste modifiche devono essere fatte nel seguente blocco di codice (righe da 11 a 17 del codice completo)

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

// ACCOUNT NOME UTENTE PER ACCEDERE
$ creds ['user_login'] = 'dummy';

// PASSWORD ACCOUNT DA UTILIZZARE
$ creds ['user_password'] = 'pa55word';

Nella prima riga vedrai il controllo condizionale per il parametro URL. Il blocco di codice sopra verrà verificato; wp-login.php? login = dummy_account

Questi valori possono essere quelli che desideri, ma fai attenzione a evitare i parametri originali di WordPress come “logout”, “action” e “redirect_to”. La riga 4 è dove si specifica il nome utente con cui accedere; lo snippet di codice personalizzato tenterà di accedere all’account “fittizio”. Come probabilmente intuirai, la riga 7 è dove specifichi la password. La password sopra è “pa55word”. Inserisci questi valori e dovresti essere pronto per partire!

ESTENSIONI

Al momento il nostro snippet è impostato per l’accesso automatico solo a un account. Cosa succede se desideriamo collegamenti di accesso diversi per account diversi? Questo è abbastanza veloce e facile da fare e non richiede di ripetere più e più volte l’intero frammento. Dai un’occhiata qui sotto alla mia soluzione.

/ *
Nome plug-in: Accesso automatico
URI del plug-in: http://hbt.io/
Descrizione: creare comodi collegamenti di accesso automatico per accedere rapidamente agli account generici. Configura il codice sorgente per apportare modifiche.
Versione: 1.0.0
Autore: Harri Bell-Thomas
URI dell'autore: http://hbt.io/
* /

// Dichiara var globali
$ login_parameter globale, $ account;

// IL PARAMETRO DA CONTROLLARE
// per esempio. http://exmaple.com/wp-login.php?param_name=account
$ login_parameter = "autologin";

// BLOCCO CODICE ACCOUNT
$ account [] = array (
"user" => "demo",
"pass" => "demo",
"location" => "wp-admin",
);
// BLOCCO CODICE ACCOUNT FINE

// MODIFICA E RIPETI IL BLOCCO DEL CODICE PER TANTI CONTI NECESSARI

// Un altro esempio di iterazione
$ account [] = array (
"user" => "tcwp",
"pass" => "demo",
"location" => "wp-admin /? tcwp-sent-me",
);


// VEDI ESEMPIO PRECEDENTE PER I DETTAGLI SU QUESTA FUNZIONE
funzione autologin () {
$ login_parameter globale, $ account;
foreach ($ account as $ account) {
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))
header ('Location:'. $ account ['location']);
}
}
}
add_action ('after_setup_theme', 'autologin');

Fondamentalmente questo è essenzialmente lo stesso, ma con un ciclo foreach sfacciato e anche un array di account inserito. L’anatomia della funzione autologin () è identica, tranne per il fatto che il suo codice viene ripetuto (usando il ciclo foreach) per ciascun account. Tutti i dettagli rilevanti sono ora memorizzati nell’array globale. L’esempio sopra è impostato per 2 account, ma il nostro frammento può adattarsi a quanti ne abbiamo bisogno. Per aggiungere altri account è sufficiente personalizzare e aggiungere tutti i seguenti blocchi di codice necessari.

// BLOCCO CODICE ACCOUNT
$ account [] = array (
"user" => "anotheraccount",
"pass" => "public_password",
"location" => "http://YouCanPutURLsHereToo.com/",
);
// BLOCCO CODICE ACCOUNT FINE

Noterai anche che ho spostato anche il nome del parametro in una variabile globale: questo non è necessario, ma l’ho fatto semplicemente per rimuovere tutti i valori codificati dalla funzione autologin ().

CONCLUSIONE

Questo frammento è solo una semplice funzione progettata per un utilizzo leggero, ad esempio su un sito dimostrativo del prodotto, ma ha il potenziale per essere utilizzato per scenari di accesso molto più complessi. Il resto del codice dovrebbe essere piuttosto autoesplicativo, ma se hai qualche domanda su cosa ho fatto o sul perché l’ho fatto, lascia un commento qui sotto o tweet. Se hai commenti / suggerimenti / idee lascia un commento nella sezione commenti qui sotto!

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