在WordPress中,我正在创建一个插件,我向用户发送电子邮件。为此,我使用WordPress cron
工作。所以基本上它只会在每小时向用户发送电子邮件。
所以我的代码看起来像这样
public function __construct() {
add_action('init', array( $this, 'send_emails_to_users') );
add_action('cliv_recurring_cron_job', array( $this, 'send_email') );
}
public function send_emails_to_users() {
if(!wp_next_scheduled('cliv_recurring_cron_job')) {
wp_schedule_event (time(), 'hourly', 'cliv_recurring_cron_job');
}
}
public function send_email() {
//send email code goes here
}
这里的一切看起来不错,但它不会发送电子邮件。
如果我像这样制作我的代码
public function __construct() {
add_action('head', array( $this, 'send_email') );
}
然后发送电子邮件。但问题是,每次页面加载或用户访问网站时都会发送电子邮件。
这就是我想用wp_schedule_event
每小时发送电子邮件的原因。
有人可以告诉我如何解决这个问题吗?
任何建议或帮助都会非常明显。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您想每隔一小时运行一次cron,则需要添加以下代码:
public function __construct() {
// Call function for cron
add_action('init', array( $this, 'send_emails_to_users') );
}
public function send_emails_to_users() {
if(!wp_next_scheduled('cliv_recurring_cron_job')) {
// Add "cliv_recurring_cron_job" action so it fire every hour
wp_schedule_event(time(), 'hourly', 'cliv_recurring_cron_job');
}
}
add_action('cliv_recurring_cron_job', array( $this, 'send_email') );
public function send_email() {
//send email code goes here
}
了解更多信息see link