提交CF7表格后下载PDF

时间:2018-11-17 作者:Just Jeff

我正在为客户的构建工作,我希望尽可能少地进行更改。抱歉,我对这一切都不太熟悉,我会尽力表明我的立场。

客户端需要提交表单以提示PDF下载。有两个不同的PDF,两个相同形式的实例。填写表单实例1,获取PDF A-表单实例2,PDF B。

下面是这些实例的显示方式:

<div id="whitepaper" class="home_whitepaper_bg w-clearfix">
  <?php $lpcnt=0; if(have_rows(\'whitepaper_list\')): ?>
  <?php while(have_rows(\'whitepaper_list\')): the_row(); $lpcnt++; ?>
<!-- Making rows for content, looping through and counting loops = lpcnt -->

<!--
... Other content ...
-->

  <?php 
   the_sub_field(\'whitepaper_download_form\'); 
  ?>
  <?php
   $pdf=get_permalink().\'?download=\'.get_sub_field(\'whitepaper_pdf\');
  ?>
  <a data-fancybox data-src="#whitepaper_popup_<?php echo $lpcnt; ?>" data-redirect="<?php echo $pdf; ?>" href="javascript:;" class="whitepaper_download_link w-inline-block w-clearfix">
<!-- Here\'s the buttons for fancybox popups. They use the loop count to build a specific url - this is info I want later! -->
在弹出窗口中:

    <div id="whitepaper_popup_<?php echo $lpcnt; ?>" class="whitepaper_popup">
<!-- using that loop count to get a specific div id! -->
        <div class="popup_whitepaper">
            <div class="whitepaper_form">
                <!-- 
I could put a <?php echo do_shortcode...> here, no? 
Their current solution is to grab a javascript code from an ACF field. 
I have had a lot of trouble figuring out how to put the CF7 form in that field.
                -->
                <?php the_sub_field(\'download_form\'); ?>
                <div class="w-clearfix"></div>
            </div>
            <button data-fancybox-close="" class="fancybox-close-small"></button>
            <div class="w-clearfix"></div>
        </div>
    </div>
对。就是这样。然后,使用CF7的新DOM事件,我应该能够设置重定向或simliar?

在函数中。php:

add_action( \'wp_footer\', \'mycustom_wp_footer\' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( \'wpcf7mailsent\', function( event ) {
if ( \'FORM ID\' == event.detail.contactFormId ) {
    location = <!-- specific url derived from $lpcnt? -->;
}
}, false );
</script>
<?php
}
我不确定自己是否走上了正确的轨道,也不知道如何将正确的URL放入wpcf7mailsent事件侦听器。

3 个回复
最合适的回答,由SO网友:Parth Shah 整理而成

您不需要太多代码。只需转到“联系人窗体”>“选择联系人窗体”>“其他设置”,粘贴下面的代码
document.addEventListener( \'wpcf7mailsent\', function( event ) { location = \'YOUR_PDF_URL\';}, false );

SO网友:Maxime Culea

我需要在网站所有案例研究的内容之后添加一个下载CTA,但是;作为交换”;的用户数据:

在您的页面上显示一个CF7表单,我在所有案例研究中都有相同的表单,在内容之后我将其挂接为单一类型,找到一种方法获取想要的PDF url供人们下载,对于我来说,所有案例研究都有不同的PDF,我只是添加了一个ACF字段,仅在PDF上过滤,它返回基于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 );
} );

SO网友:Semir

尝试此插件:

下载插件安装在CF7文件下载设置下设置表单id和PDF附件

https://wordpress.org/plugins/cf7-file-download/

结束

相关推荐

由AJAX执行的php函数内的$_SESSION

我正在定义$_SESSION[\'session_test\'] 从…起$_POST[\'reason\'] 我从AJAX电话中得到消息。在该功能内部,$_SESSION[\'session_test\'] 是否得到定义,我是否得到期望echo 后果add_action(\'wp_ajax_return_reason\', array( __CLASS__ , \'select_return_reason\')); static function select_return_reason() {&

提交CF7表格后下载PDF - 小码农CODE - 行之有效找到问题解决它

提交CF7表格后下载PDF

时间:2018-11-17 作者:Just Jeff

我正在为客户的构建工作,我希望尽可能少地进行更改。抱歉,我对这一切都不太熟悉,我会尽力表明我的立场。

客户端需要提交表单以提示PDF下载。有两个不同的PDF,两个相同形式的实例。填写表单实例1,获取PDF A-表单实例2,PDF B。

下面是这些实例的显示方式:

<div id="whitepaper" class="home_whitepaper_bg w-clearfix">
  <?php $lpcnt=0; if(have_rows(\'whitepaper_list\')): ?>
  <?php while(have_rows(\'whitepaper_list\')): the_row(); $lpcnt++; ?>
<!-- Making rows for content, looping through and counting loops = lpcnt -->

<!--
... Other content ...
-->

  <?php 
   the_sub_field(\'whitepaper_download_form\'); 
  ?>
  <?php
   $pdf=get_permalink().\'?download=\'.get_sub_field(\'whitepaper_pdf\');
  ?>
  <a data-fancybox data-src="#whitepaper_popup_<?php echo $lpcnt; ?>" data-redirect="<?php echo $pdf; ?>" href="javascript:;" class="whitepaper_download_link w-inline-block w-clearfix">
<!-- Here\'s the buttons for fancybox popups. They use the loop count to build a specific url - this is info I want later! -->
在弹出窗口中:

    <div id="whitepaper_popup_<?php echo $lpcnt; ?>" class="whitepaper_popup">
<!-- using that loop count to get a specific div id! -->
        <div class="popup_whitepaper">
            <div class="whitepaper_form">
                <!-- 
I could put a <?php echo do_shortcode...> here, no? 
Their current solution is to grab a javascript code from an ACF field. 
I have had a lot of trouble figuring out how to put the CF7 form in that field.
                -->
                <?php the_sub_field(\'download_form\'); ?>
                <div class="w-clearfix"></div>
            </div>
            <button data-fancybox-close="" class="fancybox-close-small"></button>
            <div class="w-clearfix"></div>
        </div>
    </div>
对。就是这样。然后,使用CF7的新DOM事件,我应该能够设置重定向或simliar?

在函数中。php:

add_action( \'wp_footer\', \'mycustom_wp_footer\' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( \'wpcf7mailsent\', function( event ) {
if ( \'FORM ID\' == event.detail.contactFormId ) {
    location = <!-- specific url derived from $lpcnt? -->;
}
}, false );
</script>
<?php
}
我不确定自己是否走上了正确的轨道,也不知道如何将正确的URL放入wpcf7mailsent事件侦听器。

3 个回复
最合适的回答,由SO网友:Parth Shah 整理而成

您不需要太多代码。只需转到“联系人窗体”>“选择联系人窗体”>“其他设置”,粘贴下面的代码
document.addEventListener( \'wpcf7mailsent\', function( event ) { location = \'YOUR_PDF_URL\';}, false );

SO网友:Maxime Culea

我需要在网站所有案例研究的内容之后添加一个下载CTA,但是;作为交换”;的用户数据:

在您的页面上显示一个CF7表单,我在所有案例研究中都有相同的表单,在内容之后我将其挂接为单一类型,找到一种方法获取想要的PDF url供人们下载,对于我来说,所有案例研究都有不同的PDF,我只是添加了一个ACF字段,仅在PDF上过滤,它返回基于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 );
} );

SO网友:Semir

尝试此插件:

下载插件安装在CF7文件下载设置下设置表单id和PDF附件

https://wordpress.org/plugins/cf7-file-download/

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请