Building a contact form. I have required input fields Your Name, E-mail and phone. Person has to enter information in these fields or else they will get error message. My fourth field is a message text box. In that field using placeholder= I have a default message I am interested in: "get_the_title (of the post)". Working as I hoped. My problem is I do not want to force person filling form to have to input text in this field and if they don't add any additional text in the message text box it will send the contact form email with the default text I put there using the "placeholder" text I default generated as mentioned above. Right now my code is forcing text to be input in the message box to send.
Here is the code I am using:
echo '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post">';
echo '<h5>';
echo 'Ask a question <br/>';
echo '</h5>';
echo '<p>';
echo '<input style="margin-left: 15px;" type="text" placeholder="Your Name (required)" name="cf-name" pattern="[a-zA-Z0-9 ]+" value="' . ( isset( $_POST["cf-name"] ) ? esc_attr( $_POST["cf-name"] ) : '' ) . '" size="29" />';
echo '</p>';
echo '<p>';
echo '<input style="margin-left: 15px;" type="email" placeholder="E-mail (required)" name="cf-email" value="' . ( isset( $_POST["cf-email"] ) ? esc_attr( $_POST["cf-email"] ) : '' ) . '" size="29" />';
echo '</p>';
echo '<p>';
echo '<input style="margin-left: 15px;" type="text" placeholder="Phone (required)" name="cf-subject" pattern="[0-9-() ]+" value="' . ( isset( $_POST["cf-subject"] ) ? esc_attr( $_POST["cf-subject"] ) : '' ) . '" size="29" />';
echo '</p>';
echo '<p>';
echo '<textarea style="margin-left: 15px; width: 246px;" rows="3" cols="28" placeholder="I am interested in: '.get_the_title().' " name="cf-message">' . ( isset( $_POST["cf-message"] ) ? esc_attr( $_POST["cf-message"] ) : '' ) . '</textarea>';
echo '</p>';
echo '<p><input type="submit" name="cf-submitted" value="Contact Agent" style="border-radius: 5px; color: #fff; margin-left: 15px; width: 247px; height: 38px; background-color: #27ae60;"></p>';
echo '</form>';
echo '<p style="font-size: x-small; font-weight: bold; margin-left: 22px;">';
echo 'By sending a request you agree to our Privacy Policy';
echo '</p>';
// if the submit button is clicked, send the email
if ( isset( $_POST['cf-submitted'] ) ) {
// sanitize form values
$name = sanitize_text_field( $_POST["cf-name"] );
$email = sanitize_email( $_POST["cf-email"] );
$subject = sanitize_text_field( $_POST["cf-subject"] );
$message = esc_textarea( $_POST["cf-message"] );
// get the blog administrator's email address
$to = get_option( 'admin_email' );
$headers = "From: $name <$email>" . "
";
// If email has been process for sending, display a success message
if ( wp_mail( $to, $subject, $message, $headers ) ) {
echo '<div>';
echo '<h5>Thanks for contacting us, expect a response soon.</h5>';
echo '</div>';
}
else {
echo '<h5>An unexpected error occurred.</h5>';
}
}
</div>