构建联系人表单。我需要输入您的姓名、电子邮件和电话。人员必须在这些字段中输入信息,否则将收到错误消息。我的第四个字段是消息文本框。在该字段中,使用placeholder=我有一条我感兴趣的默认消息:“获取(帖子的)标题”。像我希望的那样工作。我的问题是,我不想强制填写表单的人必须在此字段中输入文本,如果他们不在消息文本框中添加任何其他文本,则会使用我默认生成的“占位符”文本发送联系人表单电子邮件,其中包含我在其中输入的默认文本,如上所述。现在,我的代码正在强制在消息框中输入文本以发送。
以下是我使用的代码:
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>" . "\\r\\n";
// 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>\';
}
}