联系人表单7-将附件发送给提交者?

时间:2011-10-19 作者:jakc

我已经在我的WP 3.2.1实例上安装了Contact Form 7插件。

我已经设置了contact form 供用户请求评估。

这一切都很好,但我希望当他们提交请求时,我可以给他们发一封附有产品手册的电子邮件。

我目前的设置如下:

enter image description here

我尝试使用[文件-691],其中691是媒体库中上载媒体的id。

两者似乎都不起作用
What is the correct way to achieve this?

5 个回复
SO网友:Jonathan Liuti

据我所知,您尝试使用的功能并不打算以这种方式使用。实际上,这是为了让提交者可以选择上载随邮件一起发送的文件。

我认为这种功能不适用于联系人表单7

SO网友:markratledge

CF7不会那样工作。您尝试执行的操作需要在服务器或电子邮件客户端级别进行设置,而不是在WP中的应用程序级别进行设置。

在电子邮件服务器或电子邮件客户端上设置电子邮件自动应答器。

SO网友:aly22

下载前请尝试使用下载监视器插件发送电子邮件。这些与CF7完美集成,您只需选择附件作为电子邮件发送,而不是内联下载链接。效果很好。

SO网友:Input

对不起,我的英语很差,PHP技能更差。

您可以在下载之前使用电子邮件,但。。。没有按我想要的那样工作。我尝试了一些代码,我认为这是可行的。这不是最好的方法,但您可以使用管理gui中附件字段中的文件链接。只需输入类似“wp content/uploads/2013/05/File.pdf”(不带引号)的内容,而不是“[文件-1234]”,然后将以下代码放入您的functions.php

function mycustom_cf_before_action(&$wpcf7_data) {
    global $mailcounter;
    $mailcounter = 0;
    if ((!empty($wpcf7_data->mail[\'attachments\'])) and (!(0 === strpos($wpcf7_data->mail[\'attachments\'], \'[\'))) ) {
        global $cmail1;
        $cmail1 = \'\';
        $cmail1 = $wpcf7_data->mail[\'attachments\'];
    }
    if ((!empty($wpcf7_data->mail_2[\'attachments\'])) and (!(0 === strpos($wpcf7_data->mail_2[\'attachments\'], \'[\'))) ) {
        global $cmail2;
        $cmail2 = \'\';
        $cmail2 = $wpcf7_data->mail_2[\'attachments\'];
    }
}
add_action(\'wpcf7_before_send_mail\', \'mycustom_cf_before_action\',1);

function mycustom_wpcf7_mail_components($components){
    global $cmail1;
    global $cmail2;
    global $mailcounter;

    if (($mailcounter == 0) and (!empty($cmail1)) and (empty($components[\'attachments\']))) {
          $components[\'attachments\'][] = $cmail1;
    }
    if (($mailcounter == 1) and (!empty($cmail2)) and (empty($components[\'attachments\']))) {
          $components[\'attachments\'][] = $cmail2;
    }
    $mailcounter = $mailcounter + 1;
    return $components;
}

add_filter( \'wpcf7_mail_components\', \'mycustom_wpcf7_mail_components\' );
第一个函数检查是否存在“静态”附件。所以任何不以[ 或为空

第二个功能是在发送时添加静态附件。试图使用“uploaded\\u files”,但随后附件被删除。由于mail1和mail2的组件部分是相同的,因此您必须以某种方式进行计数。这就是$mailcounter. $cmail1$cmail2 是将附件的链接获取到组件零件中。此时,CF7不再关心原始联系人表单数据。所以这是我在这一点上看到的唯一解决方案。

SO网友:Emily

我相信这就是所提到的插件:https://wordpress.org/plugins/email-before-download/

结束

相关推荐

联系人表单7-将附件发送给提交者? - 小码农CODE - 行之有效找到问题解决它

联系人表单7-将附件发送给提交者?

时间:2011-10-19 作者:jakc

我已经在我的WP 3.2.1实例上安装了Contact Form 7插件。

我已经设置了contact form 供用户请求评估。

这一切都很好,但我希望当他们提交请求时,我可以给他们发一封附有产品手册的电子邮件。

我目前的设置如下:

enter image description here

我尝试使用[文件-691],其中691是媒体库中上载媒体的id。

两者似乎都不起作用
What is the correct way to achieve this?

5 个回复
SO网友:Jonathan Liuti

据我所知,您尝试使用的功能并不打算以这种方式使用。实际上,这是为了让提交者可以选择上载随邮件一起发送的文件。

我认为这种功能不适用于联系人表单7

SO网友:markratledge

CF7不会那样工作。您尝试执行的操作需要在服务器或电子邮件客户端级别进行设置,而不是在WP中的应用程序级别进行设置。

在电子邮件服务器或电子邮件客户端上设置电子邮件自动应答器。

SO网友:aly22

下载前请尝试使用下载监视器插件发送电子邮件。这些与CF7完美集成,您只需选择附件作为电子邮件发送,而不是内联下载链接。效果很好。

SO网友:Input

对不起,我的英语很差,PHP技能更差。

您可以在下载之前使用电子邮件,但。。。没有按我想要的那样工作。我尝试了一些代码,我认为这是可行的。这不是最好的方法,但您可以使用管理gui中附件字段中的文件链接。只需输入类似“wp content/uploads/2013/05/File.pdf”(不带引号)的内容,而不是“[文件-1234]”,然后将以下代码放入您的functions.php

function mycustom_cf_before_action(&$wpcf7_data) {
    global $mailcounter;
    $mailcounter = 0;
    if ((!empty($wpcf7_data->mail[\'attachments\'])) and (!(0 === strpos($wpcf7_data->mail[\'attachments\'], \'[\'))) ) {
        global $cmail1;
        $cmail1 = \'\';
        $cmail1 = $wpcf7_data->mail[\'attachments\'];
    }
    if ((!empty($wpcf7_data->mail_2[\'attachments\'])) and (!(0 === strpos($wpcf7_data->mail_2[\'attachments\'], \'[\'))) ) {
        global $cmail2;
        $cmail2 = \'\';
        $cmail2 = $wpcf7_data->mail_2[\'attachments\'];
    }
}
add_action(\'wpcf7_before_send_mail\', \'mycustom_cf_before_action\',1);

function mycustom_wpcf7_mail_components($components){
    global $cmail1;
    global $cmail2;
    global $mailcounter;

    if (($mailcounter == 0) and (!empty($cmail1)) and (empty($components[\'attachments\']))) {
          $components[\'attachments\'][] = $cmail1;
    }
    if (($mailcounter == 1) and (!empty($cmail2)) and (empty($components[\'attachments\']))) {
          $components[\'attachments\'][] = $cmail2;
    }
    $mailcounter = $mailcounter + 1;
    return $components;
}

add_filter( \'wpcf7_mail_components\', \'mycustom_wpcf7_mail_components\' );
第一个函数检查是否存在“静态”附件。所以任何不以[ 或为空

第二个功能是在发送时添加静态附件。试图使用“uploaded\\u files”,但随后附件被删除。由于mail1和mail2的组件部分是相同的,因此您必须以某种方式进行计数。这就是$mailcounter. $cmail1$cmail2 是将附件的链接获取到组件零件中。此时,CF7不再关心原始联系人表单数据。所以这是我在这一点上看到的唯一解决方案。

SO网友:Emily

我相信这就是所提到的插件:https://wordpress.org/plugins/email-before-download/

相关推荐

联系人表单7-将附件发送给提交者? - 小码农CODE - 行之有效找到问题解决它

联系人表单7-将附件发送给提交者?

时间:2011-10-19 作者:jakc

我已经在我的WP 3.2.1实例上安装了Contact Form 7插件。

我已经设置了contact form 供用户请求评估。

这一切都很好,但我希望当他们提交请求时,我可以给他们发一封附有产品手册的电子邮件。

我目前的设置如下:

enter image description here

我尝试使用[文件-691],其中691是媒体库中上载媒体的id。

两者似乎都不起作用
What is the correct way to achieve this?

5 个回复
SO网友:Jonathan Liuti

据我所知,您尝试使用的功能并不打算以这种方式使用。实际上,这是为了让提交者可以选择上载随邮件一起发送的文件。

我认为这种功能不适用于联系人表单7

SO网友:markratledge

CF7不会那样工作。您尝试执行的操作需要在服务器或电子邮件客户端级别进行设置,而不是在WP中的应用程序级别进行设置。

在电子邮件服务器或电子邮件客户端上设置电子邮件自动应答器。

SO网友:aly22

下载前请尝试使用下载监视器插件发送电子邮件。这些与CF7完美集成,您只需选择附件作为电子邮件发送,而不是内联下载链接。效果很好。

SO网友:Input

对不起,我的英语很差,PHP技能更差。

您可以在下载之前使用电子邮件,但。。。没有按我想要的那样工作。我尝试了一些代码,我认为这是可行的。这不是最好的方法,但您可以使用管理gui中附件字段中的文件链接。只需输入类似“wp content/uploads/2013/05/File.pdf”(不带引号)的内容,而不是“[文件-1234]”,然后将以下代码放入您的functions.php

function mycustom_cf_before_action(&$wpcf7_data) {
    global $mailcounter;
    $mailcounter = 0;
    if ((!empty($wpcf7_data->mail[\'attachments\'])) and (!(0 === strpos($wpcf7_data->mail[\'attachments\'], \'[\'))) ) {
        global $cmail1;
        $cmail1 = \'\';
        $cmail1 = $wpcf7_data->mail[\'attachments\'];
    }
    if ((!empty($wpcf7_data->mail_2[\'attachments\'])) and (!(0 === strpos($wpcf7_data->mail_2[\'attachments\'], \'[\'))) ) {
        global $cmail2;
        $cmail2 = \'\';
        $cmail2 = $wpcf7_data->mail_2[\'attachments\'];
    }
}
add_action(\'wpcf7_before_send_mail\', \'mycustom_cf_before_action\',1);

function mycustom_wpcf7_mail_components($components){
    global $cmail1;
    global $cmail2;
    global $mailcounter;

    if (($mailcounter == 0) and (!empty($cmail1)) and (empty($components[\'attachments\']))) {
          $components[\'attachments\'][] = $cmail1;
    }
    if (($mailcounter == 1) and (!empty($cmail2)) and (empty($components[\'attachments\']))) {
          $components[\'attachments\'][] = $cmail2;
    }
    $mailcounter = $mailcounter + 1;
    return $components;
}

add_filter( \'wpcf7_mail_components\', \'mycustom_wpcf7_mail_components\' );
第一个函数检查是否存在“静态”附件。所以任何不以[ 或为空

第二个功能是在发送时添加静态附件。试图使用“uploaded\\u files”,但随后附件被删除。由于mail1和mail2的组件部分是相同的,因此您必须以某种方式进行计数。这就是$mailcounter. $cmail1$cmail2 是将附件的链接获取到组件零件中。此时,CF7不再关心原始联系人表单数据。所以这是我在这一点上看到的唯一解决方案。

SO网友:Emily

我相信这就是所提到的插件:https://wordpress.org/plugins/email-before-download/

相关推荐