如何将文件附加到 WordPress 预订插件发送的电子邮件中?
How to attach files to an email sent by a WordPress booking plugin?
我正在使用 WordPress 插件接受在线预订(预约时间预订),我需要在提交预订请求后发送的电子邮件中附加一个文件(包含一般预订条款的 PDF 文件)。我已经通过以这种方式编辑对 wp_mail() 函数的调用来应用解决方案:
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() 函数的 headers(这样您就可以将文件附加到 e-mails) .
- 继续做你一直在做的事情。
我最喜欢选项二,因为:
- 它允许您从外部自定义插件的行为,并且
- 您的更改将在插件更新后继续存在。
禁用插件更新不是一个好主意,您可能会丢失重要的兼容性或安全更新。修改对 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;
}
使用位于插件文件之外的上述代码,您的文件将被添加到附件列表中而无需删除其他附件,并且将代码置于插件文件之外将防止被插件更新覆盖。
我正在使用 WordPress 插件接受在线预订(预约时间预订),我需要在提交预订请求后发送的电子邮件中附加一个文件(包含一般预订条款的 PDF 文件)。我已经通过以这种方式编辑对 wp_mail() 函数的调用来应用解决方案:
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() 函数的 headers(这样您就可以将文件附加到 e-mails) .
- 继续做你一直在做的事情。
我最喜欢选项二,因为:
- 它允许您从外部自定义插件的行为,并且
- 您的更改将在插件更新后继续存在。
禁用插件更新不是一个好主意,您可能会丢失重要的兼容性或安全更新。修改对 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;
}
使用位于插件文件之外的上述代码,您的文件将被添加到附件列表中而无需删除其他附件,并且将代码置于插件文件之外将防止被插件更新覆盖。