Ok, I found the real fix. The problem is that with the new WordPress system, the password isn’t emailed to you. You get a “hash” code that is randomly generated, and you use that to send someone to a password reset (in this case it’s really a password set) page. So, the fix is to send the user a link to set their password rather than trying to send them a password. Below is the code to fix it.
Look for the line of code that starts with:
$user_message = str_replace('[user_password]'
Replace that entire line (including the part after what I pasted above) with this:
// Generate a key.
$key = wp_generate_password( 20, false );
do_action( 'retrieve_password_key', $user_login, $key );
// Now insert the key, hashed, into the DB.
if ( empty( $wp_hasher ) ) {
require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
$hashed = time() . ':' . $wp_hasher->HashPassword( $key );
$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user_login ) );
$user_message = str_replace('[user_password]', '<a href="'.network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login').'" target="_blank">click to set</a>', $user_message);