2013-03-05 82 views
0

我正在使用使用wp_mail函数的自定义Wordpress模板。将额外内容添加到wp_mail'消息'段

所以我有下面这段代码,并加粗部分是给我的问题:

wp_mail($ et_email_to,sprintf的( '[%S]' esc_html($ _ POST [ 'et_contact_subject']),$ et_site_name),esc_html($ _ POST ['et_contact_message']),'From:''。esc_html($ _ POST ['et_contact_name'])。''<'。esc_html($ _ POST ['et_contact_email'])。' >');

我想在消息部分包含额外的东西。 esc_html($_POST['et_contact_message'])

当我尝试添加任何额外的东西时,它会给出各种PHP错误。

如果我用'12345'这样的普通文本代替esc_html()部分,它可以正常工作。

我想添加到我的邮件末尾是这样的:

"IP Address: ".$_SERVER['REMOTE_ADDR']." 

Came From: ".$_SERVER['HTTP_REFERER']." 

Browser: ".$_SERVER['HTTP_USER_AGENT'] 

它工作正常,如果我删除esc_html()部分,但我不能让双方的共同努力。

esc_html()本身也很好地工作,它打印来自联系人窗体的消息。 我只是无法让两件事情一起工作。

这些都会例如失败:

esc_html($_POST['et_contact_message']) 12345, 

esc_html($_POST['et_contact_message'] $_SERVER['REMOTE_ADDR']), 

等等

请帮我在这里。 谢谢!

回答

0

我终于找到了一种方法,使其工作! 下面是代码:

$message = $_POST['et_contact_message']; 
$message .= ' 

IP Address: ' . $_SERVER['REMOTE_ADDR']; 
$message .= ' 

Came From: ' . $_SERVER['HTTP_REFERER']; 
$message .= ' 

Browser: ' . $_SERVER['HTTP_USER_AGENT']; 
wp_mail($et_email_to, sprintf('[%s] ' . esc_html($_POST['et_contact_subject']), $et_site_name), $message,'From: "'. esc_html($_POST['et_contact_name']) .'" <' . esc_html($_POST['et_contact_email']) . '>'); 
2

退房字符串连接在PHP - 有很多方法可以做到这一点,我将重点介绍几个从http://www.php.net/manual/en/language.types.string.php

<?php 
$foo = 'some'; 
$bar = 'baz'; 

$message = ''; 
$message .= 'Add ' . $foo; 
$message .= ' variable to a string'; 

// You can do this all at once, in one line or many 
$mesage = 'Add ' . $foo . ' variable to a string'; 

// Double-quotes are useful 
$message = "Add {$foo} variable to a string"; 

// And there are other methods, like HEREDOC 
$message = <<<TEXT 
Add $foo variable to a string...in a HEREDOC 



block. 
TEXT; 

// Some editors, like VIM, support syntax highlighting in HEREDOC 
// Useful if you want to write out legeble code from other languages, like 
// SQL. 
$message = <<<SQL 
SELECT 
    * 
FROM 
    table 
WHERE 
    col = %s 
SQL; 

$wpdb->prepare($message, $foo); 
+0

您好,感谢!在我发布问题几分钟后,我确实找到了解决方案。 (在发布问题之前,我花了几个小时尝试)。我的解决方案与您的解决方案非常相似。 – 2013-03-06 03:55:24