2013-03-05 55 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