对不起,我的英语很差,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不再关心原始联系人表单数据。所以这是我在这一点上看到的唯一解决方案。