From a5d26f78dbe2120156fb9b57a3d5fb024272d06c Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Mon, 9 Dec 2019 13:24:20 +0000 Subject: [PATCH] Users: Introduce `admin_email_remind_interval` filter for dismissing the admin email confirmation screen. Props desrosj, birgire. Fixes #48334. git-svn-id: https://develop.svn.wordpress.org/trunk@46838 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-login.php | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/src/wp-login.php b/src/wp-login.php index 7c2c5a5a02..f9f25fa3eb 100644 --- a/src/wp-login.php +++ b/src/wp-login.php @@ -581,14 +581,26 @@ switch ( $action ) { exit; } + /** + * Filters the interval for dismissing the admin email confirmation screen. + * + * If `0` (zero) is returned, the "Remind me later" link will not be displayed. + * + * @since 5.3.1 + * + * @param int $interval Interval time (in seconds). Default is 3 days. + */ + $remind_interval = (int) apply_filters( 'admin_email_remind_interval', 3 * DAY_IN_SECONDS ); + if ( ! empty( $_GET['remind_me_later'] ) ) { if ( ! wp_verify_nonce( $_GET['remind_me_later'], 'remind_me_later_nonce' ) ) { wp_safe_redirect( wp_login_url() ); exit; } - // "Remind me later" is a bit ambiguous. Three days later? - update_option( 'admin_email_lifespan', time() + 3 * DAY_IN_SECONDS ); + if ( $remind_interval > 0 ) { + update_option( 'admin_email_lifespan', time() + $remind_interval ); + } wp_safe_redirect( $redirect_to ); exit; @@ -695,21 +707,23 @@ switch ( $action ) { -
- 0 ) : ?> +
+ 'confirm_admin_email', - 'remind_me_later' => wp_create_nonce( 'remind_me_later_nonce' ), - ), - $remind_me_link - ); + $remind_me_link = wp_login_url( $redirect_to ); + $remind_me_link = add_query_arg( + array( + 'action' => 'confirm_admin_email', + 'remind_me_later' => wp_create_nonce( 'remind_me_later_nonce' ), + ), + $remind_me_link + ); - ?> - -
+ ?> + +
+