Suporte » Desenvolvendo com WordPress » Mudar email de recuperação de senha

  • Olá!

    Estou com muita dificuldade em como mudar aquele email quando o usuário perde a senha “Alguém solicitou a alteração de senha…”

    Já tentei usar o plugin SB Welcome email Editor, porém como uso o Login With Ajax ele entra em conflito. Sendo assim minha única saída seria alterar o texto desse email na raiz, no entanto não consigo localizá-lo.

    Alguém pode me ajudar?
    Obrigado desde já.

Visualizando 1 resposta (de um total de 1)
  • Criador do tópico fernandosiri

    (@fernandosiri)

    Consegui achar os campos para alteração no arquivo wp-login.php

    função inteira

    function retrieve_password() {
    	global $wpdb, $current_site;
    
    	$errors = new WP_Error();
    
    	if ( empty( $_POST['user_login'] ) ) {
    		$errors->add('empty_username', __('<strong>ERROR</strong>: Enter a username or e-mail address.'));
    	} else if ( strpos( $_POST['user_login'], '@' ) ) {
    		$user_data = get_user_by( 'email', trim( $_POST['user_login'] ) );
    		if ( empty( $user_data ) )
    			$errors->add('invalid_email', __('<strong>ERROR</strong>: There is no user registered with that email address.'));
    	} else {
    		$login = trim($_POST['user_login']);
    		$user_data = get_user_by('login', $login);
    	}
    
    	do_action('lostpassword_post');
    
    	if ( $errors->get_error_code() )
    		return $errors;
    
    	if ( !$user_data ) {
    		$errors->add('invalidcombo', __('<strong>ERROR</strong>: Invalid username or e-mail.'));
    		return $errors;
    	}
    
    	// redefining user_login ensures we return the right case in the email
    	$user_login = $user_data->user_login;
    	$user_email = $user_data->user_email;
    
    	do_action('retreive_password', $user_login);  // Misspelled and deprecated
    	do_action('retrieve_password', $user_login);
    
    	$allow = apply_filters('allow_password_reset', true, $user_data->ID);
    
    	if ( ! $allow )
    		return new WP_Error('no_password_reset', __('Password reset is not allowed for this user'));
    	else if ( is_wp_error($allow) )
    		return $allow;
    
    	$key = $wpdb->get_var($wpdb->prepare("SELECT user_activation_key FROM $wpdb->users WHERE user_login = %s", $user_login));
    	if ( empty($key) ) {
    		// Generate something random for a key...
    		$key = wp_generate_password(20, false);
    		do_action('retrieve_password_key', $user_login, $key);
    		// Now insert the new md5 key into the db
    		$wpdb->update($wpdb->users, array('user_activation_key' => $key), array('user_login' => $user_login));
    	}
    	$message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n";
    	$message .= network_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";
    
    	if ( is_multisite() )
    		$blogname = $GLOBALS['current_site']->site_name;
    	else
    		// The blogname option is escaped with esc_html on the way into the database in sanitize_option
    		// we want to reverse this for the plain text arena of emails.
    		$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    
    	$title = sprintf( __('[%s] Password Reset'), $blogname );
    
    	$title = apply_filters('retrieve_password_title', $title);
    	$message = apply_filters('retrieve_password_message', $message, $key);
    
    	if ( $message && !wp_mail($user_email, $title, $message) )
    		wp_die( __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function...') );
    
    	return true;
    }

    Lugares para alterar o texto:

    $message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n";
    	$message .= network_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";

    Só mais uma dúvida, nessa mensagem eu não quero que o usuário altere a senha, mas sim que receba dentro do email a que ele havia esquecido. Isso é possível?

    tentei adicionar essa linha
    $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
    No entanto onde era para aparecer a senha ficou em branco.
    Alguém sabe como posso fazer?

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Mudar email de recuperação de senha’ está fechado para novas respostas.