wordpress表单开发,通过提交表单发送邮件收集客人信息

前言首先你的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 '邮件发送失败';
    }
}

结语
对于那些固定的事情,其实不需要错一百遍,可能只需要几十遍,你就知道路该怎么走了,不断的去试错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值