在WordPress中,站长为了让自己更加了解站点的运行情况,一般新用户注册、登录或者用户评论时都会发送邮件通知站长本人,或者发送相关的通知给用户,但是由于在WordPress发送邮件的方式是同步的,而我又是使用的qq邮箱的smtp发送邮件,服务器不是在国内,这导致用户登录或者评论文章都要好久的时间,如果可以异步发送邮件就好了,不阻塞用户当前操作,改善用户体验。
然后就找到了这个链接:https://wordpress.stackexchange.com/questions/185295/how-to-make-wordpress-emails-async
主要的异步发送邮件代码如下:
/**
* 异步发送邮件
*/
if ( ! defined( 'DOING_CRON' ) || ( defined( 'DOING_CRON' ) && ! DOING_CRON ) ) {
function wp_mail() {
// 获取 wp_mail 函数的参数
$args = func_get_args();
// 添加一个随机值以避免重复发送,参考: http://codex.wordpress.org/Function_Reference/wp_schedule_single_event
$args[] = mt_rand();
// 5 秒之后发送邮件
wp_schedule_single_event( time() + 5, 'cron_send_mail', $args );
}
}
add_action( 'cron_send_mail', function () {
$args = func_get_args();
// 移除上面添加的随机数
array_pop( $args );
call_user_func_array( 'wp_mail', $args );
}, 10, 10 );
上述代码重写了非CRON请求的wp_mail
函数,使用wp_schedule_single_event
做定时任务,在5秒之后才发送邮件,这样就可以完美的解决同步发送邮件会阻塞的缺点,是一个非常好的异步解决方案。
参考链接
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:WordPress – 异步发送邮件,解决发送邮件阻塞耗时的问题
原文链接:https://www.stubbornhuang.com/2621/
发布于:2023年05月19日 9:17:36
修改于:2023年05月19日 9:18:58
当前分类随机文章推荐
- WordPress - get_sidebar函数,加载主题侧边栏模板 阅读1108次,点赞0次
- WordPress - wp_login_url函数详解 阅读2837次,点赞0次
- WordPress - 禁用XML-RPC接口,禁止访问xmlrpc.php,避免DDOS攻击,防止暴力破解 阅读3138次,点赞0次
- WordPress - 获取每年发表的文章数量 阅读486次,点赞0次
- WordPress - wp_registration_url函数详解 阅读1195次,点赞0次
- WordPress - 在浏览器的console输出信息 阅读4225次,点赞0次
- WordPress - 在每一个文章内容末尾都加一个作者信息展示框 阅读2350次,点赞0次
- WordPress - get_footer函数,加载主题底部页脚footer模板 阅读1089次,点赞0次
- WordPress - 在用户注册页面显示自定义提示信息 阅读1819次,点赞0次
- WordPress - 网站性能优化,延迟加载css和js文件 阅读149次,点赞0次
全站随机文章推荐
- C++11 - 使用std::thread,std::shared_future,std::promise并行化/多线程化for循环,提升处理速度 阅读1873次,点赞0次
- 资源分享 - 交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第六版),Interactive Computer Graphics - A top-down approach with shader-based OpenGL(Six 6th Edition)中文版PDF下载 阅读1268次,点赞0次
- 资源分享 - Behavioral Mathematics for Game AI 英文高清PDF下载 阅读1370次,点赞0次
- Windows安装GCC/G++编译器教程 阅读2458次,点赞0次
- Python - 不定长函数参数列表 阅读2369次,点赞0次
- Python - list与字符串str相互转换方法总结 阅读925次,点赞0次
- 深度学习 - CTC算法原理详解 阅读926次,点赞0次
- 资源分享 - 全局光照算法技术 第2版 , Advanced Global Illumination 2nd Edition 中文版PDF下载 阅读2648次,点赞2次
- 资源分享 - Game AI Pro 360 - Guide to Architecture 英文高清PDF下载 阅读2639次,点赞0次
- Pytorch – 使用torch.matmul()替换torch.einsum('bhxyd,md->bhxym',(a,b))算子模式 阅读1653次,点赞0次
评论
169