tormjens/wp-queue-mail

OSM航空的候选人档案。

安装: 54

依赖: 0

建议者: 0

安全: 0

星标: 8

关注者: 3

分支: 3

公开问题: 1

类型:wordpress-muplugin

0.2 2017-11-13 11:08 UTC

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'));

下次处理队列时,任务将作为其中一部分。真棒!