nahled_prihlaseniPro přihlášení k wordpressu se využívá uživatelské jméno a heslo. Žádným jiným způsobem se k čisté instalaci wordpressu nemůžete přihlásit. V registraci jste ovšem uváděli email, kam vám bylo zasláno potvrzení o registraci, popřípadě i vygenerované heslo. Email také slouží k změně zapomenutého hesla. Proč tedy email nevyužít i k možnosti přihlášení? Pokud se chcete přihlašovat pomocí emailu, tak čtěte dále.

Ze začátku chci hned zmínit, že se nemusíte bát, že by jste zrušili přihlašování pomocí uživatelského jména. Tato možnost přihlášení bude stále možná, jen přibude možnost, že se přihlásíte pomocí registračního emailu. Pojďme se tedy podívat na pár řádků, které nám tuto funkci umožní. Kód se vkládá do functions.php vaší aktuální šablony.

Přihlášení

function prihlaseni_pres_email($user,$username,$password) {
if (is_email($username)) {
$user = get_user_by_email($username);
if ($user) $username = $user->user_login;
}
return wp_authenticate_username_password(null,$username,$password );
}
add_filter('authenticate', 'prihlaseni_pres_email', 20, 3);

Tato část kódu má za úkol, aby při zjištění emailu v kolonce Uživatelské jméno, porovnala tento email s emaily registrovaných uživatelů. Pokud najde schodu, tak zjistí, zdali je správně zadané heslo k účtu, který je propojen s tímto emailem.

Změna kolonky

function pridat_popisek($text){
if(in_array($GLOBALS['pagenow'], array('wp-login.php'))){
if ($text == 'Uživatelské jméno'){$text = 'Uživatelské jméno / Email';}
}
return $text;
}
add_filter('gettext','pridat_popisek');

Jelikož přidáme novou možnost přihlašování, tak by bylo vhodné upozornit na to ostatní uživatele. Proto ještě změníme základní popisek Uživatelské jméno na  Uživatelské jméno / Email. Tím je celá změna hotová a již jen stačí uložit soubor functions.php a nové přihlášení odzkoušet.

4 komentáře k článku “WordPress: Přihlášení pomocí emailu

  1. Díky za skvělý kód.
    Funkce get_user_by_email() je ale už deprecated dá se ale jednoduše nahradit funkcí get_user_by() takto:
    $user = get_user_by(‚email‘, $username);

  2. Michal Stanke 26.5.2015 v 10.36 říká:

    Zajímavý kód. Nechal jsem se inspirovat, trochu jsem to upravil a tady (http://git.io/vkv6r) je výsledek. Funguje i použití jako plugin.

    • admin Autor článku 26.5.2015 v 10.59 říká:

      Zdravím,
      jsem rád, že se ti kód líbí. Osobně když nemusím, tak nevyužívám plugin. Potom celý web jenom bobtná. Mimochodem, plugin na přihlašování přes email do wordpressu už je.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Post Navigation