WordPress 5.3 introduced a screen that appears every six months to check if the administration email for the website is up to date.
You've probably seen it. It looks like this:
Thankfully it will only show to people with the "manage_options" capability, which generally means only website admins.
For most of us, it's annoying, but on a couple of websites I've worked on, it was actually broken and not going away.
To disable the WordPress admin email verification screen, add add_filter('admin_email_check_interval', '__return_false'); to your child theme functions.php, or add a ridiculously high Unix time to admin_email_lifespan in wp_options in your database.
Let's look at how we'd implement either of those two options.
Add a filter to turn off the verification screen
You'll need to add some code to your theme. You should only ever do that to a child theme. If you don't have a child theme setup I have a full tutorial on creating child themes which I recommend you go through first.
Add this code to the functions.php file of your child theme:
add_filter( 'admin_email_check_interval', '__return_false' );
In case it's hard to make our, that's a double underscore before return_false.
The WordPress code you're hooking into comes from login.php and looks like this:
Change the admin email check interval
If you wanted to change how often the admin email confirmation appears, you can use a variation of the code from the previous section.
To change the frequency of the admin email verification, add this code to functions.php in your child theme:
add_filter( 'admin_email_check_interval', 12 * MONTH_IN_SECONDS );
That will change it to appear every year from the last time you confirmed it.
If you want another interval, change the 12 to however many months you want the interval to be.
Don't change MONTH_IN_SECONDS unless you know what you're doing. That's a WordPress constant equal to 30 days. There's no need to put it in quotes, because it's an integer, not a string.
Set a long delay in the database
Let's go through the steps where you can't access the admin area of the website or you can't / don't want to use a child theme, or you just prefer to hard code the delay in the database.
Look for the wp_options table in your database. The table prefix might be different in your database, but it will end in _options.
In wp_options you will have a row named "admin_email_lifespan". The value might be 0 or it might be a Unix timestamp.
To set a long delay, you want to add a timestamp from a long way in the future to admin_email_lifespan.
The simplest way is to go to Epoch & Unix Timestamp Converter.
It will look something like this.
Put a year well in the future in the Human date to Timestamp section then click the button to convert it.
For this example, I put in 2075 and got the timestamp of 3338761010.
Feel free to just use that timestamp in your own database, rather than converting it yourself.
Go back to the admin_email_lifespan row of your wp_options table and change the option_value column to 3338761010 or your converted timestamp.
Make sure to paste in only the digits, without any quotation marks or other characters.
Now the next time you'll be bothered, you'll be 50 something years older than you are now.
Where is the Administration Email Address?
The purpose of this feature by WordPress is to help stop people being locked out of their websites. There are other ways to get back in through the database, which I'll cover in another tutorial.
In case the admin email is incorrect, you can find it under Settings -> General. Look for Administration Email Address.
When you make a change to the admin email address, you'll receive an email confirming that you meant to make that change. Until you click the verification URL in that email, the admin email address won't change.
You could, of course, change the admin email in the database and bypass the email verification check. It's in the wp_options table, under admin_email.