如何将文件附加到WordPress预订插件发送的电子邮件?
我正在使用WordPress插件接受在线预订(预约时间预订),我需要在提交预订请求后发送的电子邮件中附加一个文件(带有一般预订条款的PDF文件)。我已经通过以下方式编辑对wp_mail()函数的调用应用了一个解决方案:如何将文件附加到WordPress预订插件发送的电子邮件?,wordpress,plugins,updates,Wordpress,Plugins,Updates,我正在使用WordPress插件接受在线预订(预约时间预订),我需要在提交预订请求后发送的电子邮件中附加一个文件(带有一般预订条款的PDF文件)。我已经通过以下方式编辑对wp_mail()函数的调用应用了一个解决方案: wp_mail(trim($payer_email), $subject, $message, "From: ".$from."\r\n". $content_type. "X-Mailer: PHP/" . phpversion(),
wp_mail(trim($payer_email), $subject, $message,
"From: ".$from."\r\n".
$content_type. "X-Mailer: PHP/" . phpversion(),
array(WP_CONTENT_DIR . '/uploads/agreement.pdf'));
上面的工作,但每次插件更新的文件被覆盖,我必须重新应用代码修改再次。有一种更好的方法可以做到这一点而不受插件更新的影响,或者有一种方法可以部分或完全防止WordPress中的插件更新
提前感谢您的帮助。您可以选择:
- 分叉插件并根据您的需要进行自定义
- 要求插件背后的团队实现一个过滤器挂钩,以允许自定义传递给wp_mail()函数的标题(这样您就可以将文件附加到电子邮件中)
- 继续做你到现在为止一直在做的事情
禁用插件更新不是一个好主意,您可能会丢失重要的兼容性或安全更新。修改wp_mail()调用的方式也会导致其他附件相关功能停止工作。您提到的插件有一个过滤器,可用于修改附加文件的列表,例如,您可以将以下代码放入主题的functions.php文件中:
add_filter( 'cpappb_email_attachments', 'my_attach_function', 10, 3 );
function my_attach_function( $attachments, $params, $form_id )
{
$attachments[] = WP_CONTENT_DIR . '/uploads/agreement.pdf';
return $attachments;
}
上述代码位于插件文件之外时,您的文件将被添加到附件列表中,而无需删除其他附件,在插件文件之外定位代码将防止被插件更新覆盖。谢谢您提供的信息!按照建议,获得了带有过滤器挂钩的解决方案。