WP gebruiker terugsturen naar vorige pagina na inloggen via Magic Login plugin

Vraag:

Ik heb een WordPress website met pagina’s waarvoor mensen moeten inloggen. Om dit mogelijk te maken heb ik de gratis Ultimate Member plugin geïnstalleerd. Nadeel is dat gebruikers dan in moeten loggen met een gebruikersnaam / e-mailadres en wachtwoord wat als vervelend ervaren wordt.

Daarom heb ik ook de Magic Login plugin geïnstalleerd. Gebruikers geven hun e-mailadres op en krijgen dan een unieke login link via de e-mail toegestuurd. Deze manier van inloggen wordt op steeds meer plekken gebruikt.

> Lees ook “Inloggen in WordPress met een eenmalige link”

Het nadeel van de Magic Login link is dat deze de gebruiker na inloggen niet terugstuurt naar de pagina waarvoor ingelogd moest worden. Dit zou wel handig zijn. Anders moeten mensen op de vorige knop klikken of de pagina opnieuw opzoeken.

Maar hoe kan je een gebruiker na inloggen terugsturen?

Antwoord:

De Magic Link shortcode om het inlogformulier te tonen biedt ondersteuning voor een redirect_to=”” parameter. Maar deze kan je standaard alleen voorzien van een vaste URL zoals de mijn persoonlijke pagina of de homepage.

We willen de waarde voor deze parameter dynamisch instellen omdat er meerdere pagina’s zijn waarvoor ingelogd moet worden. De voorkeur gaat uit om niet de Magic Login plugin aan te passen omdat je na een plugin update de wijzigingen kwijt bent.

Voeg onderstaande PHP code toe aan het functions.php bestand van jouw thema:

function custom_magic_login_form() {
   if (false !== wp_get_referer()) {
      $html = do_shortcode('[magic_login_form redirect_to="' . esc_url_raw(wp_get_referer()) . '"]');
   } else {
      $html = do_shortcode('[magic_login_form]');
   }

   echo $html;
}
add_shortcode('custom_magic_login_form', 'custom_magic_login_form');

Toelichting:
Bovenstaande PHP functie voert eigenlijk de shortcode van de Magic Link plugin uit om het inlogformulier te tonen. Maar als de referrer bekend is wordt deze toegevoegd aan de redirect_to=”” parameter.

Een referrer is de URL waar vandaan een gebruiker doorgestuurd is naar het inlogformulier omdat de gebruiker nog niet ingelogd is. Dat is precies de URL waar wij de gebruiker na inloggen weer naar terug willen sturen.

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.