You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress建站:如何将Gravity Forms表单以PDF附件发送邮件?

实现Gravity Forms提交后生成PDF并邮件附件发送的方法

方法一:使用专用插件(快速上手)

最省心的方式是借助Gravity Forms生态的PDF生成插件,比如Gravity Forms PDF Extended,操作步骤如下:

  1. 安装激活插件:在WordPress后台「插件-添加新插件」搜索该插件,完成安装后激活。
  2. 创建PDF模板:进入「Forms-Forms」找到目标表单,点击「PDFs」标签,选择「Add New」。可以直接用默认模板,也能通过HTML/CSS自定义PDF的样式布局。
  3. 关联邮件附件:在PDF编辑页的「Notification Attachments」选项里,勾选需要绑定的表单通知(比如管理员通知、用户确认邮件),这样表单提交时,PDF会自动作为附件加入对应邮件。
  4. 测试验证:手动提交一次表单,检查收件邮箱是否收到带PDF附件的邮件,同时确认PDF里的内容和表单提交数据一致。

方法二:自定义代码实现(灵活定制)

如果需要更个性化的PDF样式或特殊逻辑,可结合第三方PDF生成库(如TCPDF/FPDF)通过代码实现:

  1. 引入PDF库:将TCPDF或FPDF库上传到主题的functions.php所在目录,或者用Composer安装(服务器支持的话)。
  2. 添加表单提交钩子:在主题的functions.php中插入Gravity Forms的提交钩子代码,示例如下:
add_action('gform_after_submission', 'generate_pdf_and_attach', 10, 2);
function generate_pdf_and_attach($entry, $form) {
    // 引入TCPDF库(根据实际路径调整)
    require_once(get_stylesheet_directory() . '/tcpdf/tcpdf.php');
    
    // 初始化PDF对象
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetTitle('表单提交记录');
    
    // 添加PDF页面
    $pdf->AddPage();
    
    // 填充表单数据到PDF内容
    $content = '<h1>表单提交详情</h1>';
    foreach ($form['fields'] as $field) {
        $field_label = $field['label'];
        $field_value = rgar($entry, $field['id']);
        $content .= "<p><strong>{$field_label}:</strong> {$field_value}</p>";
    }
    $pdf->writeHTML($content, true, false, true, false, '');
    
    // 生成临时PDF文件到WordPress上传目录
    $pdf_path = wp_upload_dir()['path'] . '/form-submission-' . $entry['id'] . '.pdf';
    $pdf->Output($pdf_path, 'F');
    
    // 替换为你的通知ID(可在表单编辑页「通知」中查看ID)
    $notification_id = '1';
    // 给指定通知添加附件
    add_filter('gform_notification_' . $form['id'] . '_' . $notification_id, function($notification, $form, $entry) use ($pdf_path) {
        $notification['attachments'][] = $pdf_path;
        return $notification;
    }, 10, 3);
    
    // 可选:邮件发送后删除临时PDF文件
    add_action('gform_notification_sent', function($notification, $form, $entry) use ($pdf_path) {
        if (file_exists($pdf_path)) {
            unlink($pdf_path);
        }
    }, 10, 3);
}
  1. 配置测试:替换代码中的通知ID和PDF库路径,保存functions.php后提交表单,验证邮件附件和PDF内容是否正常。

注意事项

  • 插件法要注意版本兼容性,确保和当前Gravity Forms版本匹配。
  • 自定义代码法需要基础PHP知识,同时确认服务器支持PDF生成所需的PHP扩展(如GD库)。

内容的提问来源于stack exchange,提问作者ttupnpeace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:33:32