Suporte » Desenvolvendo com WordPress » Mudança de e-mail no campo “De” quando receber e-mail de form de contato

  • Olá pessoal, boa noite.
    Gostaria de ajuda de vocês, já mexi um pouco no código do tema, e vi alguns tópicos na internet mais nada me ajudou no que gostaria de alterar, parece simples mais não estou conseguindo, vamos la:

    No template atual que uso no meu site, no final tem um formulário de contato configurável pelas opções do tema, é nativo do template, não utilizo nenhum plugin como contact form, é apenas para enviar um simples e-mail então me atende bem.

    O formulário funciona bem, porém ao receber o e-mail percebi que o campo “DE” vem com o nome do site e o e-mail default do wordpress, talvez? <wordpress@caixaaltamarketing.digital>

    Mas nesse campo eu gostaria que tivesse o nome e o e-mail Fulano Souza <fulanosouza@yahoo.com.br> da pessoa que preencheu o formulário, sendo assim ao responder eu responderia direto a mensagem pra quem enviou e não novamente pra mim mesmo, compreendem?

    Já achei o arquivo responsável por esse formulário, vou postar o código dele completo aqui pra ajudar a quem puder me ajudar a traduzir e em que local do código consigo modificar isso, grato a todos.

    <?php if (!defined('ABSPATH')) die('No direct access allowed'); ?>
    <?php
    
    class TMM_Contact_Form {
    
    	public static $types = array(
    		'textinput' => 'Textinput',
    		'email' => 'Email',
    		'website' => 'Website',
    		'messagebody' => 'Message',
    		'select' => 'Select'
    	);
    	public $options_description = array(), $contacts_form_titles = array(), $forms_count = 1;
    
    	public static function save($data) {
    		TMM::update_option('contact_form', $data);
    	}
    
    	public static function get_form($form_name) {
    		$contact_forms = TMM::get_option('contact_form');
    		if (!empty($contact_forms)) {
    			//after import
    			if (!empty($contact_forms) AND is_string($contact_forms)) {
    				$contact_forms = unserialize($contact_forms);
    			}
    			foreach ($contact_forms as $form) {
    				if ($form['title'] == $form_name) {
    					return $form;
    				}
    			}
    		}
    
    		return array();
    	}
    
    	public static function get_forms_names() {
    		$contact_forms = TMM::get_option('contact_form');
    		$result = array();
    
    		if (!empty($contact_forms)) {
    			//after import
    			if (!empty($contact_forms) AND is_string($contact_forms)) {
    				$contact_forms = unserialize($contact_forms);
    			}
    
    			if (!empty($contact_forms) AND is_array($contact_forms)) {
    				foreach ($contact_forms as $form) {
    					if ($form['title'] == '__FORM_NAME__' OR empty($form['title'])) {
    						continue;
    					}
    					$result[$form['title']] = $form['title'];
    				}
    			}
    		}
    
    		return $result;
    	}
    
    	public static function contact_form_request() {
    		$data = array();
    		parse_str($_REQUEST['values'], $data);
    		$errors = array();
    		$form = self::get_form($data['contact_form_name']);
    		$website = "";
    		$messagebody = "";
    		$pre_messagebody_info = "";
    
    		if (!empty($form['inputs'])) {
    			foreach ($form['inputs'] as $input) {
    				$name = strtolower(trim(urlencode($input['label'])));
    				$name = str_replace(" ", "_", $name);
    				$pattern = "/[^a-zA-Z0-9_]+/i";
    				$name = preg_replace($pattern, "", $name);
    
    				if ($input['is_required']) {
    					if (empty($data[$name])) {
    						$errors[$name] = trim($name);
    					}
    				}
    
    				if ($input['type'] == 'email') {
    					if (!is_email(@$data[$name])) {
    						$errors[$name] = trim($name);
    					}
    				}
    
    				if ($input['type'] == 'messagebody') {
    					$messagebody = @$data[$name];
    				}
    
    				if ($input['type'] == 'website') {
    					$website = @$data[$name];
    				}
    
    				if ($input['type'] != 'website' AND $input['type'] != 'messagebody') {
    					$pre_messagebody_info.="<strong>" . $input['label'] . "</strong>" . ": " . @$data[$name] . "<br /><br />";
    				}
    			}
    		}
    
    		//capcha	
    		if (@$form['has_capture']) {
    			if (substr($data['verify_code'], 7, 5) != $data['verify']) {
    				$errors["verify"] = "Capcha";
    			}
    		}
    
    		//*****
    		$result = array(
    			"is_errors" => 0,
    			"info" => ""
    		);
    		if (!empty($errors)) {
    			$result['is_errors'] = 1;
    			$result['hash'] = md5(time());
    			$result['info'] = $errors;
    			echo json_encode($result);
    			exit;
    		}
    
    		//*****
    		if (empty($website)) {
    			$website = __("Email from contact form", 'accio');
    		}
    
    		//*****
    		add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
    		add_filter('wp_mail_from_name', 'my_mail_from_name');
    
    		function my_mail_from_name($name) {
    			return get_option('blogname');
    		}
    
    		//*****
    		$after_message = "\r\n<br />--------------------------------------------------------------------------------------------------\r\n<br /> " . __('This mail was sent via', 'accio') . " " . site_url() . " " . __('contact form', 'accio');
    
    		//*****
    		$recepient_mail = sanitize_email($form['recepient_email']);
    		if (empty($form['recepient_email'])) {
    			$recepient_mail = sanitize_email(get_bloginfo('admin_email'));
    		}
    		//******
    
    		if (wp_mail($recepient_mail, $website, $pre_messagebody_info . nl2br($messagebody) . $after_message)) {
    			$result["info"] = "succsess";
    		} elseif( mail($recepient_mail, $website, nl2br($messagebody)) ) {
    			$result["info"] = "succsess";
    		} else {
    			$result["info"] = "server_fail";
    		}
    
    		$result['hash'] = md5(time());
    
    		echo json_encode($result);
    		exit;
    	}
    
    }
Visualizando 4 respostas - 16 até 19 (de um total de 19)
  • Criador do tópico aquilamendes

    (@aquilamendes)

    Ok, resolveu a questão de ao responder puxar o e-mail que foi colocado no form.
    Agora, vamos avançar na questão do assunto e gostaria de saber se é possível mudar o campo que aparece pra mim no roundcube (leitor de e-mail do cpanel) no campo DE ainda permanece o nome do meu site, não deveria estar o nome da pessoa que ela preencheu no form?

    Veja na imagem…

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Para o assunto, você faz o que eu disse ali em cima. Sobre o nome que aparece no seu e-mail, não: mudou apenas quem irá receber a resposta e não quem te enviou o e-mail.

    Abraços

    • Esta resposta foi modificada 6 anos, 10 meses atrás por Mário Valney.
    Criador do tópico aquilamendes

    (@aquilamendes)

    Ok, sobre o assunto vou voltar no ponto indicado e tentar alterar…
    Sobre o campo DE no leitor de e-mail, dá pra mudar? Quem irá receber a resposta tá ok, já fiz o teste e é isso mesmo…

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Foi minha primeira resposta: você não deve fazer isso, pois pode ferir as regras do firewall do seu servidor. Se quiser ver quem mandou na listagem, sugiro adicionar no assunto.

Visualizando 4 respostas - 16 até 19 (de um total de 19)
  • O tópico ‘Mudança de e-mail no campo “De” quando receber e-mail de form de contato’ está fechado para novas respostas.