Beveiliging Code snippets Plugins

Een password reset email sturen na automatisch aanmaken van een WordPress gebruiker

Soms is het nodig om via maatwerk code gebruikers aan te kunnen maken in WordPress, hetzij via een import, hetzij via een “maak gebruiker aan” knop aan de front-end van de website waarmee je andere gebruikers wilt aanmelden. Het is dan wel handig als de nieuwe gebruiker een wachtwoord in kan stellen.

Ik dacht eerst gebruik te maken van de resetpassword link, maar dan moet de gebruiker eerst zijn email adres invullen, daarna krijgt hij een reset link per email, en vervolgens kan de gebruiker via de link het wachtwoord resetten. Het is natuurlijk veel handiger als de gebruiker direct de tweede link krijgt.

Daarvoor moet je een key aanmaken, de password reset key. Deze is tijdelijk geldig.

De onderstaande code genereert een email. Denk erom dat de functie die de email stuurt nog wel geschreven moet worden. Kijk hiervoor bij dit artikel

function dtc_send_password_reset_mail($user_id){

    $user = get_user_by('id', $user_id);
    $firstname = $user->first_name;
    $email = $user->user_email;
    $adt_rp_key = get_password_reset_key( $user );
    $user_login = $user->user_login;
    $rp_link = '<a href="' . wp_login_url()."/resetpass/?key=$adt_rp_key&login=" . rawurlencode($user_login) . '">' . wp_login_url()."/resetpass/?key=$adt_rp_key&login=" . rawurlencode($user_login) . '</a>';

    if ($firstname == "") $firstname = "gebruiker";
    $message = "Hi ".$firstname.",<br>";
    $message .= "An account has been created on ".get_bloginfo( 'name' )." for email address ".$email."<br>";
    $message .= "Click here to set the password for your account: <br>";
    $message .= $rp_link.'<br>';

    //deze functie moet je zelf nog toevoegen. 
    dtc_send_email($email, __("Your account on ".get_bloginfo( 'name'), "dtc"), $message);

}

Related Articles

Laat een reactie achter