联系人表格7-电子邮件自动延迟

时间:2022-03-03 作者:lcsdv

我想问一下,是否有一种方法可以在完成后自动延迟电子邮件?

我希望这些电子邮件能在1-2小时后送达。

是否有这方面的代码片段?

非常感谢。

3 个回复
SO网友:tieum

未测试,但您可以在发送电子邮件之前使用wpcf7\\u简单地使用睡眠

类似这样:

add_action("wpcf7_before_send_mail", "wpcf7_pause_send");  
function wpcf7_pause_send($cf7) {
    
    sleep(3600);
}

SO网友:Nabeen

在某些情况下,如果您没有登录到您的网站,则不会提交您的表单。尝试提交登录到站点的表单。

SO网友:Rup

我对CF7不太了解,无法给您提供详细信息,但我认为您需要

将表单数据写入数据库,以便以后发送电子邮件时可以将其读回。我不相信CF会自动做到这一点(尽管重力表单会这样做)

  • 在提交时取消现有的电子邮件发送:我猜你可以钩住一个事件并返回false来实现这一点。
  • 或者使用wp_schedule_single_event()和保存的数据的数据库ID安排两小时的一次性事件,在该事件处理程序中,使用发送电子邮件的数据回调CF7,然后从数据库中删除保存的表单数据,或将其标记为已发送,或使用wp\\u schedule\\u event()设置一个定期计划作业,每隔五分钟左右运行一次,并检查是否需要发送任何电子邮件,例如,有来自>;2小时前,尚未在数据库中标记为已发送的,如果已发送,则会发送电子邮件并标记该表单已发送,具体取决于您的流量级别。您可能需要设置一种替代的cron机制,以确保这些作业按时运行:Hooking WP-Cron into the system scheduler
  • 或者,根据您发送电子邮件的方式,您可以在以后发送的初始表单提交中生成电子邮件,例如,如果您通过Outlook发送电子邮件。com或者如果您的wp\\u邮件处理程序有内置的重试和调度(我猜wp卸载SES可能会这样?)

    相关推荐