我从表单中获取数据,并使用wp_mail
通过电子邮件发送,因为有多个数据(所有复选框数据),所以显然需要一个foreach。
我无法将数据放在foreach内部并在语句外部使用。
//My form data
$checks = $_POST['personalization_result'];
//Pass the foreach array into this variable and use this to mail
$checkString = '';
//For each checkbox data
foreach ($checks as $k => $v) {
var_dump ($v);
}
//Email the data
$sent = wp_mail($to, $subject, $checkString, $headers); //I have set up the other variables but its not necessary to add here just focused on $checkString
形式的代码段
<form action="<?php the_permalink(); ?>" method="post">
<?php echo $checkString; ?>// Trying to see what the array is doing
<input type="hidden" name="submitted" value="1">
<p><input type="submit"></p>
<li class="option table selected">
<input type="hidden" value="0" name="personalization_result[memory_0]">
<input type="checkbox" value="1" name="personalization_result[memory_0]" id="personalization_result_memory_0" checked="checked">
</li>
<li class="option table selected">
<input type="hidden" value="0" name="personalization_result[memory_1]">
<input type="checkbox" value="1" name="personalization_result[memory_1]" id="personalization_result_memory_1" checked="checked">
</li>
如果这有点无聊,我很抱歉,但这就是我通过提问来学习的方式。
由于wp_mail
的第三个参数message
是一个字符串,我认为您可以完全避免foreach,并使用array_values将值作为一个数组,并用一些胶水将它们连接起来,而不是循环通过$checks
数组。请尝试:
$checkValues = array_values($checks);
$checkString = implode(',', $checkValues); // This generates comma separated list of values.
您可以在内爆函数调用中使用任何您喜欢的胶水(本例中为逗号),这取决于您想要如何显示.$checkValues