点击“联系表格7提交”按钮发送电子邮件并下载PDF

时间:2017-08-09 10:19:53

标签: wordpress contact-form-7

我的Wordpress网站上有一个联系表格。我有三个字段名称,电子邮件和移动,以及一个名为提交的按钮。当用户填写所有字段并单击“提交”按钮时,应发送一封电子邮件,该邮件可以通过Contact From 7插件发送。

但挑战在于,我需要让用户下载PDF,当他在填写所有字段时点击“提交”按钮。'

如何在Wordpress中实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以使用联系表单7提供的wpcf7_mail_sent挂钩,如下所示:

add_action('wpcf7_mail_sent', function ($cf) {
  // Run code after the email has been sent
});

此链接:https://contactform7.com/2017/06/07/on-sent-ok-is-deprecated/还描述了另一种方式:

add_action( 'wp_footer', 'mycustom_wp_footer' );

function mycustom_wp_footer() 
{ ?>
    <script type="text/javascript">
    document.addEventListener( 'wpcf7mailsent', function( event ) 
    {
      //Write a javascript code to download the file. 
    }  , false );
    </script>
<?php
}

答案 1 :(得分:0)

由于on_sent_ok已被弃用,因此以下示例可以作为启发。

我类似地需要在网站所有案例研究的内容之后添加下载CTA,但“交换”用户数据是:

  • 在您的页面上显示一个CF7表单,在所有案例研究中,我都使用相同的表单,并且在内容之后就将其钩住了。
  • 找到一种供人们下载所需的PDF URL的方法,因为对我来说,所有案例研究都具有不同的PDF,我只是添加了一个ACF字段,仅对PDF进行了过滤,它返回了文件URL。
  • 基于CF7 Dom events,选择您希望使下载生效的操作,因为我没有发送任何确认电子邮件,所以我希望处理wpcf7submit事件。请注意,只有在表单通过验证后,才会触发wpcf7submit事件

所以代码看起来像这样:

<?php 
// For simplicity, using an anonymous functions
add_action( 'wp_print_footer_scripts', function () {
    // Check the wanted singular post type loading
    if ( is_admin() || ! is_singular( 'case-study' ) ) {
        return;
    }

    // Check if the ACF PDF field is not empty for use
    $pdf_link = get_field( 'pdf' );
    if ( empty( $pdf_link ) ) {
        return;
    }

    // Hook on the "wpcf7submit" CF7 Dom event to force the download
    printf( "<script>document.addEventListener( 'wpcf7submit', function( event ) { window.open('%s'); }, false );</script>", $pdf_link );
} );