• Gebruiker WordPress uitloggen in PHP

    Geplaatst op 29 oktober 2013 20:54, gewijzigd op 30 oktober 2013 00:46

    Een gebruiker uitloggen kan in WordPress heel gemakkelijk door de functie wp_logout() aan te roepen. Die functie beëindigt de huidige sessie en roept meteen ook de functie clear_auth_cookie() aan zodat eventuele cookies opgeruimd worden.

    Maar er is nog wel een dingetje wat je niet zou verwachten. De huidige gebruiker is namelijk nog steeds geldig binnen WordPress doordat de global variabele $current_user nog die gegevens bevat. Daardoor is de huidige gebruiker in het actuele script nog ingelogd terwijl die in de rest van de backend al is uitgelogd.

    Dit probleem kun je oplossen door de gebruiker naar een andere pagina te sturen met behulp van wp_redirect() en exit.

    Een charmantere oplossing hiervoor is naar mijn gevoel echter om de cache van de huidige gebruiker te legen door middel van wp_set_current_user(0). Hieronder een toepassing met een action hook.

    function custom_user_logout()
    {

    if( is_user_logged_in() )
    {

    wp_logout();
    wp_set_current_user(0);

    }

    }

    add_action( 'after_setup_theme', 'custom_user_logout');

  • Zoeken