tormjens / wp-queue-mail
OSM航空的候选人档案。
This package is auto-updated.
Last update: 2024-08-29 04:37:14 UTC
README
一个用于队列WordPress电子邮件的插件。在批量发送电子邮件时,发送每个电子邮件的动作既耗时又消耗资源。这时队列就派上用场了。当你将一封电子邮件加入队列而不是发送时,只需在数据库中添加一行,而不是连接到服务器,发送内容等等。
简单地启用插件,它将自动钩入到 wp_mail
函数并开始队列电子邮件。
队列部分是从(Mailchimp for WooCommerce插件)[https://github.com/mailchimp/mc-woocommerce]中获取的,但最初是由(A5hleyRich)[https://github.com/A5hleyRich/wp-background-processing]编写的。
入门
可以使用以下WP CLI命令在项目的根目录中设置队列工作所需的表。
$ wp queue create-tables
队列
队列可以通过两种方式处理。
通过WP CLI队列监听器
这是我最喜欢的方法,因为它在CLI上运行,因此不受PHP的内存和超时限制的影响。
通过导航到项目的根目录并输入以下内容启动队列监听器
$ wp queue listen
为了确保队列监听器始终运行,你可以使用类似(Supervisor)[http://supervisord.org/]的东西。
通过WP Cron
这对于大多数运行WordPress的网站都适用。队列简单地添加到WP Cron计划中,并按计划执行。
用于其他事物而不是邮件
队列不仅仅局限于发送电子邮件。你可以创建自己的任务并通过此插件的特性分发它们。
任务
任务必须扩展 WP_Job
类并包含一个 handle
方法。你可以使用构造函数给任务提供需要处理的数据。
<?php class Publish_Podcast extends WP_Job { protected $name; protected $location; public function __construct( $name, $location ) { $this->name = $name; $this->location = $location; } public function handle() { // process the podcast here } }
handle
方法是队列将触发的。
当你准备好分发任务时,你可以使用方便的 wp_queue
辅助函数。
<?php wp_queue(new Publish_Podcast('Scooby Doo And His Friends', 'iTunes'));
下次处理队列时,任务将作为其中一部分。真棒!