Skip to content

Instantly share code, notes, and snippets.

@strangerstudios
Created March 11, 2014 14:47
Updates URLs on susbites and in lost password request emails to point to the subsite where the lost password request started.
<?php
/*
Plugin Name: Subsite Lostpassword
Plugin URI: http://www.paidmembershipspro.com/wp/subsite-lostpassword/
Description: Updates URLs on susbites and in lost password request emails to point to the subsite where the lost password request started.
Version: .1
Author: Stranger Studios
Author URI: http://www.strangerstudios.com
*/
/*
Fixes the URL at the bottom of the login page.
*/
function sslp_lostpassword_url($url, $redirect)
{
$args = array( 'action' => 'lostpassword' );
if ( !empty($redirect) ) {
$args['redirect_to'] = $redirect;
}
$lostpassword_url = add_query_arg( $args, site_url('wp-login.php', 'login') );
return apply_filters( 'lostpassword_url', $lostpassword_url, $redirect );
}
add_filter("lostpassword_url", "sslp_lostpassword_url", 10, 2);
/*
Fixes URL in email that goes out.
*/
function sslp_retrieve_password_message($message, $key)
{
if ( empty( $_POST['user_login'] ) ) {
return $message; //error probably
} else if ( strpos( $_POST['user_login'], '@' ) ) {
$user_data = get_user_by( 'email', trim( $_POST['user_login'] ) );
if ( empty( $user_data ) )
return $message; //another error condition, no user found
} else {
$login = trim($_POST['user_login']);
$user_data = get_user_by('login', $login);
}
$user_login = $user_data->user_login;
$message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n";
$message .= home_url( '/' ) . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
$message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "\r\n\r\n";
$message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
$message .= '<' . site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";
return $message;
}
add_filter("retrieve_password_message", "sslp_retrieve_password_message", 10, 2);
@eteubert
Copy link

I wrote my own implementation, if anyone still needs it: https://gist.github.com/eteubert/293e07a49f56f300ddbb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment