You need to enable JavaScript to run this app. Contact Form 7如何通过钩子获取模板与数据合并后的最终发送HTML邮件内容
优惠活动
大模型
产品
解决方案
定价
更多

Contact Form 7如何通过钩子获取模板与数据合并后的最终发送HTML邮件内容

你可以使用Contact Form 7内置的模板替换方法,结合wpcf7_before_send_mail钩子直接获取模板和提交数据合并后的完整邮件内容,无需自己手动匹配替换短码:

add_action( 'wpcf7_before_send_mail', 'get_cf7_compiled_email_content', 10, 3 );
function get_cf7_compiled_email_content( $contact_form, $abort, $submission ) {
    // 取后台配置的邮件模板
    $mail_config = $contact_form->prop( 'mail' );
    // 调用CF7原生方法替换所有模板标签,得到最终发送的完整内容
    $final_email_html = wpcf7_mail_replace_tags( $mail_config['body'], [
        'submission' => $submission,
        'html' => true // 和后台邮件设置的「使用HTML内容类型」开关保持一致即可
    ] );

    // $final_email_html就是你需要的合并完成的完整邮件内容,可自行后续处理
    // 调试示例:输出到站点错误日志查看
    error_log( print_r( $final_email_html, true ) );
}

补充说明

  • wpcf7_mail_replace_tags是CF7官方原生的标签替换函数,和实际发信时的处理逻辑完全一致,会自动适配所有自定义字段、系统特殊标签(如提交时间、访客IP、表单ID等),不会出现变量遗漏、格式不匹配的问题。
  • 如果需要获取发送给提交用户的自动回复邮件内容,只需将$contact_form->prop( 'mail' )改为$contact_form->prop( 'mail_2' )即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 02:36:04