0

wp_mail関数を使用しているカスタムWordpressテンプレートを使用しています。

だから私は以下のこのコードを持っています、そして太字の部分は私に問題を与えています:

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エラーが発生します。

そのesc_html()部分を「12345」のような通常のテキストに置き換えると、正常に機能します。

メッセージの最後に追加したいのはこれです:

"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']),

等...

ここで私を助けてください。ありがとう!

4

2 に答える 2

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);
于 2013-03-06T00:26:10.557 に答える
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']) . '>');
于 2013-03-06T00:14:54.540 に答える