建立联系表格。我有必填的输入字段您的姓名、电子邮件和电话。人员必须在这些字段中输入信息,否则他们将收到错误消息。我的第四个字段是一个消息文本框。在该字段中使用 placeholder= 我有一个我感兴趣的默认消息:“get_the_title (of the post)”。正如我所希望的那样工作。我的问题是我不想强制填写表单的人必须在此字段中输入文本,如果他们不在消息文本框中添加任何其他文本,它将发送带有我放置在那里的默认文本的联系表单电子邮件如上所述,我默认生成的“占位符”文本。现在我的代码强制在消息框中输入文本以发送。
这是我正在使用的代码:
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>';
}
}
而不是使用placeholder="I am interested in: '.get_the_title().' "
你可以使用这个:
echo '<textarea style="margin-left: 15px; width: 246px;" rows="3" cols="28" name="cf-message">' .
( isset( $_POST["cf-message"] ) ? esc_attr( $_POST["cf-message"] ) : 'I am interested in: '.get_the_title() ) .
'</textarea>';
如果用户不对文本区域进行更改,则默认情况下将发送该值
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句