‘Wachtwoord vergeten’ emails uitschakelen

‘Wachtwoord vergeten’ emails uitschakelen

WordPress heeft de functie om een nieuw wachtwoord te mailen als de gebruiker zijn wachtwoord vergeten is. Dat is heel goed want mensen vergeten nou eenmaal hun wachtwoord wel eens. Het enige nadeel aan deze functie is dat WordPress standaard de administrator ook een mail stuurt wanneer een gebruiker zijn wachtwoord verandert.

Als jouw site 50.000 gebruikers heeft krijg jij dus continue emails dat iemand zijn wachtwoord heeft veranderd.

Deze emails worden al snel irritant, dus in dit artikel laat ik je zien hoe je die email uitschakelt. Dit zijn alleen de meldingen dat iemand zijn wachtwoord heeft veranderd. De functionaliteit van je wachtwoord resetten via email blijft dus gewoon bestaan!

Tip: Lijkt dit allemaal te technisch? Lees dan de laatste paragraaf over hoe je de emails uitschakelt zonder één regel code te hoeven schrijven.

Hoe je de email bij het veranderen van je wachtwoord uitschakelt

WordPress heeft heel veel functies gedefinieerd. Eén van die functies heet wp_password_change_notification. Deze is gedefinieerd in pluggable.php. Een functie is gewoon een stukje code die je een naampje hebt gegeven. Als je dat stukje code wilt uitvoeren hoeft je alleen maar die naam te roepen. In dit geval dus wp_password_change_notification.

In WordPress worden functies op een handige manier gedefinieerd. WordPress kijkt eerst of een functie al gedefinieerd is, en als dat niet het geval is zal hij de functie definiëren.

Dit is handig voor ons, omdat wij de functie kunnen definiëren zonder dat hij wat doet. WordPress zal dan niet meer haar eigen definitie van die functie maken. Dat doe je zo:

if( !function_exists( 'wp_password_change_notification' ) ) {
	function wp_password_change_notification() {}
}

Een plugin

Nu moet deze code een plugin worden. Sla het stukje code op als email_uitschakelen.php. WordPress snapt alleen niet dat dit een plugin is. Daarvoor moet iets meer code in het bestand staan:

<?php
/*
Plugin Name: Wachtwoord vergeten email uitschakelen
Plugin URI: https://www.online-wp-leren.nl
Description: Deze plugin zorgt ervoor dat je geen emails krijgt als een gebruiker zijn wachtwoord verandert.
Version: 1.0
Author URI: https://www.online-wp-leren.nl
*/
 
if( !function_exists( 'wp_password_change_notification' ) ) {
	function wp_password_change_notification() {}
}

Dit bestand moet je uploaden via de plugin pagina in het admin deel van WordPress (bekijk mijn video over plugins in WordPress). Als je het via het admin paneel wilt doen, zul je het bestand moeten zippen. Je kunt een nieuw zipped mapje maken (rechtermuisknop > nieuw > Compressed (zipped) folder) en daar het bestand naartoe slepen. Dit zipje kun je dan uploaden via het admin paneel.

Je kunt ook een ftp-programma gebruiken als je daar bekend mee bent. Zet het bestandje in /wp-content/plugins/.

Als je dan in WordPress de plugin activeert krijg je geen mails meer wanneer mensen hun wachtwoord veranderen.

Functions.php van je thema

Nu denk je misschien: “Ik heb geen plugin nodig, ik stop deze code gewoon in functions.php van mijn thema”.

Dat is goed bedacht. Helaas werkt het niet zo. Weet je nog dat ik zei dat de functie om emails te verzenden gedefinieerd werd in pluggable.php? Dat bestand wordt eerder geladen dan functions.php van je thema.

Daarnaast weten we dat WordPress (en wij, als goede ontwikkelaars) eerst kijkt of een functie al gedefinieerd is. Omdat pluggable.php eerder wordt geladen dan functions.php is de functie al gedefinieerd op het moment dat wij hem in functions.php proberen te definiëren. Het resultaat is dat er niets gebeurt.

Daarom moet dit echt met een plugin worden gedaan.

Help, ik ben geen ontwikkelaar!

Als al het bovenstaande net zo goed chinees had kunnen zijn voor jou heb ik goed nieuws. Het is ook mogelijk om gewoon een plugin te installeren die al gemaakt is. Ik raad de plugin Disable Lost Password Email aan. Deze doet iets vergelijkbaars als wat wij hierboven hebben gedaan, alleen is deze plugin iets zwaarder voor je website. Daarom schrijf ik ook liever mijn eigen plugin.

Geef een reactie

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