Scheduled event won't fire

时间:2010-10-21 作者:Gavin

我正在尝试在插件中设置单独的一次性计划事件。无论我做什么,我似乎都无法让事件发生。我正在使用Cron视图plugin 查看队列中的内容,并完全按计划添加和删除事件。但是,我从来没有收到我在操作的目标函数中设置要发送的电子邮件(只是为了测试事件,稍后会有更多)。我已经在计划的事件之外测试了该功能,它确实有效。以下是一些代码:

GLOBAL $new_workshop_id;
$new_workshop_id = $wpdb->insert_id;

function send_reminders() {
 GLOBAL $new_workshop_id;
 wp_mail(\'[email protected]\', \'Automatic ID: \'.$new_workshop_id, \'here it is!\');
}

if (!wp_next_scheduled(\'send_reminder_emails_\'.$new_workshop_id)) {
 wp_schedule_single_event( time()+30, \'send_reminder_emails_\'.$new_workshop_id );
}

do_action( \'send_reminder_emails_\'.$new_workshop_id );
add_action( \'send_reminder_emails_\'.$new_workshop_id, \'send_reminders\' );
我怀疑do\\u acton的位置和函数本身,send_reminders(). 上面的代码在一些检查POST变量的if语句中,因此CRON作业可能无法访问该函数-那么我应该将该函数放在哪里?我已经在插件文件的顶部进行了尝试。从我读到的内容来看,do\\u action应该调用该函数并在放置do\\u action的任何位置执行它,但我想我需要知道放置在哪里send_reminders() 首先,让它可以通过cron作业或do\\u操作访问。

提前感谢您的任何意见!

1 个回复
最合适的回答,由SO网友:Denis de Bernardy 整理而成

cron-arg的用法看起来很奇怪。在调用函数时,插入id将返回垃圾。

出于同样的原因,我认为最好总是在insert上使用id参数安排它,如果这个if用于日志记录。否则,基本上会限制日志。

最后,您确定wp\\u mail()工作正常吗?

结束

相关推荐