我希望每秒使用我的自定义插件发送一封电子邮件用于测试目的。我已经编写了安排此事件的代码,但我没有收到电子邮件。我不确定我是否已正确安排,但显然一切似乎都很好。这是我的代码,我已经在插件中编写了这段代码。
<?php
register_activation_hook(__FILE__, 'my_activation');
function isa_add_cron_recurrence_interval( $schedules ) {
$schedules['every_second'] = array(
'interval' => 1,
'display' => __( 'Every second', 'textdomain' )
);
return $schedules;
}
add_filter( 'cron_schedules', 'isa_add_cron_recurrence_interval' );
function my_activation() {
if (! wp_next_scheduled ( 'my_event' )) {
wp_schedule_event(time(), 'everysecond', 'my_event');
}
}
add_action('my_event', 'do_this');
function do_this() {
mail('haris.4090@gmail.com','Testing','testing email from plugin');
}
答案 0 :(得分:0)
这似乎只是一个错字。此
wp_schedule_event(time(), 'everysecond', 'my_event');
应该是
wp_schedule_event(time(), 'every_second', 'my_event');
写在$schedules['every_second']
答案 1 :(得分:0)
你应该纠正Felipe Elia在回答中注意到的拼写错误。
但即使在这种情况下它也行不通。
所以,如果你的网站每秒访问几次,它可以工作,但你真的有这么多的访问者吗?
实际上,每次访问都会发送一次电子邮件(假设每天100次访问=每天100封电子邮件)。
假设事件已安排。从此时间开始1秒后首次访问将触发事件。我们假设初始时间是1.5秒。因此,您将在第一个邮件发送2.5秒后收到新电子邮件。接下来的事件将被解雇。因此,您将在第一封电子邮件中获得第三封电子邮件,依此类推。