Ваша «почтовая» логика должна находиться в методе запроса к серверу, и простым решением было бы дублировать вашу логику if, чтобы обернуть ее в логику рассылки. т.е.
if($_SERVER["REQUEST_METHOD"] == "POST"){
if (mail($to, $subject, $message_body )){
$success = "Your message has been sent. A representative will be in contact with you shortly.";
$name = $email = $phone = $message = $inquiry = $hear = $success = '';
}
}
Конечно, вы также можете просто удалить свой текущий оператор if, заключив скобку, и бросить его в конец кода (так как нет необходимости прерывать оператор if так рано)
т.е.
<?php
$name_error = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$name_error = "Whoops! Please enter your full name";
} else {
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$name_error = "Whoops! Only letters and white spaces are allowed in a name";
}
}
if ($name_error == ''){
$message_body = '';
unset($_POST['submit']);
foreach ($_POST as $key => $value){
$message_body .= "$key: $value\n";
}
$to = 'myemail@gmail.com';
$subject = 'Contact Us Form Submission';
if (mail($to, $subject, $message_body )){
$success = "Your message has been sent. A representative will be in contact with you shortly.";
$name = $email = $phone = $message = $inquiry = $hear = $success = '';
}
}
// <--- ADD CLOSING BRACKET HERE
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}