前言首先你的wordpress需要支持邮件发送的功能
测试的方法到后台登录的页面假装忘记密码,走一下重置密码的流程,如果可以收到重置密码的邮件那么就说明wordpress支持邮件发送,如果不支持,那么通过安装插件或者看我之前的博客来,自定义
下面是整体的截图
主要实现功能介绍点击按钮,将表单收集到的对应的内容发送到指定的邮箱当中
首先是表单的代码
<form id="custom-form" method="POST">
<div>
<label for="name">Full Name: </label><br>
<input type="text" id="name" name="name" placeholder="" required>
</div>
<div>
<label for="email">Email: </label><br>
<input type="email" id="email" name="email" placeholder="" required>
</div>
<div>
<label for="phone">Phone Number: </label><br>
<input type="text" id="phone" name="phone" placeholder="" required>
</div>
<div>
<label for="message">Your Referral Project Information: </label><br>
<textarea id="message" name="message" placeholder="" required></textarea>
</div>
<button type="submit">Sign up today to explore how much solar can
save you.
</button>
</form>
下面是js请求发送邮件的代码
//你要请求的发送邮件的文件路径写对了
var ajaxUrl = '<?php echo get_template_directory_uri() . "/email.php"; ?>';
var form = document.getElementById('custom-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
var formData = new FormData(form);
//这些打印可以去掉,只是为了调试
console.log('Name:', formData.get('name'));
console.log('Email:', formData.get('email'));
console.log('Phone:', formData.get('phone'));
console.log('Message:', formData.get('message'));
console.log(formData);
var xhr = new XMLHttpRequest();
xhr.open('POST', ajaxUrl, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = xhr.responseText;
// 处理服务器端的响应
console.log(response);
}
};
xhr.send(formData);
});
下面是php,email.php ,文件中的代码
<?php
// 处理表单提交
//注意这里需要引入一个wordpress的核心文件不然,下面代码中的有些函数不好使(就在wordpress的根目录之下)
require_once('../../../wp-load.php');
if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['phone']) && isset($_POST['message'])) {
// 获取表单字段的值
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
// 构建邮件内容
$subject = 'New Form Submission';
$body = "Full Name: $name\n";
$body .= "Email: $email\n";
$body .= "Phone Number: $phone\n";
$body .= "Your Referral Project Information: $message\n";
echo $body;
// 设置邮件头部
$headers = array(
'Content-Type: text/plain; charset=UTF-8',
'From: ' . get_bloginfo('name') . ' <' . get_option('admin_email') . '>',
);
// 发送邮件
$sent = wp_mail('lijungoole99@gmail.com', $subject, $body, $headers);
echo $sent;
if ($sent) {
echo '邮件已发送';
} else {
echo '邮件发送失败';
}
}
结语
对于那些固定的事情,其实不需要错一百遍,可能只需要几十遍,你就知道路该怎么走了,不断的去试错。