使用 wp_mail() 将带有表单变量的电子邮件发送到电子邮件
Sending an email with form variables to an email using wp_mail()
我创建了一个 WP 模板并向其中添加了一个表单。
在表单下方,我添加了 wp_mail() 函数以将用户输入的数据发送到他们的电子邮件。
现在,我注意到:
注意:未定义索引:mypath.
中的名称
欢迎提供解决此问题的任何帮助。
编辑 1: 以通知我必须删除 if 语句。
编辑 2: 这实际上是我拥有的与表单相关的所有代码。我错过了什么吗?我需要在某处添加 add_action()
或类似的东西吗?
代码:
<form id="form" method="post" action="">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
</br>
<label for="surname">Surname:</label>
<input type="text" id="surname" name="surname">
</br>
<label for="email">Email:</label>
<input type="email" id="email" name="email">
</br>
<label for="tel">Phone number:</label>
<input type="tel" id="tel" name="tel">
</br>
<input type="submit" value="Submit" name="submit">
</form>
<?php
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$to = $_POST[$email]; //sendto@example.com
$subject = 'Reservation';
$body = 'Name: ' . $name . '\r\n' .
'Surname: ' . $surname . '\r\n' .
'Email ' . $email . '\r\n' .
'Phone number: ' . $tel . '\r\n';
wp_mail( $to, $subject, $body );
echo "Sent!";
}
?>
答案
编辑 3: 只是为了说明解决方案是 $to = $_POST['email']; //sendto@example.com
所以 ['email']
不是 [$email]
.
if 语句是一个明智的检查 - 在 $_POST 变量中有一些值之前,您不需要该代码 运行。
但是,none 个表单元素有名称!例如这个
<input type="tel" id="tel">
应该
<input type="tel" id="tel" name="tel">
没有它,你不会得到太多。
PS 查看 PHP heredoc。最后的代码可以更简洁地写成:
$body = <<< EOT
Name: $name
Surname: $surname
Email: $email
Phone number: $tel
EOT;
我创建了一个 WP 模板并向其中添加了一个表单。 在表单下方,我添加了 wp_mail() 函数以将用户输入的数据发送到他们的电子邮件。
现在,我注意到:
注意:未定义索引:mypath.
中的名称欢迎提供解决此问题的任何帮助。
编辑 1: 以通知我必须删除 if 语句。
编辑 2: 这实际上是我拥有的与表单相关的所有代码。我错过了什么吗?我需要在某处添加 add_action()
或类似的东西吗?
代码:
<form id="form" method="post" action="">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
</br>
<label for="surname">Surname:</label>
<input type="text" id="surname" name="surname">
</br>
<label for="email">Email:</label>
<input type="email" id="email" name="email">
</br>
<label for="tel">Phone number:</label>
<input type="tel" id="tel" name="tel">
</br>
<input type="submit" value="Submit" name="submit">
</form>
<?php
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$to = $_POST[$email]; //sendto@example.com
$subject = 'Reservation';
$body = 'Name: ' . $name . '\r\n' .
'Surname: ' . $surname . '\r\n' .
'Email ' . $email . '\r\n' .
'Phone number: ' . $tel . '\r\n';
wp_mail( $to, $subject, $body );
echo "Sent!";
}
?>
答案
编辑 3: 只是为了说明解决方案是 $to = $_POST['email']; //sendto@example.com
所以 ['email']
不是 [$email]
.
if 语句是一个明智的检查 - 在 $_POST 变量中有一些值之前,您不需要该代码 运行。
但是,none 个表单元素有名称!例如这个
<input type="tel" id="tel">
应该
<input type="tel" id="tel" name="tel">
没有它,你不会得到太多。
PS 查看 PHP heredoc。最后的代码可以更简洁地写成:
$body = <<< EOT
Name: $name
Surname: $surname
Email: $email
Phone number: $tel
EOT;